Fix most ui tests on emscripten target
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
This commit is contained in:
parent
17a19e684c
commit
1d6643c4f6
@ -612,6 +612,9 @@ pub fn from_triple(triple: &str) -> Self {
|
|||||||
if triple.contains("-none") || triple.contains("nvptx") || triple.contains("switch") {
|
if triple.contains("-none") || triple.contains("nvptx") || triple.contains("switch") {
|
||||||
target.no_std = true;
|
target.no_std = true;
|
||||||
}
|
}
|
||||||
|
if triple.contains("emscripten") {
|
||||||
|
target.runner = Some("node".into());
|
||||||
|
}
|
||||||
target
|
target
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1643,7 +1643,9 @@ fn make_exe_name(&self) -> PathBuf {
|
|||||||
// double the length.
|
// double the length.
|
||||||
let mut f = self.output_base_dir().join("a");
|
let mut f = self.output_base_dir().join("a");
|
||||||
// FIXME: This is using the host architecture exe suffix, not target!
|
// 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");
|
f = f.with_extra_extension("wasm");
|
||||||
} else if self.config.target.contains("spirv") {
|
} else if self.config.target.contains("spirv") {
|
||||||
f = f.with_extra_extension("spv");
|
f = f.with_extra_extension("spv");
|
||||||
|
@ -1520,7 +1520,6 @@ ui/issues/issue-12567.rs
|
|||||||
ui/issues/issue-12612.rs
|
ui/issues/issue-12612.rs
|
||||||
ui/issues/issue-12660.rs
|
ui/issues/issue-12660.rs
|
||||||
ui/issues/issue-12677.rs
|
ui/issues/issue-12677.rs
|
||||||
ui/issues/issue-12699.rs
|
|
||||||
ui/issues/issue-12729.rs
|
ui/issues/issue-12729.rs
|
||||||
ui/issues/issue-12744.rs
|
ui/issues/issue-12744.rs
|
||||||
ui/issues/issue-12860.rs
|
ui/issues/issue-12860.rs
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
const ENTRY_LIMIT: u32 = 901;
|
const ENTRY_LIMIT: u32 = 901;
|
||||||
// FIXME: The following limits should be reduced eventually.
|
// 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] = &[
|
const EXPECTED_TEST_FILE_EXTENSIONS: &[&str] = &[
|
||||||
"rs", // test source files
|
"rs", // test source files
|
||||||
|
@ -13,7 +13,6 @@ mod rusti {
|
|||||||
#[cfg(any(
|
#[cfg(any(
|
||||||
target_os = "android",
|
target_os = "android",
|
||||||
target_os = "dragonfly",
|
target_os = "dragonfly",
|
||||||
target_os = "emscripten",
|
|
||||||
target_os = "freebsd",
|
target_os = "freebsd",
|
||||||
target_os = "fuchsia",
|
target_os = "fuchsia",
|
||||||
target_os = "hurd",
|
target_os = "hurd",
|
||||||
|
@ -15,11 +15,12 @@
|
|||||||
|
|
||||||
//@ ignore-vxworks no 'sh'
|
//@ ignore-vxworks no 'sh'
|
||||||
//@ ignore-fuchsia no 'sh'
|
//@ ignore-fuchsia no 'sh'
|
||||||
|
//@ ignore-emscripten No threads
|
||||||
|
//@ only-unix SIGPIPE is a unix feature
|
||||||
|
|
||||||
use std::process;
|
use std::process;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
|
|
||||||
#[cfg(unix)]
|
|
||||||
fn main() {
|
fn main() {
|
||||||
// Just in case `yes` doesn't check for EPIPE...
|
// Just in case `yes` doesn't check for EPIPE...
|
||||||
thread::spawn(|| {
|
thread::spawn(|| {
|
||||||
@ -34,8 +35,3 @@ fn main() {
|
|||||||
assert!(output.status.success());
|
assert!(output.status.success());
|
||||||
assert!(output.stderr.len() == 0);
|
assert!(output.stderr.len() == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(unix))]
|
|
||||||
fn main() {
|
|
||||||
// Not worried about signal masks on other platforms
|
|
||||||
}
|
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
//@ run-pass
|
//@ run-pass
|
||||||
//@ ignore-sgx not supported
|
//@ ignore-sgx not supported
|
||||||
|
//@ ignore-emscripten
|
||||||
|
// FIXME: test hangs on emscripten
|
||||||
#![allow(deprecated)]
|
#![allow(deprecated)]
|
||||||
|
#![allow(unused_imports)]
|
||||||
|
|
||||||
use std::thread;
|
use std::thread;
|
||||||
|
|
@ -33,7 +33,6 @@ struct Outer {
|
|||||||
#[cfg(any(
|
#[cfg(any(
|
||||||
target_os = "android",
|
target_os = "android",
|
||||||
target_os = "dragonfly",
|
target_os = "dragonfly",
|
||||||
target_os = "emscripten",
|
|
||||||
target_os = "freebsd",
|
target_os = "freebsd",
|
||||||
target_os = "fuchsia",
|
target_os = "fuchsia",
|
||||||
target_os = "hurd",
|
target_os = "hurd",
|
||||||
|
Loading…
Reference in New Issue
Block a user