From 878b7931617206b7284d0b740b3050fb0cc0d6fd Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Fri, 14 Jun 2024 19:17:35 +0200 Subject: [PATCH] test: eval_state_require_int_forces_thunk (cherry picked from commit 90de70936a726a8ae1aaf3e9aacb9a83b8d30b72) --- rust/nix-expr/src/eval_state.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/rust/nix-expr/src/eval_state.rs b/rust/nix-expr/src/eval_state.rs index 8db152b..f958ee4 100644 --- a/rust/nix-expr/src/eval_state.rs +++ b/rust/nix-expr/src/eval_state.rs @@ -513,6 +513,22 @@ mod tests { .unwrap(); } + #[test] + fn eval_state_require_int_forces_thunk() { + gc_registering_current_thread(|| { + let store = Store::open("auto", HashMap::new()).unwrap(); + let es = EvalState::new(store, []).unwrap(); + let f = es.eval_from_string("x: x + 1", "").unwrap(); + let a = es.eval_from_string("2", "").unwrap(); + let v = es.new_value_apply(&f, &a).unwrap(); + let t = es.value_type_unforced(&v); + assert!(t == None); + let i = es.require_int(&v).unwrap(); + assert!(i == 3); + }) + .unwrap(); + } + #[test] fn eval_state_value_attrs_names_empty() { gc_registering_current_thread(|| {