summaryrefslogtreecommitdiff
path: root/cli/args/flags.rs
diff options
context:
space:
mode:
authorSerhiy Barhamon <sergey@bargamon.ru>2023-02-12 19:40:45 +0200
committerGitHub <noreply@github.com>2023-02-12 17:40:45 +0000
commitfc843d035c0cb4936d9b87670e282667a9a8b265 (patch)
treec17daf4a38a78342bcf458dfad186768a72c82b1 /cli/args/flags.rs
parent5a83af4837c016d89378f9fa982141b34ff30a23 (diff)
feat(bench): Add JSON reporter for "deno bench" subcommand (#17595)
Diffstat (limited to 'cli/args/flags.rs')
-rw-r--r--cli/args/flags.rs13
1 files changed, 13 insertions, 0 deletions
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<String>,
+ pub json: bool,
}
#[derive(Clone, Debug, Eq, PartialEq)]
@@ -718,6 +719,12 @@ 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")
.takes_value(true)
@@ -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![],