Skip to content

Commit f6d84f1

Browse files
Copilotsimongdavies
authored andcommitted
Fix clippy debug error by conditionally compiling benchmarks
Co-authored-by: simongdavies <1397489+simongdavies@users.noreply.github.com>
1 parent 5fd856b commit f6d84f1

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

src/hyperlight_host/benches/benchmarks.rs

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,34 @@ limitations under the License.
1717
// Benchmarks are only meaningful and should only run with optimized builds.
1818
// Unoptimized builds have different performance characteristics and would not provide
1919
// useful benchmarking data for performance regression testing.
20-
#[cfg(unoptimized_build)]
21-
compile_error!(
22-
"Benchmarks must be run with optimized builds only. Use `cargo bench --release` or `just bench`."
23-
);
2420

21+
#[cfg(optimized_build)]
2522
use criterion::{Criterion, criterion_group, criterion_main};
23+
#[cfg(optimized_build)]
2624
use hyperlight_host::GuestBinary;
25+
#[cfg(optimized_build)]
2726
use hyperlight_host::sandbox::{
2827
Callable, MultiUseSandbox, SandboxConfiguration, UninitializedSandbox,
2928
};
29+
#[cfg(optimized_build)]
3030
use hyperlight_host::sandbox_state::sandbox::EvolvableSandbox;
31+
#[cfg(optimized_build)]
3132
use hyperlight_host::sandbox_state::transition::Noop;
33+
#[cfg(optimized_build)]
3234
use hyperlight_testing::simple_guest_as_string;
3335

36+
#[cfg(optimized_build)]
3437
fn create_uninit_sandbox() -> UninitializedSandbox {
3538
let path = simple_guest_as_string().unwrap();
3639
UninitializedSandbox::new(GuestBinary::FilePath(path), None).unwrap()
3740
}
3841

42+
#[cfg(optimized_build)]
3943
fn create_multiuse_sandbox() -> MultiUseSandbox {
4044
create_uninit_sandbox().evolve(Noop::default()).unwrap()
4145
}
4246

47+
#[cfg(optimized_build)]
4348
fn guest_call_benchmark(c: &mut Criterion) {
4449
let mut group = c.benchmark_group("guest_functions");
4550

@@ -87,6 +92,7 @@ fn guest_call_benchmark(c: &mut Criterion) {
8792
group.finish();
8893
}
8994

95+
#[cfg(optimized_build)]
9096
fn guest_call_benchmark_large_param(c: &mut Criterion) {
9197
let mut group = c.benchmark_group("guest_functions_with_large_parameters");
9298
#[cfg(target_os = "windows")]
@@ -122,6 +128,7 @@ fn guest_call_benchmark_large_param(c: &mut Criterion) {
122128
group.finish();
123129
}
124130

131+
#[cfg(optimized_build)]
125132
fn sandbox_benchmark(c: &mut Criterion) {
126133
let mut group = c.benchmark_group("sandboxes");
127134

@@ -161,9 +168,19 @@ fn sandbox_benchmark(c: &mut Criterion) {
161168
group.finish();
162169
}
163170

171+
#[cfg(optimized_build)]
164172
criterion_group! {
165173
name = benches;
166174
config = Criterion::default();
167175
targets = guest_call_benchmark, sandbox_benchmark, guest_call_benchmark_large_param
168176
}
177+
178+
#[cfg(optimized_build)]
169179
criterion_main!(benches);
180+
181+
// For unoptimized builds, provide a minimal main function that explains benchmarks are not available
182+
#[cfg(unoptimized_build)]
183+
fn main() {
184+
eprintln!("Benchmarks are only available in optimized builds. Use `cargo bench --release` or `just bench`.");
185+
std::process::exit(1);
186+
}

0 commit comments

Comments
 (0)