From fc843d035c0cb4936d9b87670e282667a9a8b265 Mon Sep 17 00:00:00 2001 From: Serhiy Barhamon Date: Sun, 12 Feb 2023 19:40:45 +0200 Subject: feat(bench): Add JSON reporter for "deno bench" subcommand (#17595) --- cli/args/flags.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'cli/args/flags.rs') diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 792ed8775..ee8ec2563 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -54,6 +54,7 @@ pub struct FileFlags { pub struct BenchFlags { pub files: FileFlags, pub filter: Option, + pub json: bool, } #[derive(Clone, Debug, Eq, PartialEq)] @@ -717,6 +718,12 @@ fn clap_root(version: &str) -> Command { fn bench_subcommand<'a>() -> Command<'a> { runtime_args(Command::new("bench"), true, false) .trailing_var_arg(true) + .arg( + Arg::new("json") + .long("json") + .help("UNSTABLE: Output benchmark result in JSON format") + .takes_value(false), + ) .arg( Arg::new("ignore") .long("ignore") @@ -2325,6 +2332,8 @@ fn bench_parse(flags: &mut Flags, matches: &clap::ArgMatches) { // interactive prompts, unless done by user code flags.no_prompt = true; + let json = matches.is_present("json"); + let ignore = match matches.values_of("ignore") { Some(f) => f.map(PathBuf::from).collect(), None => vec![], @@ -2359,6 +2368,7 @@ fn bench_parse(flags: &mut Flags, matches: &clap::ArgMatches) { flags.subcommand = DenoSubcommand::Bench(BenchFlags { files: FileFlags { include, ignore }, filter, + json, }); } @@ -6535,6 +6545,7 @@ mod tests { let r = flags_from_vec(svec![ "deno", "bench", + "--json", "--unstable", "--filter", "- foo", @@ -6552,6 +6563,7 @@ mod tests { Flags { subcommand: DenoSubcommand::Bench(BenchFlags { filter: Some("- foo".to_string()), + json: true, files: FileFlags { include: vec![PathBuf::from("dir1/"), PathBuf::from("dir2/")], ignore: vec![], @@ -6576,6 +6588,7 @@ mod tests { Flags { subcommand: DenoSubcommand::Bench(BenchFlags { filter: None, + json: false, files: FileFlags { include: vec![], ignore: vec![], -- cgit v1.2.3