From e9a23bb4782615722374e7bec643cba669a492bc Mon Sep 17 00:00:00 2001 From: Ryan Lahfa Date: Wed, 3 Apr 2024 15:08:54 +0200 Subject: fix(tvix/glue): produce context for `builtins.(path|filterSource)` Fixes b/392. Output paths were created, depending on a plain store path but no context string was attached to track that plain dependency. Context string propagation tests are strengthened to prevent any regression on this. Change-Id: Ifd6671aeba6949324b0bb9f0f766b87db728d484 Signed-off-by: Ryan Lahfa Reviewed-on: https://cl.tvl.fyi/c/depot/+/11351 Reviewed-by: Alyssa Ross Tested-by: BuildkiteCI Reviewed-by: flokli --- tvix/glue/src/tests/tvix_tests/eval-okay-context-propagation.nix | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'tvix/glue/src/tests/tvix_tests/eval-okay-context-propagation.nix') 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 67f0ac46729b..918061b8b861 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 @@ -12,6 +12,11 @@ let system = "x86_64-linux"; outputs = [ "out" "bar" ]; }; + a-path-drv = builtins.path { + name = "a-path-drv"; + path = ./eval-okay-context-introspection.nix; + }; + another-path-drv = builtins.filterSource (_: true) ./eval-okay-context-introspection.nix; # `substr` propagates context, we truncate to an empty string and concatenate to the target # to infect it with the context of `copied`. @@ -37,6 +42,9 @@ in (builtins.hasContext "${(builtins.toFile "myself" "${./eval-okay-context-introspection.nix}")}") # `derivation` should produce context. (builtins.hasContext "${drv}") + # `builtins.path` / `builtins.filterSource` should produce context. + (builtins.hasContext "${a-path-drv}") + (builtins.hasContext "${another-path-drv}") # Low-level test to ensure that interpolation is working as expected. (builtins.length (builtins.attrNames (builtins.getContext "${drv}${other-drv}")) == 2) (builtins.getContext "${drv}${other-drv}" == mergeContext drv other-drv) -- cgit 1.4.1