diff --git a/crates/aiken-lang/src/test_framework.rs b/crates/aiken-lang/src/test_framework.rs index 2f39738d..25aa146f 100644 --- a/crates/aiken-lang/src/test_framework.rs +++ b/crates/aiken-lang/src/test_framework.rs @@ -450,16 +450,29 @@ impl PropertyTest { match prng.sample(&self.fuzzer.program) { Ok(Some((new_prng, value))) => { prng = new_prng; - let mut eval_result = self.eval(&value, plutus_version); + match self.eval(&value, plutus_version) { + mut eval_result => { + results.push(BenchmarkResult { + test: self.clone(), + cost: eval_result.cost(), + success: true, + traces: eval_result.logs().to_vec(), + }); + } + } + } + Ok(None) => { + break; + } + Err(e) => { results.push(BenchmarkResult { test: self.clone(), - cost: eval_result.cost(), - success: !eval_result.failed(false), - traces: eval_result.logs().to_vec(), + cost: ExBudget::default(), + success: false, + traces: vec![format!("Fuzzer error: {}", e)], }); + break; } - Ok(None) => {} - Err(_) => break, } remaining -= 1; } diff --git a/crates/aiken-project/src/lib.rs b/crates/aiken-project/src/lib.rs index e3456e3e..eb518b94 100644 --- a/crates/aiken-project/src/lib.rs +++ b/crates/aiken-project/src/lib.rs @@ -477,22 +477,11 @@ where let tests = self.collect_tests(false, match_tests, exact_match, options.tracing)?; if !tests.is_empty() { - self.event_listener.handle_event(Event::RunningTests); + self.event_listener.handle_event(Event::RunningBenchmarks); } let tests = self.run_benchmarks(tests, seed, property_max_success); - self.checks_count = if tests.is_empty() { - None - } else { - Some(tests.iter().fold(0, |acc, test| { - acc + match test { - TestResult::PropertyTestResult(r) => r.iterations, - _ => 1, - } - })) - }; - let errors: Vec = tests .iter() .filter_map(|e| { diff --git a/crates/aiken/src/cmd/benchmark.rs b/crates/aiken/src/cmd/benchmark.rs index 8a30dda6..b471fc4b 100644 --- a/crates/aiken/src/cmd/benchmark.rs +++ b/crates/aiken/src/cmd/benchmark.rs @@ -8,7 +8,7 @@ use std::{ }; #[derive(clap::Args)] -/// Type-check an Aiken project +/// Benchmark an Aiken project pub struct Args { /// Path to project directory: Option, @@ -33,7 +33,6 @@ pub struct Args { exact_match: bool, /// Environment to use for benchmarking - #[clap(short, long)] env: Option, /// Output file for benchmark results