Skip to content

Commit c5ce0fe

Browse files
feat(update_backlog)!: move CLI to verb-criteria model
1 parent f3bf581 commit c5ce0fe

1 file changed

Lines changed: 15 additions & 24 deletions

File tree

moz-webgpu-cts/src/main.rs

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -127,12 +127,14 @@ enum Subcommand {
127127
#[clap(value_enum, long, default_value_t = Default::default())]
128128
on_zero_item: OnZeroItem,
129129
},
130-
/// Identify and promote tests that are ready to come out of the `backlog` implementation
131-
/// status.
130+
/// Set `implementation-status` properties to `backlog` or `implementing` based on a
131+
/// given `criteria`, allowing changes only in the permitted `direction`.
132132
UpdateBacklog {
133-
/// The mode to use for updating tests.
133+
/// Direction(s) permitted for `implementation-status` changes.
134+
direction: UpdateBacklogDirection,
135+
/// The criteria to use to determine whether something is ready to come out of `backlog`.
134136
#[clap(subcommand)]
135-
preset: UpdateBacklogSubcommand,
137+
criteria: UpdateBacklogCriteria,
136138
},
137139
/// Dump all metadata as JSON. Do so at your own risk; no guarantees are made about the
138140
/// schema of this JSON, for now.
@@ -289,8 +291,9 @@ enum OnZeroItem {
289291
Hide,
290292
}
291293

292-
#[derive(Clone, Copy, Debug)]
294+
#[derive(Clone, Copy, Debug, ValueEnum)]
293295
enum UpdateBacklogDirection {
296+
/// Allows promotions from `backlog` to `implementing`.
294297
Promote,
295298
}
296299

@@ -302,15 +305,10 @@ impl UpdateBacklogDirection {
302305
}
303306
}
304307

305-
#[derive(Clone, Copy, Debug)]
306-
enum UpdateBacklogCriteria {
307-
PermaPassing { only_across_all_platforms: bool },
308-
}
309-
310308
#[derive(Clone, Copy, Debug, Parser)]
311-
enum UpdateBacklogSubcommand {
312-
/// Remove tests that expect only `PASS` outcomes on all platforms from `backlog`.
313-
PromotePermaPassing {
309+
enum UpdateBacklogCriteria {
310+
/// Determine status based on `PASS` outcomes on all platforms from `backlog`.
311+
PermaPassing {
314312
#[clap(long)]
315313
only_across_all_platforms: bool,
316314
},
@@ -1003,17 +1001,10 @@ fn run(cli: Cli) -> ExitCode {
10031001
println!("Full analysis: {analysis:#?}");
10041002
ExitCode::SUCCESS
10051003
}
1006-
Subcommand::UpdateBacklog { preset } => {
1007-
let (direction, criteria) = match preset {
1008-
UpdateBacklogSubcommand::PromotePermaPassing {
1009-
only_across_all_platforms,
1010-
} => (
1011-
UpdateBacklogDirection::Promote,
1012-
UpdateBacklogCriteria::PermaPassing {
1013-
only_across_all_platforms,
1014-
},
1015-
),
1016-
};
1004+
Subcommand::UpdateBacklog {
1005+
direction,
1006+
criteria,
1007+
} => {
10171008
let mut files = {
10181009
let mut found_parse_err = false;
10191010
let extracted = read_and_parse_all_metadata(browser, &checkout)

0 commit comments

Comments
 (0)