From 61209f077540d167134b74657f7b067f550ba5c6 Mon Sep 17 00:00:00 2001 From: Ryan Lahfa Date: Fri, 12 Jan 2024 21:34:34 +0100 Subject: feat(tvix/glue): input derivation context tests `args` was not propagating context, here's a regression test for it. Change-Id: I8b6a3148508d40df0077128f0bafe68c098a03bd Reviewed-on: https://cl.tvl.fyi/c/depot/+/10610 Tested-by: BuildkiteCI Reviewed-by: flokli --- tvix/glue/src/builtins/mod.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'tvix/glue/src') diff --git a/tvix/glue/src/builtins/mod.rs b/tvix/glue/src/builtins/mod.rs index d5d42bcec911..3656bb9d1616 100644 --- a/tvix/glue/src/builtins/mod.rs +++ b/tvix/glue/src/builtins/mod.rs @@ -246,6 +246,38 @@ mod tests { } } + #[test_case(r#" + let + bar = builtins.derivation { + name = "bar"; + builder = ":"; + system = ":"; + outputHash = "08813cbee9903c62be4c5027726a418a300da4500b2d369d3af9286f4815ceba"; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + }; + in + (builtins.derivation { + name = "foo"; + builder = ":"; + args = [ "${bar}" ]; + system = ":"; + }).drvPath + "#, "/nix/store/50yl2gmmljyl0lzyrp1mcyhn53vhjhkd-foo.drv"; "input in `args`")] + fn test_inputs_derivation_from_context(code: &str, expected_drvpath: &str) { + let eval_result = eval(code); + + let value = eval_result.value.expect("must succeed"); + + match value { + tvix_eval::Value::String(s) => { + assert_eq!(expected_drvpath, s.as_str()); + } + + _ => panic!("unexpected value type: {:?}", value), + }; + } + #[test] fn builtins_placeholder_hashes() { assert_eq!( -- cgit 1.4.1