diff options
Diffstat (limited to 'tvix/glue/src/tests')
4 files changed, 35 insertions, 2 deletions
diff --git a/tvix/glue/src/tests/tvix_tests/eval-okay-context-introspection.exp b/tvix/glue/src/tests/tvix_tests/eval-okay-context-introspection.exp index 3f8905e9bd..a136b0035e 100644 --- a/tvix/glue/src/tests/tvix_tests/eval-okay-context-introspection.exp +++ b/tvix/glue/src/tests/tvix_tests/eval-okay-context-introspection.exp @@ -1 +1 @@ -[ true true true true true true true true true true true ] +[ true true true true true true true true true true true true true ] diff --git a/tvix/glue/src/tests/tvix_tests/eval-okay-context-introspection.nix b/tvix/glue/src/tests/tvix_tests/eval-okay-context-introspection.nix index 1b645b1a26..ecd8ab0073 100644 --- a/tvix/glue/src/tests/tvix_tests/eval-okay-context-introspection.nix +++ b/tvix/glue/src/tests/tvix_tests/eval-okay-context-introspection.nix @@ -41,6 +41,13 @@ let reconstructed-path = appendContextFrom combo-path (builtins.unsafeDiscardStringContext combo-path); + an-str = { + a = "${drv}"; + }; + an-list = { + b = [ drv ]; + }; + # Eta rule for strings with context. etaRule = str: str == appendContextFrom @@ -70,4 +77,7 @@ in (etaRule "foo") (etaRule drv.drvPath) (etaRule drv.foo.outPath) + # `toJSON` tests + (builtins.hasContext (builtins.toJSON an-str)) + (builtins.hasContext (builtins.toJSON an-list)) ] diff --git a/tvix/glue/src/tests/tvix_tests/eval-okay-context-propagation.exp b/tvix/glue/src/tests/tvix_tests/eval-okay-context-propagation.exp index 8bb828e36a..ff56f6ca18 100644 --- a/tvix/glue/src/tests/tvix_tests/eval-okay-context-propagation.exp +++ b/tvix/glue/src/tests/tvix_tests/eval-okay-context-propagation.exp @@ -1 +1 @@ -[ true true true true true true true true true true true true true true true true true true true true true true true true true true true true ] +[ true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true ] diff --git a/tvix/glue/src/tests/tvix_tests/eval-okay-context-propagation.nix b/tvix/glue/src/tests/tvix_tests/eval-okay-context-propagation.nix index 918061b8b8..41e7f207b9 100644 --- a/tvix/glue/src/tests/tvix_tests/eval-okay-context-propagation.nix +++ b/tvix/glue/src/tests/tvix_tests/eval-okay-context-propagation.nix @@ -93,4 +93,27 @@ in (preserveContext other-drv (builtins.concatStringsSep "${other-drv}" [ "abc" "def" ])) # `attrNames` will never ever produce context. (preserveContext "abc" (toString (builtins.attrNames { a = { }; b = { }; c = { }; }))) + # `toJSON` preserves context of its inputs. + (preserveContexts [ drv other-drv ] (builtins.toJSON { + a = [ drv ]; + b = [ other-drv ]; + })) + (preserveContexts [ drv other-drv ] (builtins.toJSON { + a.deep = [ drv ]; + b = [ other-drv ]; + })) + (preserveContexts [ drv other-drv ] (builtins.toJSON { + a = "${drv}"; + b = [ other-drv ]; + })) + (preserveContexts [ drv other-drv ] (builtins.toJSON { + a.deep = "${drv}"; + b = [ other-drv ]; + })) + (preserveContexts [ drv other-drv ] (builtins.toJSON { + a = "${drv} ${other-drv}"; + })) + (preserveContexts [ drv other-drv ] (builtins.toJSON { + a.b.c.d.e.f = "${drv} ${other-drv}"; + })) ] |