diff --git a/core/tests/vm-benchmark/benches/criterion.rs b/core/tests/vm-benchmark/benches/criterion.rs index a02d6f308b33..e20d26ebd77b 100644 --- a/core/tests/vm-benchmark/benches/criterion.rs +++ b/core/tests/vm-benchmark/benches/criterion.rs @@ -7,11 +7,12 @@ use criterion::{ use zksync_types::Transaction; use zksync_vm_benchmark_harness::{ cut_to_allowed_bytecode_size, get_deploy_tx, get_heavy_load_test_tx, get_load_test_deploy_tx, - get_load_test_tx, get_realistic_load_test_tx, BenchmarkingVm, BenchmarkingVmFactory, Fast, Lambda, - Legacy, LoadTestParams, + get_load_test_tx, get_realistic_load_test_tx, BenchmarkingVm, BenchmarkingVmFactory, Fast, + Lambda, Legacy, LoadTestParams, }; const SAMPLE_SIZE: usize = 20; +const ZKSYNC_HOME: &str = std::env!("ZKSYNC_HOME"); fn benches_in_folder(c: &mut Criterion) { let mut group = c.benchmark_group(VM::LABEL.as_str()); @@ -19,7 +20,12 @@ fn benches_in_folder(c: &mut Criter .sample_size(SAMPLE_SIZE) .measurement_time(Duration::from_secs(10)); - for path in std::fs::read_dir("deployment_benchmarks").unwrap() { + let bench_path = format!( + "{}/core/tests/vm-benchmark/deployment_benchmarks", + ZKSYNC_HOME + ); + + for path in std::fs::read_dir(bench_path).unwrap() { let path = path.unwrap().path(); let test_contract = std::fs::read(&path).expect("failed to read file"); diff --git a/core/tests/vm-benchmark/deployment_benchmarks_sources/fibonacci_rec.sol b/core/tests/vm-benchmark/deployment_benchmarks_sources/fibonacci_rec.sol new file mode 100644 index 000000000000..acdd27356bfc --- /dev/null +++ b/core/tests/vm-benchmark/deployment_benchmarks_sources/fibonacci_rec.sol @@ -0,0 +1,19 @@ +pragma solidity ^0.8.0; + +contract benchmark { + uint256 value; + constructor() { + value = fib(25); + } + + function get_calculation() public view returns (uint256) { + return value; + } + + function fib(uint256 n) internal returns (uint256) { + if (n <= 1) { + return n; + } + return fib(n - 1) + fib(n - 2); + } +} diff --git a/core/tests/vm-benchmark/deployment_benchmarks_sources/send.sol b/core/tests/vm-benchmark/deployment_benchmarks_sources/send.sol new file mode 100644 index 000000000000..f8463ab46e43 --- /dev/null +++ b/core/tests/vm-benchmark/deployment_benchmarks_sources/send.sol @@ -0,0 +1,8 @@ +pragma solidity >=0.8.20; + +contract Send { + constructor() { + address payable self = payable(msg.sender); + self.call{value: 100}; + } +}