From 14bd2eaaf5ffc28ba66e571c0871b5636a684312 Mon Sep 17 00:00:00 2001 From: Aviv Yossef Date: Wed, 15 Oct 2025 15:04:42 +0300 Subject: [PATCH] ci: add bench_tools CLI scaffold --- Cargo.lock | 7 +++++++ Cargo.toml | 2 ++ crates/bench_tools/Cargo.toml | 10 ++++++++++ crates/bench_tools/src/main.rs | 31 +++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 crates/bench_tools/Cargo.toml create mode 100644 crates/bench_tools/src/main.rs diff --git a/Cargo.lock b/Cargo.lock index bf44c0f7803..d3c9e208e8a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3319,6 +3319,13 @@ dependencies = [ "serde", ] +[[package]] +name = "bench_tools" +version = "0.16.0-rc.0" +dependencies = [ + "clap", +] + [[package]] name = "bincode" version = "2.0.1" diff --git a/Cargo.toml b/Cargo.toml index 4a6aa5ac7af..de11081e100 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -83,6 +83,7 @@ members = [ "crates/apollo_task_executor", "crates/apollo_test_utils", "crates/apollo_time", + "crates/bench_tools", "crates/blockifier", "crates/blockifier_reexecution", "crates/blockifier_test_utils", @@ -211,6 +212,7 @@ async-trait = "0.1.79" atomic_refcell = "0.1.13" axum = "0.6.12" base64 = "0.13.0" +bench_tools.path = "crates/bench_tools" bincode = "1.3.3" bisection = "0.1.0" bitvec = "1.0.1" diff --git a/crates/bench_tools/Cargo.toml b/crates/bench_tools/Cargo.toml new file mode 100644 index 00000000000..8dc81ebab79 --- /dev/null +++ b/crates/bench_tools/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "bench_tools" +edition.workspace = true +version.workspace = true + +[lints] +workspace = true + +[dependencies] +clap = { workspace = true, features = ["derive"] } diff --git a/crates/bench_tools/src/main.rs b/crates/bench_tools/src/main.rs new file mode 100644 index 00000000000..0641a32efde --- /dev/null +++ b/crates/bench_tools/src/main.rs @@ -0,0 +1,31 @@ +use clap::{Parser, Subcommand}; + +#[derive(Parser)] +#[command(about = "Benchmark runner and comparison tool for CI.")] +struct Cli { + #[command(subcommand)] + command: Commands, +} + +#[derive(Subcommand)] +enum Commands { + /// Run benchmarks and output results. + Run { + /// Package name to run benchmarks for. + #[arg(short, long)] + package: String, + /// Output directory for results. + #[arg(short, long)] + out: String, + }, +} + +fn main() { + let cli = Cli::parse(); + + match cli.command { + Commands::Run { package: _, out: _ } => { + unimplemented!() + } + } +}