Skip to content

Commit

Permalink
Rollup merge of #136353 - purplesyringa:libtest-instant-wasm, r=Mark-…
Browse files Browse the repository at this point in the history
…Simulacrum

fix(libtest): Enable Instant on Emscripten targets

`Instant::now()` works correctly on Emscripten since rust-lang/libc#3962. All wasm-family targets with OS support can now handle instants.

Improves #131738.

~~This changes the behavior of libtest on `unknown-unknown`/`unknown-none` wasm targets, but as far as I can see, libtest doesn't support them anyway. (Can anyone double-check?)~~ UPD: this patch no longer affects `unknown-unknown` targets.

``@rustbot`` label +A-libtest +T-testing-devex +O-emscripten +O-wasm -needs-triage
  • Loading branch information
workingjubilee authored Feb 10, 2025
2 parents 888b438 + b01c7f6 commit 6ef2cd8
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions library/test/src/console.rs
Original file line number Diff line number Diff line change
Expand Up @@ -314,9 +314,10 @@ pub fn run_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Resu
let mut st = ConsoleTestState::new(opts)?;

// Prevent the usage of `Instant` in some cases:
// - It's currently not supported for wasm targets.
// - It's currently not supported for wasm targets without Emscripten nor WASI.
// - It's currently not supported for zkvm targets.
let is_instant_unsupported =
(cfg!(target_family = "wasm") && !cfg!(target_os = "wasi")) || cfg!(target_os = "zkvm");
(cfg!(target_family = "wasm") && cfg!(target_os = "unknown")) || cfg!(target_os = "zkvm");

let start_time = (!is_instant_unsupported).then(Instant::now);
run_tests(opts, tests, |x| on_test_event(&x, &mut st, &mut *out))?;
Expand Down

0 comments on commit 6ef2cd8

Please sign in to comment.