What I observed
The walltime duration parser accepts a bare negative numeric duration such as -1 far enough that execution starts.
I expected a negative duration to be rejected as an invalid duration before benchmark execution begins.
Reproduction
I reproduced this against the exec harness walltime option from this checkout:
cargo run -p exec-harness -- --max-time -1 true
The command did not fail during duration parsing. It started running the benchmark and then failed later:
Executing: true
Completed 142 warmup rounds
Error: Unable to determine number of rounds to perform
I also checked the parser path directly with this local test:
#[test]
fn negative_numeric_duration_is_rejected() {
assert!(parse_duration_to_ns("-1").is_err());
}
That assertion fails.
Expected behavior
Bare numeric durations should reject negative values.
Actual behavior
A bare numeric value like -1 is accepted by duration parsing and turns into a later execution error instead of an invalid-duration error.
I have not tried to fully classify every invalid numeric input here; the concrete case I observed is -1.
What I observed
The walltime duration parser accepts a bare negative numeric duration such as
-1far enough that execution starts.I expected a negative duration to be rejected as an invalid duration before benchmark execution begins.
Reproduction
I reproduced this against the exec harness walltime option from this checkout:
cargo run -p exec-harness -- --max-time -1 trueThe command did not fail during duration parsing. It started running the benchmark and then failed later:
I also checked the parser path directly with this local test:
That assertion fails.
Expected behavior
Bare numeric durations should reject negative values.
Actual behavior
A bare numeric value like
-1is accepted by duration parsing and turns into a later execution error instead of an invalid-duration error.I have not tried to fully classify every invalid numeric input here; the concrete case I observed is
-1.