Skip to content

Commit

Permalink
Fix most ui tests on emscripten target
Browse files Browse the repository at this point in the history
To fix the linker errors, we need to set the output extension to `.js` instead
of `.wasm`. Setting the output to a `.wasm` file puts Emscripten into standalone
mode which is effectively a distinct target. We need to set the runner to be
`node` as well.

This fixes most of the ui tests. I fixed a few more tests with simple problems:
- `intrinsics/intrinsic-alignment.rs` and `structs-enums/rec-align-u64.rs` --
Two `#[cfg]` macros match for Emscripten so we got a duplicate definition of
`mod m`.
- `issues/issue-12699.rs` -- Seems to hang so I disabled it
- `process/process-sigpipe.rs` -- Not expected to work on Emscripten so I
disabled it
  • Loading branch information
hoodmane committed Oct 15, 2024
1 parent 17a19e6 commit 1d6643c
Show file tree
Hide file tree
Showing 8 changed files with 12 additions and 11 deletions.
3 changes: 3 additions & 0 deletions src/bootstrap/src/core/config/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -612,6 +612,9 @@ impl Target {
if triple.contains("-none") || triple.contains("nvptx") || triple.contains("switch") {
target.no_std = true;
}
if triple.contains("emscripten") {
target.runner = Some("node".into());
}
target
}
}
Expand Down
4 changes: 3 additions & 1 deletion src/tools/compiletest/src/runtest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1643,7 +1643,9 @@ impl<'test> TestCx<'test> {
// double the length.
let mut f = self.output_base_dir().join("a");
// FIXME: This is using the host architecture exe suffix, not target!
if self.config.target.starts_with("wasm") {
if self.config.target.contains("emscripten") {
f = f.with_extra_extension("js");
} else if self.config.target.starts_with("wasm") {
f = f.with_extra_extension("wasm");
} else if self.config.target.contains("spirv") {
f = f.with_extra_extension("spv");
Expand Down
1 change: 0 additions & 1 deletion src/tools/tidy/src/issues.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1520,7 +1520,6 @@ ui/issues/issue-12567.rs
ui/issues/issue-12612.rs
ui/issues/issue-12660.rs
ui/issues/issue-12677.rs
ui/issues/issue-12699.rs
ui/issues/issue-12729.rs
ui/issues/issue-12744.rs
ui/issues/issue-12860.rs
Expand Down
2 changes: 1 addition & 1 deletion src/tools/tidy/src/ui_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ use ignore::Walk;
const ENTRY_LIMIT: u32 = 901;
// FIXME: The following limits should be reduced eventually.

const ISSUES_ENTRY_LIMIT: u32 = 1673;
const ISSUES_ENTRY_LIMIT: u32 = 1672;

const EXPECTED_TEST_FILE_EXTENSIONS: &[&str] = &[
"rs", // test source files
Expand Down
1 change: 0 additions & 1 deletion tests/ui/intrinsics/intrinsic-alignment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ mod rusti {
#[cfg(any(
target_os = "android",
target_os = "dragonfly",
target_os = "emscripten",
target_os = "freebsd",
target_os = "fuchsia",
target_os = "hurd",
Expand Down
8 changes: 2 additions & 6 deletions tests/ui/process/process-sigpipe.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@

//@ ignore-vxworks no 'sh'
//@ ignore-fuchsia no 'sh'
//@ ignore-emscripten No threads
//@ only-unix SIGPIPE is a unix feature

use std::process;
use std::thread;

#[cfg(unix)]
fn main() {
// Just in case `yes` doesn't check for EPIPE...
thread::spawn(|| {
Expand All @@ -34,8 +35,3 @@ fn main() {
assert!(output.status.success());
assert!(output.stderr.len() == 0);
}

#[cfg(not(unix))]
fn main() {
// Not worried about signal masks on other platforms
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
//@ run-pass
//@ ignore-sgx not supported
//@ ignore-emscripten
// FIXME: test hangs on emscripten
#![allow(deprecated)]
#![allow(unused_imports)]

use std::thread;

Expand Down
1 change: 0 additions & 1 deletion tests/ui/structs-enums/rec-align-u64.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ struct Outer {
#[cfg(any(
target_os = "android",
target_os = "dragonfly",
target_os = "emscripten",
target_os = "freebsd",
target_os = "fuchsia",
target_os = "hurd",
Expand Down

0 comments on commit 1d6643c

Please sign in to comment.