1d6643c4f6
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
80 lines
1.7 KiB
Rust
80 lines
1.7 KiB
Rust
//@ run-pass
|
|
|
|
#![feature(intrinsics, rustc_attrs)]
|
|
|
|
mod rusti {
|
|
extern "rust-intrinsic" {
|
|
pub fn pref_align_of<T>() -> usize;
|
|
#[rustc_safe_intrinsic]
|
|
pub fn min_align_of<T>() -> usize;
|
|
}
|
|
}
|
|
|
|
#[cfg(any(
|
|
target_os = "android",
|
|
target_os = "dragonfly",
|
|
target_os = "freebsd",
|
|
target_os = "fuchsia",
|
|
target_os = "hurd",
|
|
target_os = "illumos",
|
|
target_os = "linux",
|
|
target_os = "netbsd",
|
|
target_os = "openbsd",
|
|
target_os = "solaris",
|
|
target_os = "vxworks",
|
|
target_os = "nto",
|
|
target_vendor = "apple",
|
|
))]
|
|
mod m {
|
|
#[cfg(target_arch = "x86")]
|
|
pub fn main() {
|
|
unsafe {
|
|
assert_eq!(::rusti::pref_align_of::<u64>(), 8);
|
|
assert_eq!(::rusti::min_align_of::<u64>(), 4);
|
|
}
|
|
}
|
|
|
|
#[cfg(not(target_arch = "x86"))]
|
|
pub fn main() {
|
|
unsafe {
|
|
assert_eq!(::rusti::pref_align_of::<u64>(), 8);
|
|
assert_eq!(::rusti::min_align_of::<u64>(), 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
#[cfg(target_env = "sgx")]
|
|
mod m {
|
|
#[cfg(target_arch = "x86_64")]
|
|
pub fn main() {
|
|
unsafe {
|
|
assert_eq!(::rusti::pref_align_of::<u64>(), 8);
|
|
assert_eq!(::rusti::min_align_of::<u64>(), 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
#[cfg(target_os = "windows")]
|
|
mod m {
|
|
pub fn main() {
|
|
unsafe {
|
|
assert_eq!(::rusti::pref_align_of::<u64>(), 8);
|
|
assert_eq!(::rusti::min_align_of::<u64>(), 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
#[cfg(target_family = "wasm")]
|
|
mod m {
|
|
pub fn main() {
|
|
unsafe {
|
|
assert_eq!(::rusti::pref_align_of::<u64>(), 8);
|
|
assert_eq!(::rusti::min_align_of::<u64>(), 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
m::main();
|
|
}
|