about summary refs log tree commit diff
path: root/tvix/eval/src/value/attrs
diff options
context:
space:
mode:
authorGriffin Smith <root@gws.fyi>2022-09-18T19·13-0400
committerclbot <clbot@tvl.fyi>2022-09-18T22·03+0000
commit0b76ed5615eb48130773abf1e1a949e29b6cbd25 (patch)
tree7f0b94c9d82cfa4bedf3e8a60a58986c81a3ddb5 /tvix/eval/src/value/attrs
parent915ff5ac2a180cbd736ce8404c46566a14d484ba (diff)
chore(tvix/eval): Pass in VM to nix_eq r/4909
Pass in, but ignore, a mutable reference to the VM to the `nix_eq`
functions, in preparation for using that VM to force thunks during
comparison.

Change-Id: I565435d8dfb33768f930fdb5a6b0fb1365d7e161
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6651
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Diffstat (limited to 'tvix/eval/src/value/attrs')
-rw-r--r--tvix/eval/src/value/attrs/tests.rs22
1 files changed, 18 insertions, 4 deletions
diff --git a/tvix/eval/src/value/attrs/tests.rs b/tvix/eval/src/value/attrs/tests.rs
index e96d50855b84..539a07e00f79 100644
--- a/tvix/eval/src/value/attrs/tests.rs
+++ b/tvix/eval/src/value/attrs/tests.rs
@@ -1,24 +1,38 @@
 use super::*;
 
 mod nix_eq {
+    use crate::observer::NoOpObserver;
+
     use super::*;
     use proptest::prelude::ProptestConfig;
     use test_strategy::proptest;
 
     #[proptest(ProptestConfig { cases: 5, ..Default::default() })]
     fn reflexive(x: NixAttrs) {
-        assert!(x.nix_eq(&x).unwrap())
+        let mut observer = NoOpObserver {};
+        let mut vm = VM::new(&mut observer);
+
+        assert!(x.nix_eq(&x, &mut vm).unwrap())
     }
 
     #[proptest(ProptestConfig { cases: 5, ..Default::default() })]
     fn symmetric(x: NixAttrs, y: NixAttrs) {
-        assert_eq!(x.nix_eq(&y).unwrap(), y.nix_eq(&x).unwrap())
+        let mut observer = NoOpObserver {};
+        let mut vm = VM::new(&mut observer);
+
+        assert_eq!(
+            x.nix_eq(&y, &mut vm).unwrap(),
+            y.nix_eq(&x, &mut vm).unwrap()
+        )
     }
 
     #[proptest(ProptestConfig { cases: 5, ..Default::default() })]
     fn transitive(x: NixAttrs, y: NixAttrs, z: NixAttrs) {
-        if x.nix_eq(&y).unwrap() && y.nix_eq(&z).unwrap() {
-            assert!(x.nix_eq(&z).unwrap())
+        let mut observer = NoOpObserver {};
+        let mut vm = VM::new(&mut observer);
+
+        if x.nix_eq(&y, &mut vm).unwrap() && y.nix_eq(&z, &mut vm).unwrap() {
+            assert!(x.nix_eq(&z, &mut vm).unwrap())
         }
     }
 }