diff options
author | Griffin Smith <root@gws.fyi> | 2022-09-18T19·13-0400 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2022-09-18T22·03+0000 |
commit | 0b76ed5615eb48130773abf1e1a949e29b6cbd25 (patch) | |
tree | 7f0b94c9d82cfa4bedf3e8a60a58986c81a3ddb5 /tvix/eval/src/value/attrs | |
parent | 915ff5ac2a180cbd736ce8404c46566a14d484ba (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.rs | 22 |
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()) } } } |