diff options
Diffstat (limited to 'tvix/eval/src/tests')
-rw-r--r-- | tvix/eval/src/tests/mod.rs | 4 | ||||
-rw-r--r-- | tvix/eval/src/tests/one_offs.rs | 19 |
2 files changed, 23 insertions, 0 deletions
diff --git a/tvix/eval/src/tests/mod.rs b/tvix/eval/src/tests/mod.rs index 98c93ba27084..aeec75b2ae9d 100644 --- a/tvix/eval/src/tests/mod.rs +++ b/tvix/eval/src/tests/mod.rs @@ -2,6 +2,10 @@ use builtin_macros::builtins; use pretty_assertions::assert_eq; use test_generator::test_resources; +/// Module for one-off tests which do not follow the rest of the +/// test layout. +mod one_offs; + #[builtins] mod mock_builtins { //! Builtins which are required by language tests, but should not diff --git a/tvix/eval/src/tests/one_offs.rs b/tvix/eval/src/tests/one_offs.rs new file mode 100644 index 000000000000..63bb8f7af378 --- /dev/null +++ b/tvix/eval/src/tests/one_offs.rs @@ -0,0 +1,19 @@ +use crate::*; + +#[test] +fn test_source_builtin() { + // Test an evaluation with a source-only builtin. The test ensures + // that the artificially constructed thunking is correct. + + let mut eval = Evaluation::new_impure("builtins.testSourceBuiltin", None); + eval.src_builtins.push(("testSourceBuiltin", "42")); + + let result = eval.evaluate(); + assert!( + result.errors.is_empty(), + "evaluation failed: {:?}", + result.errors + ); + + assert!(matches!(result.value.unwrap(), Value::Integer(42))); +} |