Support picking the last subtest by using a random big number (#970)

This commit is contained in:
Alex Saveau 2023-04-26 01:02:17 -07:00 committed by GitHub
parent 0d1037a58c
commit f740c0b03f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -45,7 +45,8 @@ struct Args {
filter: Vec<String>,
/// runs only the specified subtest
#[arg(short, long)]
subtest: Option<usize>,
#[arg(allow_hyphen_values = true)]
subtest: Option<isize>,
#[arg(long)]
exact: bool,
#[arg(long, default_value_t = env::var_os("UPDATE_EXPECT").is_some())]
@ -368,6 +369,10 @@ fn test(
let parts: Vec<_> = text.split("\n---").collect();
for (i, &part) in parts.iter().enumerate() {
if let Some(x) = args.subtest {
let x = usize::try_from(
x.rem_euclid(isize::try_from(parts.len()).unwrap_or_default()),
)
.unwrap();
if x != i {
writeln!(output, " Skipped subtest {i}.").unwrap();
continue;