From 683cf31de270c0780d69a5f3d3b1bd22cba61c46 Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Sun, 9 Jan 2022 17:26:46 +0800 Subject: [PATCH] Add more tests. --- benches/eval_expression.rs | 15 +++++++++++++++ tests/arrays.rs | 12 ++++++++++++ 2 files changed, 27 insertions(+) diff --git a/benches/eval_expression.rs b/benches/eval_expression.rs index 73bae9c0..dfcdbb06 100644 --- a/benches/eval_expression.rs +++ b/benches/eval_expression.rs @@ -106,6 +106,21 @@ fn bench_eval_call(bench: &mut Bencher) { bench.iter(|| engine.eval::(script).unwrap()); } +#[bench] +fn bench_eval_deeply_nested(bench: &mut Bencher) { + let script = r#" + (1 + 2 * 3 - 9) * 4 < 5 * 6 - 70 / 8 && + (42 + 99 > 1 + 2 - 3 + 4 * 5 || 123 - 88 < 123 + 88 - 99 + 100) + && true + && !!!!!!!!false + "#; + + let mut engine = Engine::new(); + engine.set_optimization_level(OptimizationLevel::None); + + bench.iter(|| engine.eval::(script).unwrap()); +} + #[bench] fn bench_eval_loop_number(bench: &mut Bencher) { let script = " diff --git a/tests/arrays.rs b/tests/arrays.rs index 8da2f30d..ce1a0028 100644 --- a/tests/arrays.rs +++ b/tests/arrays.rs @@ -120,6 +120,18 @@ fn test_arrays() -> Result<(), Box> { .into_typed_array::()?, [1, 2, 3, 4, 5] ); + #[cfg(not(feature = "no_closure"))] + assert!(!engine.eval::( + " + let x = 42; + let y = []; + let f = || x; + for n in 0..10 { + y += x; + } + some(y, |x| is_shared(x)) + " + )?); Ok(()) }