diff options
Diffstat (limited to 'tvix')
-rw-r--r-- | tvix/glue/src/builtins/mod.rs | 32 |
1 files changed, 32 insertions, 0 deletions
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!( |