From 7dc410d25896f7114117f927c5654b6a18a994ea Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Thu, 9 Jan 2020 21:49:08 -0800 Subject: [PATCH 1/7] Enable more tests for Emscripten targets Specifically, enable SIMD intrinsic tests, target-independent asm! tests, and tests that were ignored due to old fastcomp bugs that have long since become irrelevant. Also re-enables asmjs tests that pass -g by reducing the corresponding Emscripten debug level so that it does not error out with a message about source maps being unsupported. This required fixing the asmjs target's `arch` string to be `"asmjs"` rather than `"wasm32"`, and that in turn required auditing many cfg attributes and fixing them to include both asmjs and wasm32. For many tests that could not be re-enabled, also adds an explanatory comment to make future auditing easier. In particular, tests requiring threads are left to be re-enabled in future work. --- src/bootstrap/native.rs | 4 ---- src/ci/docker/scripts/emscripten.sh | 4 ++-- src/ci/docker/wasm32/Dockerfile | 10 +-------- src/liballoc/collections/linked_list/tests.rs | 2 +- src/liballoc/tests/binary_heap.rs | 2 -- src/liballoc/tests/lib.rs | 3 --- src/liballoc/tests/slice.rs | 2 -- src/liballoc/tests/vec.rs | 4 ---- src/libcore/fmt/num.rs | 4 ++-- src/libcore/ptr/mod.rs | 4 ++-- src/libcore/sync/atomic.rs | 8 ------- src/libcore/tests/hash/mod.rs | 3 --- src/libcore/tests/num/dec2flt/mod.rs | 2 -- src/libcore/tests/num/dec2flt/rawfp.rs | 3 --- src/libcore/tests/num/flt2dec/random.rs | 8 ------- .../tests/num/flt2dec/strategy/dragon.rs | 1 - .../tests/num/flt2dec/strategy/grisu.rs | 1 - src/libcore/tests/slice.rs | 2 -- src/librustc_codegen_ssa/back/linker.rs | 9 +++++--- src/librustc_codegen_ssa/back/write.rs | 3 +-- .../spec/asmjs_unknown_emscripten.rs | 1 + src/libstd/f64.rs | 3 --- src/libstd/io/mod.rs | 2 +- src/libstd/net/tcp.rs | 2 +- src/libstd/sys/mod.rs | 8 ++++--- src/libstd/sys/unix/env.rs | 13 +----------- src/libstd/sys_common/mod.rs | 1 + src/libstd/thread/local.rs | 8 +++---- src/libstd/thread/mod.rs | 2 +- src/libtest/tests.rs | 12 +---------- src/test/codegen/abi-efiapi.rs | 3 +++ src/test/incremental/commandline-args.rs | 1 - .../incremental/remapped_paths_cc/main.rs | 1 - src/test/incremental/span_hash_stable/main.rs | 1 - .../incremental/spans_in_type_debuginfo.rs | 1 - .../spans_significant_w_debuginfo.rs | 1 - src/test/ui/abi/extern/extern-pass-empty.rs | 1 - src/test/ui/asm-concat-src.rs | 1 - src/test/ui/asm/issue-51431.rs | 1 - src/test/ui/asm/issue-51431.stderr | 2 +- src/test/ui/async-await/issue-60709.rs | 1 - ...-65419-async-fn-resume-after-completion.rs | 3 +-- src/test/ui/binding/match-arm-statics.rs | 1 - src/test/ui/consts/const-endianess.rs | 12 ++++------- src/test/ui/debuginfo-lto.rs | 1 - src/test/ui/env-home-dir.rs | 2 +- src/test/ui/error-codes/E0661.rs | 2 -- src/test/ui/error-codes/E0661.stderr | 4 ++-- src/test/ui/error-codes/E0662.rs | 2 -- src/test/ui/error-codes/E0662.stderr | 2 +- src/test/ui/error-codes/E0663.rs | 2 -- src/test/ui/error-codes/E0663.stderr | 2 +- src/test/ui/error-codes/E0664.rs | 2 -- src/test/ui/error-codes/E0664.stderr | 2 +- src/test/ui/extern/extern-const.fixed | 1 - src/test/ui/extern/extern-const.rs | 1 - src/test/ui/extern/extern-const.stderr | 2 +- src/test/ui/feature-gates/feature-gate-asm.rs | 2 -- .../ui/feature-gates/feature-gate-asm.stderr | 2 +- .../ui/feature-gates/feature-gate-asm2.rs | 2 -- .../ui/feature-gates/feature-gate-asm2.stderr | 2 +- src/test/ui/generator/issue-58888.rs | 1 - src/test/ui/inherit-env.rs | 3 +-- src/test/ui/inline-asm-bad-constraint.rs | 1 - src/test/ui/inline-asm-bad-constraint.stderr | 6 +++--- src/test/ui/inline-asm-bad-operand.rs | 1 - src/test/ui/inline-asm-bad-operand.stderr | 14 ++++++------- src/test/ui/issues/issue-18804/main.rs | 2 -- src/test/ui/issues/issue-23477.rs | 1 - .../issue-24687-embed-debuginfo/main.rs | 1 - .../ui/issues/issue-24945-repeat-dash-opts.rs | 1 - src/test/ui/issues/issue-26484.rs | 1 - src/test/ui/issues/issue-32947.rs | 1 - src/test/ui/issues/issue-33096.rs | 1 - src/test/ui/issues/issue-34569.rs | 1 - src/test/ui/issues/issue-36856.rs | 1 - src/test/ui/issues/issue-37131.rs | 2 ++ src/test/ui/issues/issue-37366.rs | 1 - src/test/ui/issues/issue-37433.rs | 1 - src/test/ui/issues/issue-37433.stderr | 2 +- src/test/ui/issues/issue-38074.rs | 1 - src/test/ui/issues/issue-38763.rs | 1 - src/test/ui/issues/issue-39175.rs | 2 +- src/test/ui/issues/issue-39720.rs | 1 - src/test/ui/issues/issue-42210.rs | 1 - src/test/ui/issues/issue-45731.rs | 1 - src/test/ui/issues/issue-48508.rs | 1 - .../issue-49851/compiler-builtins-error.rs | 2 ++ src/test/ui/issues/issue-50993.rs | 2 ++ .../issue-53787-inline-assembler-macro.rs | 1 - .../issue-53787-inline-assembler-macro.stderr | 2 +- src/test/ui/issues/issue-58463.rs | 1 - src/test/ui/lint/lint-ctypes.rs | 1 - .../ui/macros/macro-expanded-include/test.rs | 1 - src/test/ui/mir/mir_heavy_promoted.rs | 1 - src/test/ui/mpsc_stress.rs | 2 +- .../next-power-of-two-overflow-debug.rs | 1 - .../next-power-of-two-overflow-ndebug.rs | 1 - .../saturating-float-casts.rs | 21 +++++++------------ .../packed-struct-address-of-element.rs | 1 - .../ui/packed/packed-struct-borrow-element.rs | 1 - .../abort-link-to-unwind-dylib.rs | 2 +- src/test/ui/paths-containing-nul.rs | 2 +- src/test/ui/sepcomp/sepcomp-lib-lto.rs | 1 - src/test/ui/simd/simd-intrinsic-float-math.rs | 1 - .../ui/simd/simd-intrinsic-float-minmax.rs | 1 - ...intrinsic-generic-arithmetic-saturating.rs | 1 - .../simd/simd-intrinsic-generic-arithmetic.rs | 2 -- .../ui/simd/simd-intrinsic-generic-bitmask.rs | 2 -- .../ui/simd/simd-intrinsic-generic-cast.rs | 1 - .../simd/simd-intrinsic-generic-comparison.rs | 1 - .../simd/simd-intrinsic-generic-elements.rs | 1 - .../ui/simd/simd-intrinsic-generic-gather.rs | 1 - .../simd/simd-intrinsic-generic-reduction.rs | 1 - .../ui/simd/simd-intrinsic-generic-select.rs | 1 - src/test/ui/simd/simd-target-feature-mixup.rs | 2 +- .../unboxed-closures-unique-type-id.rs | 1 - src/test/ui/wrapping-int-combinations.rs | 2 -- 118 files changed, 80 insertions(+), 225 deletions(-) diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs index ce977f1bbc44e..7943bf882b7a5 100644 --- a/src/bootstrap/native.rs +++ b/src/bootstrap/native.rs @@ -520,10 +520,6 @@ impl Step for TestHelpers { builder.info("Building test helpers"); t!(fs::create_dir_all(&dst)); let mut cfg = cc::Build::new(); - // FIXME: Workaround for https://github.com/emscripten-core/emscripten/issues/9013 - if target.contains("emscripten") { - cfg.pic(false); - } // We may have found various cross-compilers a little differently due to our // extra configuration, so inform gcc of these compilers. Note, though, that diff --git a/src/ci/docker/scripts/emscripten.sh b/src/ci/docker/scripts/emscripten.sh index 1be80741594cc..00c6cdf52a7b1 100644 --- a/src/ci/docker/scripts/emscripten.sh +++ b/src/ci/docker/scripts/emscripten.sh @@ -19,5 +19,5 @@ exit 1 git clone https://github.com/emscripten-core/emsdk.git /emsdk-portable cd /emsdk-portable -hide_output ./emsdk install 1.38.46-upstream -./emsdk activate 1.38.46-upstream +hide_output ./emsdk install 1.39.5 +./emsdk activate 1.39.5 diff --git a/src/ci/docker/wasm32/Dockerfile b/src/ci/docker/wasm32/Dockerfile index a0f35afd995b3..5f283dadaad0c 100644 --- a/src/ci/docker/wasm32/Dockerfile +++ b/src/ci/docker/wasm32/Dockerfile @@ -33,12 +33,4 @@ ENV EMCC_CFLAGS=-O1 # Emscripten installation is user-specific ENV NO_CHANGE_USER=1 -# FIXME: Re-enable these tests once https://github.com/rust-lang/cargo/pull/7476 -# is picked up by CI -ENV SCRIPT python2.7 ../x.py test --target $TARGETS \ - --exclude src/libcore \ - --exclude src/liballoc \ - --exclude src/libproc_macro \ - --exclude src/libstd \ - --exclude src/libterm \ - --exclude src/libtest +ENV SCRIPT python2.7 ../x.py test --target $TARGETS diff --git a/src/liballoc/collections/linked_list/tests.rs b/src/liballoc/collections/linked_list/tests.rs index 1b1d8eab39bfc..602dd5020d3c1 100644 --- a/src/liballoc/collections/linked_list/tests.rs +++ b/src/liballoc/collections/linked_list/tests.rs @@ -181,7 +181,7 @@ fn test_insert_prev() { } #[test] -#[cfg_attr(target_os = "emscripten", ignore)] +#[cfg_attr(target_os = "emscripten", ignore)] // Emscripten does not support threads #[cfg_attr(miri, ignore)] // Miri does not support threads fn test_send() { let n = list_from(&[1, 2, 3]); diff --git a/src/liballoc/tests/binary_heap.rs b/src/liballoc/tests/binary_heap.rs index f49ca7139212f..3e06ed2d3c6de 100644 --- a/src/liballoc/tests/binary_heap.rs +++ b/src/liballoc/tests/binary_heap.rs @@ -345,9 +345,7 @@ fn assert_covariance() { // even if the order may not be correct. // // Destructors must be called exactly once per element. -// FIXME: re-enable emscripten once it can unwind again #[test] -#[cfg(not(target_os = "emscripten"))] fn panic_safe() { use rand::{seq::SliceRandom, thread_rng}; use std::cmp; diff --git a/src/liballoc/tests/lib.rs b/src/liballoc/tests/lib.rs index 3fdee8bbfdf10..89eaa2dfa9f7f 100644 --- a/src/liballoc/tests/lib.rs +++ b/src/liballoc/tests/lib.rs @@ -36,9 +36,6 @@ fn hash(t: &T) -> u64 { s.finish() } -// FIXME: Instantiated functions with i128 in the signature is not supported in Emscripten. -// See https://github.com/kripken/emscripten-fastcomp/issues/169 -#[cfg(not(target_os = "emscripten"))] #[test] fn test_boxed_hasher() { let ordinary_hash = hash(&5u32); diff --git a/src/liballoc/tests/slice.rs b/src/liballoc/tests/slice.rs index 51ddb5e7a4ec6..748f30611558d 100644 --- a/src/liballoc/tests/slice.rs +++ b/src/liballoc/tests/slice.rs @@ -1395,7 +1395,6 @@ fn test_box_slice_clone() { #[test] #[allow(unused_must_use)] // here, we care about the side effects of `.clone()` -#[cfg_attr(target_os = "emscripten", ignore)] fn test_box_slice_clone_panics() { use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::Arc; @@ -1636,7 +1635,6 @@ macro_rules! test { thread_local!(static SILENCE_PANIC: Cell = Cell::new(false)); #[test] -#[cfg_attr(target_os = "emscripten", ignore)] // no threads fn panic_safe() { let prev = panic::take_hook(); panic::set_hook(Box::new(move |info| { diff --git a/src/liballoc/tests/vec.rs b/src/liballoc/tests/vec.rs index 2a9bfefc713e7..d72a52f430397 100644 --- a/src/liballoc/tests/vec.rs +++ b/src/liballoc/tests/vec.rs @@ -937,9 +937,7 @@ fn drain_filter_complex() { } } -// FIXME: re-enable emscripten once it can unwind again #[test] -#[cfg(not(target_os = "emscripten"))] fn drain_filter_consumed_panic() { use std::rc::Rc; use std::sync::Mutex; @@ -989,9 +987,7 @@ fn drain_filter_consumed_panic() { } } -// FIXME: Re-enable emscripten once it can catch panics #[test] -#[cfg(not(target_os = "emscripten"))] fn drain_filter_unconsumed_panic() { use std::rc::Rc; use std::sync::Mutex; diff --git a/src/libcore/fmt/num.rs b/src/libcore/fmt/num.rs index d562639a6588d..ea645db92967f 100644 --- a/src/libcore/fmt/num.rs +++ b/src/libcore/fmt/num.rs @@ -258,7 +258,7 @@ macro_rules! impl_Display { // Include wasm32 in here since it doesn't reflect the native pointer size, and // often cares strongly about getting a smaller code size. -#[cfg(any(target_pointer_width = "64", target_arch = "wasm32"))] +#[cfg(any(target_pointer_width = "64", target_arch = "wasm32", target_arch = "asmjs"))] mod imp { use super::*; impl_Display!( @@ -267,7 +267,7 @@ mod imp { ); } -#[cfg(not(any(target_pointer_width = "64", target_arch = "wasm32")))] +#[cfg(not(any(target_pointer_width = "64", target_arch = "wasm32", target_arch = "asmjs")))] mod imp { use super::*; impl_Display!(i8, u8, i16, u16, i32, u32, isize, usize as u32 via to_u32 named fmt_u32); diff --git a/src/libcore/ptr/mod.rs b/src/libcore/ptr/mod.rs index d7b351f13458a..e575eb7b137fa 100644 --- a/src/libcore/ptr/mod.rs +++ b/src/libcore/ptr/mod.rs @@ -426,8 +426,8 @@ unsafe fn swap_nonoverlapping_bytes(x: *mut u8, y: *mut u8, len: usize) { // Haswell E processors. LLVM is more able to optimize if we give a struct a // #[repr(simd)], even if we don't actually use this struct directly. // - // FIXME repr(simd) broken on emscripten and redox - #[cfg_attr(not(any(target_os = "emscripten", target_os = "redox")), repr(simd))] + // FIXME repr(simd) broken on redox + #[cfg_attr(not(target_os = "redox"), repr(simd))] struct Block(u64, u64, u64, u64); struct UnalignedBlock(u64, u64, u64, u64); diff --git a/src/libcore/sync/atomic.rs b/src/libcore/sync/atomic.rs index fae95ca5cdb36..6d988ab624b07 100644 --- a/src/libcore/sync/atomic.rs +++ b/src/libcore/sync/atomic.rs @@ -2517,15 +2517,7 @@ unsafe fn atomic_umin(dst: *mut T, val: T, order: Ordering) -> T { /// [`Relaxed`]: enum.Ordering.html#variant.Relaxed #[inline] #[stable(feature = "rust1", since = "1.0.0")] -#[cfg_attr(target_arch = "wasm32", allow(unused_variables))] pub fn fence(order: Ordering) { - // On wasm32 it looks like fences aren't implemented in LLVM yet in that - // they will cause LLVM to abort. The wasm instruction set doesn't have - // fences right now. There's discussion online about the best way for tools - // to conventionally implement fences at - // https://github.com/WebAssembly/tool-conventions/issues/59. We should - // follow that discussion and implement a solution when one comes about! - #[cfg(not(target_arch = "wasm32"))] unsafe { match order { Acquire => intrinsics::atomic_fence_acq(), diff --git a/src/libcore/tests/hash/mod.rs b/src/libcore/tests/hash/mod.rs index 1566d35749017..605cf4ba9a35e 100644 --- a/src/libcore/tests/hash/mod.rs +++ b/src/libcore/tests/hash/mod.rs @@ -127,9 +127,6 @@ fn test_custom_state() { assert_eq!(hash(&Custom { hash: 5 }), 5); } -// FIXME: Instantiated functions with i128 in the signature is not supported in Emscripten. -// See https://github.com/kripken/emscripten-fastcomp/issues/169 -#[cfg(not(target_os = "emscripten"))] #[test] fn test_indirect_hasher() { let mut hasher = MyHasher { hash: 0 }; diff --git a/src/libcore/tests/num/dec2flt/mod.rs b/src/libcore/tests/num/dec2flt/mod.rs index a1fa5556ae5db..bcc67a94b9424 100644 --- a/src/libcore/tests/num/dec2flt/mod.rs +++ b/src/libcore/tests/num/dec2flt/mod.rs @@ -23,7 +23,6 @@ macro_rules! test_literal { }}; } -#[cfg_attr(all(target_arch = "wasm32", target_os = "emscripten"), ignore)] // issue 42630 #[test] fn ordinary() { test_literal!(1.0); @@ -40,7 +39,6 @@ fn ordinary() { test_literal!(2.2250738585072014e-308); } -#[cfg_attr(all(target_arch = "wasm32", target_os = "emscripten"), ignore)] // issue 42630 #[test] fn special_code_paths() { test_literal!(36893488147419103229.0); // 2^65 - 3, triggers half-to-even with even significand diff --git a/src/libcore/tests/num/dec2flt/rawfp.rs b/src/libcore/tests/num/dec2flt/rawfp.rs index 665fb6b9efb8c..1290109e840a5 100644 --- a/src/libcore/tests/num/dec2flt/rawfp.rs +++ b/src/libcore/tests/num/dec2flt/rawfp.rs @@ -83,7 +83,6 @@ fn rounding_overflow() { assert_eq!(rounded.k, adjusted_k + 1); } -#[cfg_attr(all(target_arch = "wasm32", target_os = "emscripten"), ignore)] // issue 42630 #[test] fn prev_float_monotonic() { let mut x = 1.0; @@ -119,7 +118,6 @@ fn next_float_inf() { assert_eq!(next_float(f64::INFINITY), f64::INFINITY); } -#[cfg_attr(all(target_arch = "wasm32", target_os = "emscripten"), ignore)] // issue 42630 #[test] fn next_prev_identity() { for &x in &SOME_FLOATS { @@ -130,7 +128,6 @@ fn next_prev_identity() { } } -#[cfg_attr(all(target_arch = "wasm32", target_os = "emscripten"), ignore)] // issue 42630 #[test] fn next_float_monotonic() { let mut x = 0.49999999999999; diff --git a/src/libcore/tests/num/flt2dec/random.rs b/src/libcore/tests/num/flt2dec/random.rs index ecdfc4b30a59f..91698e86dece3 100644 --- a/src/libcore/tests/num/flt2dec/random.rs +++ b/src/libcore/tests/num/flt2dec/random.rs @@ -1,5 +1,3 @@ -#![cfg(not(target_arch = "wasm32"))] - use std::i16; use std::str; @@ -89,9 +87,6 @@ where F: FnMut(&Decoded, &mut [u8]) -> Option<(usize, i16)>, G: FnMut(&Decoded, &mut [u8]) -> (usize, i16), { - if cfg!(target_os = "emscripten") { - return; // using rng pulls in i128 support, which doesn't work - } let mut rng = StdRng::from_entropy(); let f32_range = Uniform::new(0x0000_0001u32, 0x7f80_0000); iterate("f32_random_equivalence_test", k, n, f, g, |_| { @@ -105,9 +100,6 @@ where F: FnMut(&Decoded, &mut [u8]) -> Option<(usize, i16)>, G: FnMut(&Decoded, &mut [u8]) -> (usize, i16), { - if cfg!(target_os = "emscripten") { - return; // using rng pulls in i128 support, which doesn't work - } let mut rng = StdRng::from_entropy(); let f64_range = Uniform::new(0x0000_0000_0000_0001u64, 0x7ff0_0000_0000_0000); iterate("f64_random_equivalence_test", k, n, f, g, |_| { diff --git a/src/libcore/tests/num/flt2dec/strategy/dragon.rs b/src/libcore/tests/num/flt2dec/strategy/dragon.rs index 3d985c6796b16..fc2e724a20c7c 100644 --- a/src/libcore/tests/num/flt2dec/strategy/dragon.rs +++ b/src/libcore/tests/num/flt2dec/strategy/dragon.rs @@ -13,7 +13,6 @@ fn test_mul_pow10() { } } -#[cfg_attr(all(target_arch = "wasm32", target_os = "emscripten"), ignore)] // issue 42630 #[test] fn shortest_sanity_test() { f64_shortest_sanity_test(format_shortest); diff --git a/src/libcore/tests/num/flt2dec/strategy/grisu.rs b/src/libcore/tests/num/flt2dec/strategy/grisu.rs index ff8373c64551b..8384420b340ed 100644 --- a/src/libcore/tests/num/flt2dec/strategy/grisu.rs +++ b/src/libcore/tests/num/flt2dec/strategy/grisu.rs @@ -32,7 +32,6 @@ fn test_max_pow10_no_more_than() { } } -#[cfg_attr(all(target_arch = "wasm32", target_os = "emscripten"), ignore)] // issue 42630 #[test] fn shortest_sanity_test() { f64_shortest_sanity_test(format_shortest); diff --git a/src/libcore/tests/slice.rs b/src/libcore/tests/slice.rs index cc274b4aecf54..778513d0d4ab8 100644 --- a/src/libcore/tests/slice.rs +++ b/src/libcore/tests/slice.rs @@ -1221,7 +1221,6 @@ fn brute_force_rotate_test_1() { } #[test] -#[cfg(not(target_arch = "wasm32"))] fn sort_unstable() { use core::cmp::Ordering::{Equal, Greater, Less}; use core::slice::heapsort; @@ -1301,7 +1300,6 @@ fn sort_unstable() { } #[test] -#[cfg(not(target_arch = "wasm32"))] #[cfg_attr(miri, ignore)] // Miri is too slow fn partition_at_index() { use core::cmp::Ordering::{Equal, Greater, Less}; diff --git a/src/librustc_codegen_ssa/back/linker.rs b/src/librustc_codegen_ssa/back/linker.rs index 11f5d3007e6b4..9702f20bd45ae 100644 --- a/src/librustc_codegen_ssa/back/linker.rs +++ b/src/librustc_codegen_ssa/back/linker.rs @@ -154,9 +154,10 @@ impl<'a> GccLinker<'a> { // platforms where currently this is guaranteed to *not* be the case: // // * On OSX they have their own linker, not binutils' - // * For WebAssembly the only functional linker is LLD, which doesn't + // * For WebAssembly/JS the only functional linker is LLD, which doesn't // support hint flags - !self.sess.target.target.options.is_like_osx && self.sess.target.target.arch != "wasm32" + !self.sess.target.target.options.is_like_osx && self.sess.target.target.arch != "wasm32" && + self.sess.target.target.arch != "asmjs" } // Some platforms take hints about whether a library is static or dynamic. @@ -866,7 +867,9 @@ impl<'a> Linker for EmLinker<'a> { self.cmd.arg(match self.sess.opts.debuginfo { DebugInfo::None => "-g0", DebugInfo::Limited => "-g3", - DebugInfo::Full => "-g4", + // FIXME: wasm2js errors with -g3 and above because it does not support source maps. + // See https://github.com/WebAssembly/binaryen/issues/2410 + DebugInfo::Full => if self.sess.target.target.arch == "asmjs" { "-g3" } else { "-g4" }, }); } diff --git a/src/librustc_codegen_ssa/back/write.rs b/src/librustc_codegen_ssa/back/write.rs index 4d09e23ee7f7a..9997d040456cb 100644 --- a/src/librustc_codegen_ssa/back/write.rs +++ b/src/librustc_codegen_ssa/back/write.rs @@ -86,8 +86,7 @@ pub struct ModuleConfig { pub merge_functions: bool, pub inline_threshold: Option, // Instead of creating an object file by doing LLVM codegen, just - // make the object file bitcode. Provides easy compatibility with - // emscripten's ecc compiler, when used as the linker. + // make the object file bitcode. pub obj_is_bitcode: bool, pub no_integrated_as: bool, pub embed_bitcode: bool, diff --git a/src/librustc_target/spec/asmjs_unknown_emscripten.rs b/src/librustc_target/spec/asmjs_unknown_emscripten.rs index d3dbc39c99d2b..5a268963b154f 100644 --- a/src/librustc_target/spec/asmjs_unknown_emscripten.rs +++ b/src/librustc_target/spec/asmjs_unknown_emscripten.rs @@ -8,5 +8,6 @@ pub fn target() -> Result { .entry(LinkerFlavor::Em) .or_default() .extend(vec!["-s".to_string(), "WASM=0".to_string()]); + target.arch = "asmjs".to_string(); Ok(target) } diff --git a/src/libstd/f64.rs b/src/libstd/f64.rs index 61ce7b29e26fc..b5c9ed0cba248 100644 --- a/src/libstd/f64.rs +++ b/src/libstd/f64.rs @@ -1054,7 +1054,6 @@ mod tests { assert_eq!(Fp::Zero, neg_zero.classify()); } - #[cfg_attr(all(target_arch = "wasm32", target_os = "emscripten"), ignore)] // issue 42630 #[test] fn test_one() { let one: f64 = 1.0f64; @@ -1107,7 +1106,6 @@ mod tests { assert!((-109.2f64).is_finite()); } - #[cfg_attr(all(target_arch = "wasm32", target_os = "emscripten"), ignore)] // issue 42630 #[test] fn test_is_normal() { let nan: f64 = NAN; @@ -1125,7 +1123,6 @@ mod tests { assert!(!1e-308f64.is_normal()); } - #[cfg_attr(all(target_arch = "wasm32", target_os = "emscripten"), ignore)] // issue 42630 #[test] fn test_classify() { let nan: f64 = NAN; diff --git a/src/libstd/io/mod.rs b/src/libstd/io/mod.rs index 95c8934b3d692..177827a7c4f6c 100644 --- a/src/libstd/io/mod.rs +++ b/src/libstd/io/mod.rs @@ -2416,7 +2416,7 @@ mod tests { use crate::ops::Deref; #[test] - #[cfg_attr(target_os = "emscripten", ignore)] + #[cfg_attr(all(target_arch = "wasm32", not(target_os = "emscripten")), ignore)] fn read_until() { let mut buf = Cursor::new(&b"12"[..]); let mut v = Vec::new(); diff --git a/src/libstd/net/tcp.rs b/src/libstd/net/tcp.rs index 5023d69240893..5ef6591fb99e9 100644 --- a/src/libstd/net/tcp.rs +++ b/src/libstd/net/tcp.rs @@ -758,7 +758,7 @@ impl TcpListener { pub fn accept(&self) -> io::Result<(TcpStream, SocketAddr)> { // On WASM, `TcpStream` is uninhabited (as it's unsupported) and so // the `a` variable here is technically unused. - #[cfg_attr(target_arch = "wasm32", allow(unused_variables))] + #[cfg_attr(any(target_arch = "wasm32", target_arch = "asmjs"), allow(unused_variables))] self.0.accept().map(|(a, b)| (TcpStream(a), b)) } diff --git a/src/libstd/sys/mod.rs b/src/libstd/sys/mod.rs index 875ff1af92013..01c3eb7cf7ed9 100644 --- a/src/libstd/sys/mod.rs +++ b/src/libstd/sys/mod.rs @@ -41,7 +41,7 @@ cfg_if::cfg_if! { } else if #[cfg(target_os = "wasi")] { mod wasi; pub use self::wasi::*; - } else if #[cfg(target_arch = "wasm32")] { + } else if #[cfg(any(target_arch = "wasm32", target_arch = "asmjs"))] { mod wasm; pub use self::wasm::*; } else if #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))] { @@ -64,7 +64,8 @@ cfg_if::cfg_if! { pub use self::ext as unix_ext; } else if #[cfg(any(target_os = "cloudabi", target_os = "hermit", - target_arch = "wasm32", + all(not(target_os = "emscripten"), + target_arch = "wasm32"), all(target_vendor = "fortanix", target_env = "sgx")))] { // On CloudABI and wasm right now the module below doesn't compile // (missing things in `libc` which is empty) so just omit everything @@ -88,7 +89,8 @@ cfg_if::cfg_if! { #[stable(feature = "rust1", since = "1.0.0")] pub use self::ext as windows_ext; } else if #[cfg(any(target_os = "cloudabi", - target_arch = "wasm32", + all(not(target_os = "emscripten"), + target_arch = "wasm32"), all(target_vendor = "fortanix", target_env = "sgx")))] { // On CloudABI and wasm right now the shim below doesn't compile, so // just omit it diff --git a/src/libstd/sys/unix/env.rs b/src/libstd/sys/unix/env.rs index 984bcfa45099b..c2e44051c7b30 100644 --- a/src/libstd/sys/unix/env.rs +++ b/src/libstd/sys/unix/env.rs @@ -108,18 +108,7 @@ pub mod os { pub const EXE_EXTENSION: &str = ""; } -#[cfg(all(target_os = "emscripten", target_arch = "asmjs"))] -pub mod os { - pub const FAMILY: &str = "unix"; - pub const OS: &str = "emscripten"; - pub const DLL_PREFIX: &str = "lib"; - pub const DLL_SUFFIX: &str = ".so"; - pub const DLL_EXTENSION: &str = "so"; - pub const EXE_SUFFIX: &str = ".js"; - pub const EXE_EXTENSION: &str = "js"; -} - -#[cfg(all(target_os = "emscripten", target_arch = "wasm32"))] +#[cfg(target_os = "emscripten")] pub mod os { pub const FAMILY: &str = "unix"; pub const OS: &str = "emscripten"; diff --git a/src/libstd/sys_common/mod.rs b/src/libstd/sys_common/mod.rs index e03e0fc83454b..da9a0fc8b8153 100644 --- a/src/libstd/sys_common/mod.rs +++ b/src/libstd/sys_common/mod.rs @@ -57,6 +57,7 @@ pub mod mutex; target_os = "cloudabi", target_os = "hermit", target_arch = "wasm32", + target_arch = "asmjs", all(target_vendor = "fortanix", target_env = "sgx")))] pub mod os_str_bytes; pub mod poison; diff --git a/src/libstd/thread/local.rs b/src/libstd/thread/local.rs index 1dd942e252f6b..22cbaf38604bb 100644 --- a/src/libstd/thread/local.rs +++ b/src/libstd/thread/local.rs @@ -153,21 +153,21 @@ macro_rules! __thread_local_inner { fn __init() -> $t { $init } unsafe fn __getit() -> $crate::option::Option<&'static $t> { - #[cfg(all(target_arch = "wasm32", not(target_feature = "atomics")))] + #[cfg(all(any(target_arch = "wasm32", target_arch = "asmjs"), not(target_feature = "atomics")))] static __KEY: $crate::thread::__StaticLocalKeyInner<$t> = $crate::thread::__StaticLocalKeyInner::new(); #[thread_local] #[cfg(all( target_thread_local, - not(all(target_arch = "wasm32", not(target_feature = "atomics"))), + not(all(any(target_arch = "wasm32", target_arch = "asmjs"), not(target_feature = "atomics"))), ))] static __KEY: $crate::thread::__FastLocalKeyInner<$t> = $crate::thread::__FastLocalKeyInner::new(); #[cfg(all( not(target_thread_local), - not(all(target_arch = "wasm32", not(target_feature = "atomics"))), + not(all(any(target_arch = "wasm32", target_arch = "asmjs"), not(target_feature = "atomics"))), ))] static __KEY: $crate::thread::__OsLocalKeyInner<$t> = $crate::thread::__OsLocalKeyInner::new(); @@ -323,7 +323,7 @@ mod lazy { /// On some platforms like wasm32 there's no threads, so no need to generate /// thread locals and we can instead just use plain statics! #[doc(hidden)] -#[cfg(all(target_arch = "wasm32", not(target_feature = "atomics")))] +#[cfg(all(any(target_arch = "wasm32", target_arch = "asmjs"), not(target_feature = "atomics")))] pub mod statik { use super::lazy::LazyKeyInner; use crate::fmt; diff --git a/src/libstd/thread/mod.rs b/src/libstd/thread/mod.rs index 0dc43c7e6510a..25f2ab977517b 100644 --- a/src/libstd/thread/mod.rs +++ b/src/libstd/thread/mod.rs @@ -203,7 +203,7 @@ pub use self::local::fast::Key as __FastLocalKeyInner; #[doc(hidden)] pub use self::local::os::Key as __OsLocalKeyInner; #[unstable(feature = "libstd_thread_internals", issue = "none")] -#[cfg(all(target_arch = "wasm32", not(target_feature = "atomics")))] +#[cfg(all(any(target_arch = "wasm32", target_arch = "asmjs"), not(target_feature = "atomics")))] #[doc(hidden)] pub use self::local::statik::Key as __StaticLocalKeyInner; diff --git a/src/libtest/tests.rs b/src/libtest/tests.rs index 85a0705f69c0a..732c4bf707564 100644 --- a/src/libtest/tests.rs +++ b/src/libtest/tests.rs @@ -27,7 +27,6 @@ use crate::{ }, time::{TestTimeOptions, TimeThreshold}, }; -use std::any::TypeId; use std::sync::mpsc::channel; use std::time::Duration; @@ -119,9 +118,7 @@ pub fn ignored_tests_result_in_ignored() { assert_eq!(result, TrIgnored); } -// FIXME: Re-enable emscripten once it can catch panics again (introduced by #65251) #[test] -#[cfg(not(target_os = "emscripten"))] fn test_should_panic() { fn f() { panic!(); @@ -142,9 +139,7 @@ fn test_should_panic() { assert_eq!(result, TrOk); } -// FIXME: Re-enable emscripten once it can catch panics again (introduced by #65251) #[test] -#[cfg(not(target_os = "emscripten"))] fn test_should_panic_good_message() { fn f() { panic!("an error message"); @@ -165,9 +160,7 @@ fn test_should_panic_good_message() { assert_eq!(result, TrOk); } -// FIXME: Re-enable emscripten once it can catch panics again (introduced by #65251) #[test] -#[cfg(not(target_os = "emscripten"))] fn test_should_panic_bad_message() { use crate::tests::TrFailedMsg; fn f() { @@ -193,10 +186,9 @@ fn test_should_panic_bad_message() { assert_eq!(result, TrFailedMsg(failed_msg.to_string())); } -// FIXME: Re-enable emscripten once it can catch panics again (introduced by #65251) #[test] -#[cfg(not(target_os = "emscripten"))] fn test_should_panic_non_string_message_type() { + use std::any::TypeId; use crate::tests::TrFailedMsg; fn f() { panic!(1i32); @@ -224,9 +216,7 @@ fn test_should_panic_non_string_message_type() { assert_eq!(result, TrFailedMsg(failed_msg)); } -// FIXME: Re-enable emscripten once it can catch panics again (introduced by #65251) #[test] -#[cfg(not(target_os = "emscripten"))] fn test_should_panic_but_succeeds() { fn f() {} let desc = TestDescAndFn { diff --git a/src/test/codegen/abi-efiapi.rs b/src/test/codegen/abi-efiapi.rs index 8aeee5859d0ad..682cddc6eb14a 100644 --- a/src/test/codegen/abi-efiapi.rs +++ b/src/test/codegen/abi-efiapi.rs @@ -1,3 +1,6 @@ +// FIXME: debugging only, do not land +// ignore-emscripten + // Checks if the correct annotation for the efiapi ABI is passed to llvm. // revisions:x86_64 i686 arm diff --git a/src/test/incremental/commandline-args.rs b/src/test/incremental/commandline-args.rs index 08a0232f661f7..e5b84267b2903 100644 --- a/src/test/incremental/commandline-args.rs +++ b/src/test/incremental/commandline-args.rs @@ -1,7 +1,6 @@ // Test that changing a tracked commandline argument invalidates // the cache while changing an untracked one doesn't. -// ignore-asmjs wasm2js does not support source maps yet // revisions:rpass1 rpass2 rpass3 // compile-flags: -Z query-dep-graph diff --git a/src/test/incremental/remapped_paths_cc/main.rs b/src/test/incremental/remapped_paths_cc/main.rs index b01f02444eae8..12411a928799f 100644 --- a/src/test/incremental/remapped_paths_cc/main.rs +++ b/src/test/incremental/remapped_paths_cc/main.rs @@ -2,7 +2,6 @@ // compile-flags: -Z query-dep-graph -g // aux-build:extern_crate.rs -// ignore-asmjs wasm2js does not support source maps yet // This test case makes sure that we detect if paths emitted into debuginfo // are changed, even when the change happens in an external crate. diff --git a/src/test/incremental/span_hash_stable/main.rs b/src/test/incremental/span_hash_stable/main.rs index 367416430f86b..f1d7de1455938 100644 --- a/src/test/incremental/span_hash_stable/main.rs +++ b/src/test/incremental/span_hash_stable/main.rs @@ -3,7 +3,6 @@ // the spans and this test makes sure that we handle them correctly by hashing // file:line:column instead of raw byte offset. -// ignore-asmjs wasm2js does not support source maps yet // revisions:rpass1 rpass2 // compile-flags: -g -Z query-dep-graph diff --git a/src/test/incremental/spans_in_type_debuginfo.rs b/src/test/incremental/spans_in_type_debuginfo.rs index f5cae15a4bc7c..8ed469db6e633 100644 --- a/src/test/incremental/spans_in_type_debuginfo.rs +++ b/src/test/incremental/spans_in_type_debuginfo.rs @@ -1,7 +1,6 @@ // Test that moving a type definition within a source file does not affect // re-compilation. -// ignore-asmjs wasm2js does not support source maps yet // revisions:rpass1 rpass2 // compile-flags: -Z query-dep-graph -g diff --git a/src/test/incremental/spans_significant_w_debuginfo.rs b/src/test/incremental/spans_significant_w_debuginfo.rs index e6fdc7cb3a0fc..87c97ba06c46a 100644 --- a/src/test/incremental/spans_significant_w_debuginfo.rs +++ b/src/test/incremental/spans_significant_w_debuginfo.rs @@ -3,7 +3,6 @@ // revisions:rpass1 rpass2 -// ignore-asmjs wasm2js does not support source maps yet // compile-flags: -g -Z query-dep-graph #![feature(rustc_attrs)] diff --git a/src/test/ui/abi/extern/extern-pass-empty.rs b/src/test/ui/abi/extern/extern-pass-empty.rs index 07099a2420483..67baf8d4886f2 100644 --- a/src/test/ui/abi/extern/extern-pass-empty.rs +++ b/src/test/ui/abi/extern/extern-pass-empty.rs @@ -5,7 +5,6 @@ // pretty-expanded FIXME #23616 // ignore-msvc -// ignore-emscripten emcc asserts on an empty struct as an argument #[repr(C)] struct TwoU8s { diff --git a/src/test/ui/asm-concat-src.rs b/src/test/ui/asm-concat-src.rs index c4160bfeca105..c2c03162c9d14 100644 --- a/src/test/ui/asm-concat-src.rs +++ b/src/test/ui/asm-concat-src.rs @@ -1,6 +1,5 @@ // run-pass // pretty-expanded FIXME #23616 -// ignore-emscripten no asm #![feature(asm)] diff --git a/src/test/ui/asm/issue-51431.rs b/src/test/ui/asm/issue-51431.rs index 4cef42d17d600..9ff49d0f64b88 100644 --- a/src/test/ui/asm/issue-51431.rs +++ b/src/test/ui/asm/issue-51431.rs @@ -1,5 +1,4 @@ // build-fail -// ignore-emscripten no asm! support #![feature(asm)] diff --git a/src/test/ui/asm/issue-51431.stderr b/src/test/ui/asm/issue-51431.stderr index a024f3311f186..f78d1831973b6 100644 --- a/src/test/ui/asm/issue-51431.stderr +++ b/src/test/ui/asm/issue-51431.stderr @@ -1,5 +1,5 @@ error[E0669]: invalid value for constraint in inline assembly - --> $DIR/issue-51431.rs:8:32 + --> $DIR/issue-51431.rs:7:32 | LL | asm! {"mov $0,$1"::"0"("bx"),"1"(0x00)} | ^^^^ diff --git a/src/test/ui/async-await/issue-60709.rs b/src/test/ui/async-await/issue-60709.rs index 61f6ed1b7b2ce..9ee419c4a56fb 100644 --- a/src/test/ui/async-await/issue-60709.rs +++ b/src/test/ui/async-await/issue-60709.rs @@ -3,7 +3,6 @@ // compile-flags: -Copt-level=z -Cdebuginfo=2 --edition=2018 // run-pass -// ignore-asmjs wasm2js does not support source maps yet use std::future::Future; use std::task::Poll; diff --git a/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-completion.rs b/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-completion.rs index ade386a605dca..1e57b4eed706a 100644 --- a/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-completion.rs +++ b/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-completion.rs @@ -4,8 +4,7 @@ // run-fail // error-pattern: thread 'main' panicked at '`async fn` resumed after completion' // edition:2018 -// ignore-wasm no panic or subprocess support -// ignore-emscripten no panic or subprocess support +// ignore-wasm32-bare no panic or subprocess support #![feature(generators, generator_trait)] diff --git a/src/test/ui/binding/match-arm-statics.rs b/src/test/ui/binding/match-arm-statics.rs index e6d17def1477e..5f7e357eeb2a9 100644 --- a/src/test/ui/binding/match-arm-statics.rs +++ b/src/test/ui/binding/match-arm-statics.rs @@ -1,7 +1,6 @@ // run-pass #![allow(dead_code)] // compile-flags: -g -// ignore-asmjs wasm2js does not support source maps yet #[derive(PartialEq, Eq)] struct NewBool(bool); diff --git a/src/test/ui/consts/const-endianess.rs b/src/test/ui/consts/const-endianess.rs index 936f31954d3dd..6f92ffa8ee8eb 100644 --- a/src/test/ui/consts/const-endianess.rs +++ b/src/test/ui/consts/const-endianess.rs @@ -10,12 +10,8 @@ const LE_U32: u32 = 55u32.to_le(); fn main() { assert_eq!(BE_U32, b(55u32).to_be()); assert_eq!(LE_U32, b(55u32).to_le()); - - #[cfg(not(target_os = "emscripten"))] - { - const BE_U128: u128 = 999999u128.to_be(); - const LE_I128: i128 = (-999999i128).to_le(); - assert_eq!(BE_U128, b(999999u128).to_be()); - assert_eq!(LE_I128, b(-999999i128).to_le()); - } + const BE_U128: u128 = 999999u128.to_be(); + const LE_I128: i128 = (-999999i128).to_le(); + assert_eq!(BE_U128, b(999999u128).to_be()); + assert_eq!(LE_I128, b(-999999i128).to_le()); } diff --git a/src/test/ui/debuginfo-lto.rs b/src/test/ui/debuginfo-lto.rs index 43f75b0344be7..e4beee9e737ba 100644 --- a/src/test/ui/debuginfo-lto.rs +++ b/src/test/ui/debuginfo-lto.rs @@ -7,7 +7,6 @@ // aux-build:debuginfo-lto-aux.rs // compile-flags: -C lto -g // no-prefer-dynamic -// ignore-asmjs wasm2js does not support source maps yet extern crate debuginfo_lto_aux; diff --git a/src/test/ui/env-home-dir.rs b/src/test/ui/env-home-dir.rs index a75be48fd5532..5b4094a64da21 100644 --- a/src/test/ui/env-home-dir.rs +++ b/src/test/ui/env-home-dir.rs @@ -3,7 +3,7 @@ #![allow(unused_variables)] #![allow(deprecated)] // ignore-cloudabi no environment variables present -// ignore-emscripten env vars don't work? +// ignore-emscripten issue #31622 // ignore-sgx env vars cannot be modified use std::env::*; diff --git a/src/test/ui/error-codes/E0661.rs b/src/test/ui/error-codes/E0661.rs index 5ac0c415ae1b2..8516186215a66 100644 --- a/src/test/ui/error-codes/E0661.rs +++ b/src/test/ui/error-codes/E0661.rs @@ -1,5 +1,3 @@ -// ignore-emscripten - #![feature(asm)] fn main() { diff --git a/src/test/ui/error-codes/E0661.stderr b/src/test/ui/error-codes/E0661.stderr index 6e849649aca2a..f965d1397ad31 100644 --- a/src/test/ui/error-codes/E0661.stderr +++ b/src/test/ui/error-codes/E0661.stderr @@ -1,11 +1,11 @@ error[E0661]: output operand constraint lacks '=' or '+' - --> $DIR/E0661.rs:7:18 + --> $DIR/E0661.rs:5:18 | LL | asm!("nop" : "r"(a)); | ^^^ error[E0282]: type annotations needed - --> $DIR/E0661.rs:6:9 + --> $DIR/E0661.rs:4:9 | LL | let a; | ^ consider giving `a` a type diff --git a/src/test/ui/error-codes/E0662.rs b/src/test/ui/error-codes/E0662.rs index 343ed27f83f7e..7fe528c474599 100644 --- a/src/test/ui/error-codes/E0662.rs +++ b/src/test/ui/error-codes/E0662.rs @@ -1,5 +1,3 @@ -// ignore-emscripten - #![feature(asm)] fn main() { diff --git a/src/test/ui/error-codes/E0662.stderr b/src/test/ui/error-codes/E0662.stderr index 7480f03c3d4c3..5dea744998d8a 100644 --- a/src/test/ui/error-codes/E0662.stderr +++ b/src/test/ui/error-codes/E0662.stderr @@ -1,5 +1,5 @@ error[E0662]: input operand constraint contains '=' - --> $DIR/E0662.rs:8:12 + --> $DIR/E0662.rs:6:12 | LL | : "=test"("a") | ^^^^^^^ diff --git a/src/test/ui/error-codes/E0663.rs b/src/test/ui/error-codes/E0663.rs index cfbb4b37758ce..e5b8156cfb32a 100644 --- a/src/test/ui/error-codes/E0663.rs +++ b/src/test/ui/error-codes/E0663.rs @@ -1,5 +1,3 @@ -// ignore-emscripten - #![feature(asm)] fn main() { diff --git a/src/test/ui/error-codes/E0663.stderr b/src/test/ui/error-codes/E0663.stderr index 2b7598d1577a6..01bf89ec79af9 100644 --- a/src/test/ui/error-codes/E0663.stderr +++ b/src/test/ui/error-codes/E0663.stderr @@ -1,5 +1,5 @@ error[E0663]: input operand constraint contains '+' - --> $DIR/E0663.rs:8:12 + --> $DIR/E0663.rs:6:12 | LL | : "+test"("a") | ^^^^^^^ diff --git a/src/test/ui/error-codes/E0664.rs b/src/test/ui/error-codes/E0664.rs index fe70c9f96e06d..29ec7ced4fd6e 100644 --- a/src/test/ui/error-codes/E0664.rs +++ b/src/test/ui/error-codes/E0664.rs @@ -1,5 +1,3 @@ -// ignore-emscripten - #![feature(asm)] fn main() { diff --git a/src/test/ui/error-codes/E0664.stderr b/src/test/ui/error-codes/E0664.stderr index 224fc63696a99..9c9f65ee6a96d 100644 --- a/src/test/ui/error-codes/E0664.stderr +++ b/src/test/ui/error-codes/E0664.stderr @@ -1,5 +1,5 @@ error[E0664]: clobber should not be surrounded by braces - --> $DIR/E0664.rs:9:12 + --> $DIR/E0664.rs:7:12 | LL | : "{eax}" | ^^^^^^^ diff --git a/src/test/ui/extern/extern-const.fixed b/src/test/ui/extern/extern-const.fixed index 9d96b4f63fb6c..248efc93d008a 100644 --- a/src/test/ui/extern/extern-const.fixed +++ b/src/test/ui/extern/extern-const.fixed @@ -6,7 +6,6 @@ // run-rustfix // ignore-wasm32-bare no external library to link to. -// ignore-asmjs wasm2js does not support source maps yet // compile-flags: -g #![feature(rustc_private)] extern crate libc; diff --git a/src/test/ui/extern/extern-const.rs b/src/test/ui/extern/extern-const.rs index 7cef5b3497b5a..d3b3bef6dae6f 100644 --- a/src/test/ui/extern/extern-const.rs +++ b/src/test/ui/extern/extern-const.rs @@ -6,7 +6,6 @@ // run-rustfix // ignore-wasm32-bare no external library to link to. -// ignore-asmjs wasm2js does not support source maps yet // compile-flags: -g #![feature(rustc_private)] extern crate libc; diff --git a/src/test/ui/extern/extern-const.stderr b/src/test/ui/extern/extern-const.stderr index 258202b6903d3..77406be2095cf 100644 --- a/src/test/ui/extern/extern-const.stderr +++ b/src/test/ui/extern/extern-const.stderr @@ -1,5 +1,5 @@ error: extern items cannot be `const` - --> $DIR/extern-const.rs:16:5 + --> $DIR/extern-const.rs:15:5 | LL | const rust_dbg_static_mut: libc::c_int; | ^^^^^ help: try using a static value: `static` diff --git a/src/test/ui/feature-gates/feature-gate-asm.rs b/src/test/ui/feature-gates/feature-gate-asm.rs index 1fce279c9ef3d..572d9f26cae7e 100644 --- a/src/test/ui/feature-gates/feature-gate-asm.rs +++ b/src/test/ui/feature-gates/feature-gate-asm.rs @@ -1,5 +1,3 @@ -// ignore-emscripten - fn main() { unsafe { asm!(""); //~ ERROR inline assembly is not stable enough diff --git a/src/test/ui/feature-gates/feature-gate-asm.stderr b/src/test/ui/feature-gates/feature-gate-asm.stderr index bfa4c87bed53a..ab5cda43bfc82 100644 --- a/src/test/ui/feature-gates/feature-gate-asm.stderr +++ b/src/test/ui/feature-gates/feature-gate-asm.stderr @@ -1,5 +1,5 @@ error[E0658]: use of unstable library feature 'asm': inline assembly is not stable enough for use and is subject to change - --> $DIR/feature-gate-asm.rs:5:9 + --> $DIR/feature-gate-asm.rs:3:9 | LL | asm!(""); | ^^^ diff --git a/src/test/ui/feature-gates/feature-gate-asm2.rs b/src/test/ui/feature-gates/feature-gate-asm2.rs index 4f56aa7234464..d93dda114fc0c 100644 --- a/src/test/ui/feature-gates/feature-gate-asm2.rs +++ b/src/test/ui/feature-gates/feature-gate-asm2.rs @@ -1,5 +1,3 @@ -// ignore-emscripten - fn main() { unsafe { println!("{:?}", asm!("")); //~ ERROR inline assembly is not stable diff --git a/src/test/ui/feature-gates/feature-gate-asm2.stderr b/src/test/ui/feature-gates/feature-gate-asm2.stderr index 7519cad9a96ad..c48f0bb5ffb84 100644 --- a/src/test/ui/feature-gates/feature-gate-asm2.stderr +++ b/src/test/ui/feature-gates/feature-gate-asm2.stderr @@ -1,5 +1,5 @@ error[E0658]: use of unstable library feature 'asm': inline assembly is not stable enough for use and is subject to change - --> $DIR/feature-gate-asm2.rs:5:26 + --> $DIR/feature-gate-asm2.rs:3:26 | LL | println!("{:?}", asm!("")); | ^^^ diff --git a/src/test/ui/generator/issue-58888.rs b/src/test/ui/generator/issue-58888.rs index d42d09d401e87..43b37a9afc2cc 100644 --- a/src/test/ui/generator/issue-58888.rs +++ b/src/test/ui/generator/issue-58888.rs @@ -1,6 +1,5 @@ // run-pass // compile-flags: -g -// ignore-asmjs wasm2js does not support source maps yet #![feature(generators, generator_trait)] diff --git a/src/test/ui/inherit-env.rs b/src/test/ui/inherit-env.rs index e29fa04bbd50b..d1632dbefca8e 100644 --- a/src/test/ui/inherit-env.rs +++ b/src/test/ui/inherit-env.rs @@ -1,6 +1,5 @@ // run-pass -// ignore-emscripten -// ignore-wasm32 +// ignore-emscripten no processes // ignore-sgx no processes use std::env; diff --git a/src/test/ui/inline-asm-bad-constraint.rs b/src/test/ui/inline-asm-bad-constraint.rs index 04fd5760cf8ce..5116cb5430224 100644 --- a/src/test/ui/inline-asm-bad-constraint.rs +++ b/src/test/ui/inline-asm-bad-constraint.rs @@ -1,7 +1,6 @@ // Test that the compiler will catch invalid inline assembly constraints. // build-fail -// ignore-emscripten #![feature(asm)] diff --git a/src/test/ui/inline-asm-bad-constraint.stderr b/src/test/ui/inline-asm-bad-constraint.stderr index f38bfb2af1d91..59066e5e7fc7c 100644 --- a/src/test/ui/inline-asm-bad-constraint.stderr +++ b/src/test/ui/inline-asm-bad-constraint.stderr @@ -1,17 +1,17 @@ error[E0668]: malformed inline assembly - --> $DIR/inline-asm-bad-constraint.rs:22:9 + --> $DIR/inline-asm-bad-constraint.rs:21:9 | LL | asm!("" :"={rax"(rax)) | ^^^^^^^^^^^^^^^^^^^^^^ error[E0668]: malformed inline assembly - --> $DIR/inline-asm-bad-constraint.rs:30:9 + --> $DIR/inline-asm-bad-constraint.rs:29:9 | LL | asm!("callq $0" : : "0"(foo)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0668]: malformed inline assembly - --> $DIR/inline-asm-bad-constraint.rs:37:9 + --> $DIR/inline-asm-bad-constraint.rs:36:9 | LL | asm!("addb $1, $0" : "={rax}"((0i32, rax))); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/inline-asm-bad-operand.rs b/src/test/ui/inline-asm-bad-operand.rs index f4e9922164f03..f4edcc7634f06 100644 --- a/src/test/ui/inline-asm-bad-operand.rs +++ b/src/test/ui/inline-asm-bad-operand.rs @@ -2,7 +2,6 @@ // operands. // build-fail -// ignore-emscripten #![feature(asm)] diff --git a/src/test/ui/inline-asm-bad-operand.stderr b/src/test/ui/inline-asm-bad-operand.stderr index fe6c6c9914199..b8e7e9acfecae 100644 --- a/src/test/ui/inline-asm-bad-operand.stderr +++ b/src/test/ui/inline-asm-bad-operand.stderr @@ -1,41 +1,41 @@ error[E0669]: invalid value for constraint in inline assembly - --> $DIR/inline-asm-bad-operand.rs:22:24 + --> $DIR/inline-asm-bad-operand.rs:21:24 | LL | asm!("" :: "r"("")); | ^^ error[E0669]: invalid value for constraint in inline assembly - --> $DIR/inline-asm-bad-operand.rs:27:32 + --> $DIR/inline-asm-bad-operand.rs:26:32 | LL | asm!("ret" : : "{rdi}"(target)); | ^^^^^^ error[E0669]: invalid value for constraint in inline assembly - --> $DIR/inline-asm-bad-operand.rs:34:29 + --> $DIR/inline-asm-bad-operand.rs:33:29 | LL | unsafe { asm!("" :: "i"(hello)) }; | ^^^^^ error[E0669]: invalid value for constraint in inline assembly - --> $DIR/inline-asm-bad-operand.rs:42:38 + --> $DIR/inline-asm-bad-operand.rs:41:38 | LL | asm!("movups $1, %xmm0"::"m"(arr)); | ^^^ error[E0669]: invalid value for constraint in inline assembly - --> $DIR/inline-asm-bad-operand.rs:49:32 + --> $DIR/inline-asm-bad-operand.rs:48:32 | LL | asm!("mov sp, $0"::"r"(addr)); | ^^^^ error[E0669]: invalid value for constraint in inline assembly - --> $DIR/inline-asm-bad-operand.rs:56:32 + --> $DIR/inline-asm-bad-operand.rs:55:32 | LL | asm!("mov sp, $0"::"r"(addr), | ^^^^ error[E0669]: invalid value for constraint in inline assembly - --> $DIR/inline-asm-bad-operand.rs:57:32 + --> $DIR/inline-asm-bad-operand.rs:56:32 | LL | ... "r"("hello e0669")); | ^^^^^^^^^^^^^ diff --git a/src/test/ui/issues/issue-18804/main.rs b/src/test/ui/issues/issue-18804/main.rs index c36048ea54503..d150d947656d8 100644 --- a/src/test/ui/issues/issue-18804/main.rs +++ b/src/test/ui/issues/issue-18804/main.rs @@ -2,8 +2,6 @@ // Test for issue #18804, #[linkage] does not propagate through generic // functions. Failure results in a linker error. -// ignore-asmjs no weak symbol support -// ignore-emscripten no weak symbol support // ignore-windows no extern_weak linkage // ignore-macos no extern_weak linkage diff --git a/src/test/ui/issues/issue-23477.rs b/src/test/ui/issues/issue-23477.rs index 988ebe03ccf66..1ce05ba390d76 100644 --- a/src/test/ui/issues/issue-23477.rs +++ b/src/test/ui/issues/issue-23477.rs @@ -1,5 +1,4 @@ // build-pass -// ignore-asmjs wasm2js does not support source maps yet // compile-flags: -g pub struct Dst { diff --git a/src/test/ui/issues/issue-24687-embed-debuginfo/main.rs b/src/test/ui/issues/issue-24687-embed-debuginfo/main.rs index f08bcdfe6d16c..773792c7a3f1f 100644 --- a/src/test/ui/issues/issue-24687-embed-debuginfo/main.rs +++ b/src/test/ui/issues/issue-24687-embed-debuginfo/main.rs @@ -1,7 +1,6 @@ // run-pass // aux-build:issue-24687-lib.rs // compile-flags:-g -// ignore-asmjs wasm2js does not support source maps yet extern crate issue_24687_lib as d; diff --git a/src/test/ui/issues/issue-24945-repeat-dash-opts.rs b/src/test/ui/issues/issue-24945-repeat-dash-opts.rs index 0f92fc2f7f31a..cf3834952c6a6 100644 --- a/src/test/ui/issues/issue-24945-repeat-dash-opts.rs +++ b/src/test/ui/issues/issue-24945-repeat-dash-opts.rs @@ -3,7 +3,6 @@ // as options to the compiler. // compile-flags:-g -g -O -O -// ignore-asmjs wasm2js does not support source maps yet fn main() { assert_eq!(1, 1); diff --git a/src/test/ui/issues/issue-26484.rs b/src/test/ui/issues/issue-26484.rs index 2a8750d3e431f..3b40b3dd8f075 100644 --- a/src/test/ui/issues/issue-26484.rs +++ b/src/test/ui/issues/issue-26484.rs @@ -1,6 +1,5 @@ // run-pass // compile-flags:-g -// ignore-asmjs wasm2js does not support source maps yet fn helper bool>(_f: F) { print!(""); diff --git a/src/test/ui/issues/issue-32947.rs b/src/test/ui/issues/issue-32947.rs index b07def21e88be..1ea042c012a06 100644 --- a/src/test/ui/issues/issue-32947.rs +++ b/src/test/ui/issues/issue-32947.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-emscripten FIXME(#45351) #![feature(repr_simd, test)] diff --git a/src/test/ui/issues/issue-33096.rs b/src/test/ui/issues/issue-33096.rs index 2501e1430b3d1..f0b472e2fe821 100644 --- a/src/test/ui/issues/issue-33096.rs +++ b/src/test/ui/issues/issue-33096.rs @@ -1,6 +1,5 @@ // run-pass // compile-flags: -g -// ignore-asmjs wasm2js does not support source maps yet use std::ops::Deref; diff --git a/src/test/ui/issues/issue-34569.rs b/src/test/ui/issues/issue-34569.rs index 88dcdd4113807..1f68560509e8c 100644 --- a/src/test/ui/issues/issue-34569.rs +++ b/src/test/ui/issues/issue-34569.rs @@ -1,6 +1,5 @@ // run-pass // compile-flags:-g -// ignore-asmjs wasm2js does not support source maps yet // In this test we just want to make sure that the code below does not lead to // a debuginfo verification assertion during compilation. This was caused by the diff --git a/src/test/ui/issues/issue-36856.rs b/src/test/ui/issues/issue-36856.rs index 5657ba69f9449..f2dfaf3dd367e 100644 --- a/src/test/ui/issues/issue-36856.rs +++ b/src/test/ui/issues/issue-36856.rs @@ -2,7 +2,6 @@ // Regression test for #36856. // compile-flags:-g -// ignore-asmjs wasm2js does not support source maps yet fn g() -> bool { false diff --git a/src/test/ui/issues/issue-37131.rs b/src/test/ui/issues/issue-37131.rs index aa3b6ea86bbe0..74a31dd400e65 100644 --- a/src/test/ui/issues/issue-37131.rs +++ b/src/test/ui/issues/issue-37131.rs @@ -4,5 +4,7 @@ // compile-flags: --target=thumbv6m-none-eabi // ignore-arm +// ignore-emscripten FIXME: debugging only, do not land + // error-pattern:target may not be installed fn main() { } diff --git a/src/test/ui/issues/issue-37366.rs b/src/test/ui/issues/issue-37366.rs index 6bf3a276ce138..fd278cd6ec565 100644 --- a/src/test/ui/issues/issue-37366.rs +++ b/src/test/ui/issues/issue-37366.rs @@ -1,5 +1,4 @@ // check-pass -// ignore-emscripten #![feature(asm)] diff --git a/src/test/ui/issues/issue-37433.rs b/src/test/ui/issues/issue-37433.rs index c4d427f3ad3af..dc85525e7a294 100644 --- a/src/test/ui/issues/issue-37433.rs +++ b/src/test/ui/issues/issue-37433.rs @@ -1,5 +1,4 @@ // build-fail -// ignore-emscripten no asm! support #![feature(asm)] diff --git a/src/test/ui/issues/issue-37433.stderr b/src/test/ui/issues/issue-37433.stderr index d9e1c98e9ee41..956694fc2cd7e 100644 --- a/src/test/ui/issues/issue-37433.stderr +++ b/src/test/ui/issues/issue-37433.stderr @@ -1,5 +1,5 @@ error[E0669]: invalid value for constraint in inline assembly - --> $DIR/issue-37433.rs:8:24 + --> $DIR/issue-37433.rs:7:24 | LL | asm!("" :: "r"("")); | ^^ diff --git a/src/test/ui/issues/issue-38074.rs b/src/test/ui/issues/issue-38074.rs index 214d6752cef1d..31ecab976e2a5 100644 --- a/src/test/ui/issues/issue-38074.rs +++ b/src/test/ui/issues/issue-38074.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-emscripten FIXME(#45351) #![feature(platform_intrinsics, repr_simd)] diff --git a/src/test/ui/issues/issue-38763.rs b/src/test/ui/issues/issue-38763.rs index 6e6de09225f57..a69f1072e6995 100644 --- a/src/test/ui/issues/issue-38763.rs +++ b/src/test/ui/issues/issue-38763.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-emscripten #[repr(C)] pub struct Foo(i128); diff --git a/src/test/ui/issues/issue-39175.rs b/src/test/ui/issues/issue-39175.rs index 3ba2a9d40bec4..3262fa2f7adcb 100644 --- a/src/test/ui/issues/issue-39175.rs +++ b/src/test/ui/issues/issue-39175.rs @@ -5,7 +5,7 @@ // ignore-windows // ignore-cloudabi -// ignore-emscripten +// ignore-emscripten no processes // ignore-sgx no processes use std::process::Command; diff --git a/src/test/ui/issues/issue-39720.rs b/src/test/ui/issues/issue-39720.rs index 8cf841f937121..3a0343eb462b9 100644 --- a/src/test/ui/issues/issue-39720.rs +++ b/src/test/ui/issues/issue-39720.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-emscripten FIXME(#45351) #![feature(repr_simd, platform_intrinsics)] diff --git a/src/test/ui/issues/issue-42210.rs b/src/test/ui/issues/issue-42210.rs index 01a5d563639b5..318e3099f98ba 100644 --- a/src/test/ui/issues/issue-42210.rs +++ b/src/test/ui/issues/issue-42210.rs @@ -2,7 +2,6 @@ // Regression test for #42210. // compile-flags: -g -// ignore-asmjs wasm2js does not support source maps yet trait Foo { fn foo() { } diff --git a/src/test/ui/issues/issue-45731.rs b/src/test/ui/issues/issue-45731.rs index 5c5ac59873a3a..d20c07276a8c5 100644 --- a/src/test/ui/issues/issue-45731.rs +++ b/src/test/ui/issues/issue-45731.rs @@ -1,7 +1,6 @@ // run-pass #![allow(unused_variables)] // compile-flags:--test -g -// ignore-asmjs wasm2js does not support source maps yet #[cfg(target_os = "macos")] #[test] diff --git a/src/test/ui/issues/issue-48508.rs b/src/test/ui/issues/issue-48508.rs index 87965c204ada7..60911bc52760a 100644 --- a/src/test/ui/issues/issue-48508.rs +++ b/src/test/ui/issues/issue-48508.rs @@ -8,7 +8,6 @@ // compile-flags:-g // ignore-pretty issue #37195 -// ignore-asmjs wasm2js does not support source maps yet #![feature(non_ascii_idents)] #[allow(uncommon_codepoints)] diff --git a/src/test/ui/issues/issue-49851/compiler-builtins-error.rs b/src/test/ui/issues/issue-49851/compiler-builtins-error.rs index 3484ff3b87432..ddd5a08a16433 100644 --- a/src/test/ui/issues/issue-49851/compiler-builtins-error.rs +++ b/src/test/ui/issues/issue-49851/compiler-builtins-error.rs @@ -2,6 +2,8 @@ // http://rust-lang.org/COPYRIGHT. // +// ignore-emscripten FIXME: debugging only, do not land + // compile-flags: --target thumbv7em-none-eabihf #![deny(unsafe_code)] #![deny(warnings)] diff --git a/src/test/ui/issues/issue-50993.rs b/src/test/ui/issues/issue-50993.rs index d38eb82667812..1b9a30f43a999 100644 --- a/src/test/ui/issues/issue-50993.rs +++ b/src/test/ui/issues/issue-50993.rs @@ -2,6 +2,8 @@ // build-pass // error-pattern: dropping unsupported crate type `dylib` for target `thumbv7em-none-eabihf` +// ignore-emscripten FIXME: debugging only, do not land + #![feature(no_core)] #![no_std] diff --git a/src/test/ui/issues/issue-53787-inline-assembler-macro.rs b/src/test/ui/issues/issue-53787-inline-assembler-macro.rs index d911ac5efbe03..c924573ae4565 100644 --- a/src/test/ui/issues/issue-53787-inline-assembler-macro.rs +++ b/src/test/ui/issues/issue-53787-inline-assembler-macro.rs @@ -1,7 +1,6 @@ // Regression test for Issue #53787: Fix ICE when creating a label in inline assembler with macros. // build-fail -// ignore-emscripten #![feature(asm)] diff --git a/src/test/ui/issues/issue-53787-inline-assembler-macro.stderr b/src/test/ui/issues/issue-53787-inline-assembler-macro.stderr index b066474f924ab..f96bcaa492c07 100644 --- a/src/test/ui/issues/issue-53787-inline-assembler-macro.stderr +++ b/src/test/ui/issues/issue-53787-inline-assembler-macro.stderr @@ -1,5 +1,5 @@ error[E0669]: invalid value for constraint in inline assembly - --> $DIR/issue-53787-inline-assembler-macro.rs:24:16 + --> $DIR/issue-53787-inline-assembler-macro.rs:23:16 | LL | fake_jump!("FirstFunc"); | ^^^^^^^^^^^ diff --git a/src/test/ui/issues/issue-58463.rs b/src/test/ui/issues/issue-58463.rs index af93f76221d4e..9573c9b703aa3 100644 --- a/src/test/ui/issues/issue-58463.rs +++ b/src/test/ui/issues/issue-58463.rs @@ -1,6 +1,5 @@ // run-pass // compile-flags:-C debuginfo=2 -// ignore-asmjs wasm2js does not support source maps yet fn foo() -> impl Copy { foo diff --git a/src/test/ui/lint/lint-ctypes.rs b/src/test/ui/lint/lint-ctypes.rs index a439a1f339aea..95d681ecfa271 100644 --- a/src/test/ui/lint/lint-ctypes.rs +++ b/src/test/ui/lint/lint-ctypes.rs @@ -97,7 +97,6 @@ extern { pub fn good19(_: &String); } -#[cfg(not(target_arch = "wasm32"))] extern { pub fn good1(size: *const libc::c_int); pub fn good2(size: *const libc::c_uint); diff --git a/src/test/ui/macros/macro-expanded-include/test.rs b/src/test/ui/macros/macro-expanded-include/test.rs index b8eb854b0b0f1..59704593df1f1 100644 --- a/src/test/ui/macros/macro-expanded-include/test.rs +++ b/src/test/ui/macros/macro-expanded-include/test.rs @@ -1,4 +1,3 @@ -// ignore-emscripten no asm! support // build-pass (FIXME(62277): could be check-pass?) #![feature(asm)] #![allow(unused)] diff --git a/src/test/ui/mir/mir_heavy_promoted.rs b/src/test/ui/mir/mir_heavy_promoted.rs index 092299880e2dc..266d25e2ff6bb 100644 --- a/src/test/ui/mir/mir_heavy_promoted.rs +++ b/src/test/ui/mir/mir_heavy_promoted.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-emscripten apparently only works in optimized mode const TEST_DATA: [u8; 32 * 1024 * 1024] = [42; 32 * 1024 * 1024]; diff --git a/src/test/ui/mpsc_stress.rs b/src/test/ui/mpsc_stress.rs index bce5fdcd119f7..7ca034ff412e6 100644 --- a/src/test/ui/mpsc_stress.rs +++ b/src/test/ui/mpsc_stress.rs @@ -1,6 +1,6 @@ // run-pass // compile-flags:--test -// ignore-emscripten +// ignore-emscripten no threads support // ignore-sgx no thread sleep support use std::sync::mpsc::channel; diff --git a/src/test/ui/numbers-arithmetic/next-power-of-two-overflow-debug.rs b/src/test/ui/numbers-arithmetic/next-power-of-two-overflow-debug.rs index e9927304f23f8..f7857fc46af98 100644 --- a/src/test/ui/numbers-arithmetic/next-power-of-two-overflow-debug.rs +++ b/src/test/ui/numbers-arithmetic/next-power-of-two-overflow-debug.rs @@ -1,7 +1,6 @@ // run-pass // compile-flags: -C debug_assertions=yes // ignore-wasm32-bare compiled with panic=abort by default -// ignore-emscripten dies with an LLVM error use std::panic; diff --git a/src/test/ui/numbers-arithmetic/next-power-of-two-overflow-ndebug.rs b/src/test/ui/numbers-arithmetic/next-power-of-two-overflow-ndebug.rs index 982cd97c50ab6..4017ded7e21ea 100644 --- a/src/test/ui/numbers-arithmetic/next-power-of-two-overflow-ndebug.rs +++ b/src/test/ui/numbers-arithmetic/next-power-of-two-overflow-ndebug.rs @@ -1,6 +1,5 @@ // run-pass // compile-flags: -C debug_assertions=no -// ignore-emscripten dies with an LLVM error fn main() { for i in 129..256 { diff --git a/src/test/ui/numbers-arithmetic/saturating-float-casts.rs b/src/test/ui/numbers-arithmetic/saturating-float-casts.rs index f13964fb38665..c315fa68f9390 100644 --- a/src/test/ui/numbers-arithmetic/saturating-float-casts.rs +++ b/src/test/ui/numbers-arithmetic/saturating-float-casts.rs @@ -8,7 +8,6 @@ extern crate test; use std::{f32, f64}; use std::{u8, i8, u16, i16, u32, i32, u64, i64}; -#[cfg(not(target_os="emscripten"))] use std::{u128, i128}; use test::black_box; @@ -88,11 +87,8 @@ macro_rules! fptoui_tests { pub fn main() { common_fptoi_tests!(f* -> i8 i16 i32 i64 u8 u16 u32 u64); fptoui_tests!(f* -> u8 u16 u32 u64); - // FIXME emscripten does not support i128 - #[cfg(not(target_os="emscripten"))] { - common_fptoi_tests!(f* -> i128 u128); - fptoui_tests!(f* -> u128); - } + common_fptoi_tests!(f* -> i128 u128); + fptoui_tests!(f* -> u128); // The following tests cover edge cases for some integer types. @@ -124,12 +120,9 @@ pub fn main() { test!(4294967296., f* -> u32, 4294967295); // # u128 - #[cfg(not(target_os="emscripten"))] - { - // float->int: - test_c!(f32::MAX, f32 -> u128, 0xffffff00000000000000000000000000); - // nextDown(f32::MAX) = 2^128 - 2 * 2^104 - const SECOND_LARGEST_F32: f32 = 340282326356119256160033759537265639424.; - test_c!(SECOND_LARGEST_F32, f32 -> u128, 0xfffffe00000000000000000000000000); - } + // float->int: + test_c!(f32::MAX, f32 -> u128, 0xffffff00000000000000000000000000); + // nextDown(f32::MAX) = 2^128 - 2 * 2^104 + const SECOND_LARGEST_F32: f32 = 340282326356119256160033759537265639424.; + test_c!(SECOND_LARGEST_F32, f32 -> u128, 0xfffffe00000000000000000000000000); } diff --git a/src/test/ui/packed/packed-struct-address-of-element.rs b/src/test/ui/packed/packed-struct-address-of-element.rs index 812d23fb58023..4e9e3b86546f3 100644 --- a/src/test/ui/packed/packed-struct-address-of-element.rs +++ b/src/test/ui/packed/packed-struct-address-of-element.rs @@ -2,7 +2,6 @@ #![allow(dead_code)] #![deny(safe_packed_borrows)] #![feature(raw_ref_op)] -// ignore-emscripten weird assertion? #[repr(packed)] struct Foo1 { diff --git a/src/test/ui/packed/packed-struct-borrow-element.rs b/src/test/ui/packed/packed-struct-borrow-element.rs index 0072b6191ebb0..918bf2a950762 100644 --- a/src/test/ui/packed/packed-struct-borrow-element.rs +++ b/src/test/ui/packed/packed-struct-borrow-element.rs @@ -1,6 +1,5 @@ // run-pass (note: this is spec-UB, but it works for now) #![allow(dead_code)] -// ignore-emscripten weird assertion? #[repr(packed)] struct Foo1 { diff --git a/src/test/ui/panic-runtime/abort-link-to-unwind-dylib.rs b/src/test/ui/panic-runtime/abort-link-to-unwind-dylib.rs index 4b0f92456e0d1..412e79b11105f 100644 --- a/src/test/ui/panic-runtime/abort-link-to-unwind-dylib.rs +++ b/src/test/ui/panic-runtime/abort-link-to-unwind-dylib.rs @@ -2,7 +2,7 @@ // compile-flags:-C panic=abort -C prefer-dynamic // ignore-musl - no dylibs here // ignore-cloudabi -// ignore-emscripten +// ignore-emscripten no dylib support // ignore-sgx no dynamic lib support // error-pattern:`panic_unwind` is not compiled with this crate's panic strategy diff --git a/src/test/ui/paths-containing-nul.rs b/src/test/ui/paths-containing-nul.rs index e9510b53feab8..6842775c60eb1 100644 --- a/src/test/ui/paths-containing-nul.rs +++ b/src/test/ui/paths-containing-nul.rs @@ -3,7 +3,7 @@ #![allow(deprecated)] // ignore-cloudabi no files or I/O // ignore-wasm32-bare no files or I/O -// ignore-emscripten no files +// ignore-emscripten issue #31622 // ignore-sgx no files use std::fs; diff --git a/src/test/ui/sepcomp/sepcomp-lib-lto.rs b/src/test/ui/sepcomp/sepcomp-lib-lto.rs index 51a572899f819..164ae79c254fa 100644 --- a/src/test/ui/sepcomp/sepcomp-lib-lto.rs +++ b/src/test/ui/sepcomp/sepcomp-lib-lto.rs @@ -4,7 +4,6 @@ // aux-build:sepcomp_lib.rs // compile-flags: -C lto -g -// ignore-asmjs wasm2js does not support source maps yet // no-prefer-dynamic extern crate sepcomp_lib; diff --git a/src/test/ui/simd/simd-intrinsic-float-math.rs b/src/test/ui/simd/simd-intrinsic-float-math.rs index 220a59535cae4..0253716d068c7 100644 --- a/src/test/ui/simd/simd-intrinsic-float-math.rs +++ b/src/test/ui/simd/simd-intrinsic-float-math.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-emscripten // ignore-android // FIXME: this test fails on arm-android because the NDK version 14 is too old. diff --git a/src/test/ui/simd/simd-intrinsic-float-minmax.rs b/src/test/ui/simd/simd-intrinsic-float-minmax.rs index 5f0aa11af5fb8..e7f732ba17de0 100644 --- a/src/test/ui/simd/simd-intrinsic-float-minmax.rs +++ b/src/test/ui/simd/simd-intrinsic-float-minmax.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-emscripten // Test that the simd_f{min,max} intrinsics produce the correct results. diff --git a/src/test/ui/simd/simd-intrinsic-generic-arithmetic-saturating.rs b/src/test/ui/simd/simd-intrinsic-generic-arithmetic-saturating.rs index b2ddcf023ebcb..15f1de3093140 100644 --- a/src/test/ui/simd/simd-intrinsic-generic-arithmetic-saturating.rs +++ b/src/test/ui/simd/simd-intrinsic-generic-arithmetic-saturating.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-emscripten // min-llvm-version 8.0 #![allow(non_camel_case_types)] diff --git a/src/test/ui/simd/simd-intrinsic-generic-arithmetic.rs b/src/test/ui/simd/simd-intrinsic-generic-arithmetic.rs index b67c0ad1eb2f1..0994f32962af0 100644 --- a/src/test/ui/simd/simd-intrinsic-generic-arithmetic.rs +++ b/src/test/ui/simd/simd-intrinsic-generic-arithmetic.rs @@ -1,8 +1,6 @@ // run-pass #![allow(non_camel_case_types)] -// ignore-emscripten FIXME(#45351) hits an LLVM assert - #![feature(repr_simd, platform_intrinsics)] #[repr(simd)] diff --git a/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs b/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs index b28f742a92e94..23a2ce275139f 100644 --- a/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs +++ b/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs @@ -1,8 +1,6 @@ // run-pass #![allow(non_camel_case_types)] -// ignore-emscripten - // Test that the simd_bitmask intrinsic produces correct results. #![feature(repr_simd, platform_intrinsics)] diff --git a/src/test/ui/simd/simd-intrinsic-generic-cast.rs b/src/test/ui/simd/simd-intrinsic-generic-cast.rs index 15f232e2c0f70..ba2a48c6d0572 100644 --- a/src/test/ui/simd/simd-intrinsic-generic-cast.rs +++ b/src/test/ui/simd/simd-intrinsic-generic-cast.rs @@ -1,6 +1,5 @@ // run-pass #![allow(unused_must_use)] -// ignore-emscripten FIXME(#45351) hits an LLVM assert #![feature(repr_simd, platform_intrinsics, concat_idents, test)] #![allow(non_camel_case_types)] diff --git a/src/test/ui/simd/simd-intrinsic-generic-comparison.rs b/src/test/ui/simd/simd-intrinsic-generic-comparison.rs index 2b593e1c9b804..d25a234c4b287 100644 --- a/src/test/ui/simd/simd-intrinsic-generic-comparison.rs +++ b/src/test/ui/simd/simd-intrinsic-generic-comparison.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-emscripten FIXME(#45351) hits an LLVM assert #![feature(repr_simd, platform_intrinsics, concat_idents)] #![allow(non_camel_case_types)] diff --git a/src/test/ui/simd/simd-intrinsic-generic-elements.rs b/src/test/ui/simd/simd-intrinsic-generic-elements.rs index ea3d4b1894416..3522c6d0f9181 100644 --- a/src/test/ui/simd/simd-intrinsic-generic-elements.rs +++ b/src/test/ui/simd/simd-intrinsic-generic-elements.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-emscripten FIXME(#45351) hits an LLVM assert #![feature(repr_simd, platform_intrinsics)] diff --git a/src/test/ui/simd/simd-intrinsic-generic-gather.rs b/src/test/ui/simd/simd-intrinsic-generic-gather.rs index 805caebe5b1f8..9cb5d52b6e336 100644 --- a/src/test/ui/simd/simd-intrinsic-generic-gather.rs +++ b/src/test/ui/simd/simd-intrinsic-generic-gather.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-emscripten // Test that the simd_{gather,scatter} intrinsics produce the correct results. diff --git a/src/test/ui/simd/simd-intrinsic-generic-reduction.rs b/src/test/ui/simd/simd-intrinsic-generic-reduction.rs index 4195444a73f67..d08d61f406220 100644 --- a/src/test/ui/simd/simd-intrinsic-generic-reduction.rs +++ b/src/test/ui/simd/simd-intrinsic-generic-reduction.rs @@ -1,7 +1,6 @@ // run-pass #![allow(non_camel_case_types)] -// ignore-emscripten // min-system-llvm-version: 9.0 // Test that the simd_reduce_{op} intrinsics produce the correct results. diff --git a/src/test/ui/simd/simd-intrinsic-generic-select.rs b/src/test/ui/simd/simd-intrinsic-generic-select.rs index 22bda4fc9d919..1974052387ea2 100644 --- a/src/test/ui/simd/simd-intrinsic-generic-select.rs +++ b/src/test/ui/simd/simd-intrinsic-generic-select.rs @@ -1,7 +1,6 @@ // run-pass #![allow(non_camel_case_types)] -// ignore-emscripten // ignore-mips behavior of simd_select_bitmask is endian-specific // ignore-mips64 behavior of simd_select_bitmask is endian-specific // ignore-powerpc behavior of simd_select_bitmask is endian-specific diff --git a/src/test/ui/simd/simd-target-feature-mixup.rs b/src/test/ui/simd/simd-target-feature-mixup.rs index 6d7688191b7f1..7b47bcc86a80b 100644 --- a/src/test/ui/simd/simd-target-feature-mixup.rs +++ b/src/test/ui/simd/simd-target-feature-mixup.rs @@ -3,7 +3,7 @@ #![allow(stable_features)] #![allow(overflowing_literals)] -// ignore-emscripten +// ignore-emscripten no processes // ignore-sgx no processes #![feature(repr_simd, target_feature, cfg_target_feature)] diff --git a/src/test/ui/unboxed-closures/unboxed-closures-unique-type-id.rs b/src/test/ui/unboxed-closures/unboxed-closures-unique-type-id.rs index 5d1e00d2d3535..f86499e2e3f86 100644 --- a/src/test/ui/unboxed-closures/unboxed-closures-unique-type-id.rs +++ b/src/test/ui/unboxed-closures/unboxed-closures-unique-type-id.rs @@ -10,7 +10,6 @@ // This is a regression test for issue #17021. // // compile-flags: -g -// ignore-asmjs wasm2js does not support source maps yet use std::ptr; diff --git a/src/test/ui/wrapping-int-combinations.rs b/src/test/ui/wrapping-int-combinations.rs index f0bc479ee0ff2..431194ccd1dec 100644 --- a/src/test/ui/wrapping-int-combinations.rs +++ b/src/test/ui/wrapping-int-combinations.rs @@ -64,14 +64,12 @@ fn main() { wrapping_test!(i16, std::i16::MIN, std::i16::MAX); wrapping_test!(i32, std::i32::MIN, std::i32::MAX); wrapping_test!(i64, std::i64::MIN, std::i64::MAX); - #[cfg(not(target_os = "emscripten"))] wrapping_test!(i128, std::i128::MIN, std::i128::MAX); wrapping_test!(isize, std::isize::MIN, std::isize::MAX); wrapping_test!(u8, std::u8::MIN, std::u8::MAX); wrapping_test!(u16, std::u16::MIN, std::u16::MAX); wrapping_test!(u32, std::u32::MIN, std::u32::MAX); wrapping_test!(u64, std::u64::MIN, std::u64::MAX); - #[cfg(not(target_os = "emscripten"))] wrapping_test!(u128, std::u128::MIN, std::u128::MAX); wrapping_test!(usize, std::usize::MIN, std::usize::MAX); } From 4311d19e32a78b8aab55c7317469ed46d9f188ab Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Thu, 9 Jan 2020 21:57:17 -0800 Subject: [PATCH 2/7] Temporarily add wasm32 and asmjs to PR CI --- src/ci/azure-pipelines/pr.yml | 2 ++ src/ci/docker/{disabled => }/asmjs/Dockerfile | 0 2 files changed, 2 insertions(+) rename src/ci/docker/{disabled => }/asmjs/Dockerfile (100%) diff --git a/src/ci/azure-pipelines/pr.yml b/src/ci/azure-pipelines/pr.yml index 1f0be53677de2..dbc7c07f49b97 100644 --- a/src/ci/azure-pipelines/pr.yml +++ b/src/ci/azure-pipelines/pr.yml @@ -18,6 +18,8 @@ jobs: - template: steps/run.yml strategy: matrix: + wasm32: {} + asmjs: {} x86_64-gnu-llvm-7: {} mingw-check: {} x86_64-gnu-tools: diff --git a/src/ci/docker/disabled/asmjs/Dockerfile b/src/ci/docker/asmjs/Dockerfile similarity index 100% rename from src/ci/docker/disabled/asmjs/Dockerfile rename to src/ci/docker/asmjs/Dockerfile From 25b1278b4adc15bac9c0b566c211f89f75d009c5 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Thu, 9 Jan 2020 22:02:33 -0800 Subject: [PATCH 3/7] Remove debugging changes accidentally left in --- src/test/codegen/abi-efiapi.rs | 3 --- src/test/ui/issues/issue-37131.rs | 2 -- src/test/ui/issues/issue-49851/compiler-builtins-error.rs | 2 -- src/test/ui/issues/issue-50993.rs | 2 -- 4 files changed, 9 deletions(-) diff --git a/src/test/codegen/abi-efiapi.rs b/src/test/codegen/abi-efiapi.rs index 682cddc6eb14a..8aeee5859d0ad 100644 --- a/src/test/codegen/abi-efiapi.rs +++ b/src/test/codegen/abi-efiapi.rs @@ -1,6 +1,3 @@ -// FIXME: debugging only, do not land -// ignore-emscripten - // Checks if the correct annotation for the efiapi ABI is passed to llvm. // revisions:x86_64 i686 arm diff --git a/src/test/ui/issues/issue-37131.rs b/src/test/ui/issues/issue-37131.rs index 74a31dd400e65..aa3b6ea86bbe0 100644 --- a/src/test/ui/issues/issue-37131.rs +++ b/src/test/ui/issues/issue-37131.rs @@ -4,7 +4,5 @@ // compile-flags: --target=thumbv6m-none-eabi // ignore-arm -// ignore-emscripten FIXME: debugging only, do not land - // error-pattern:target may not be installed fn main() { } diff --git a/src/test/ui/issues/issue-49851/compiler-builtins-error.rs b/src/test/ui/issues/issue-49851/compiler-builtins-error.rs index ddd5a08a16433..3484ff3b87432 100644 --- a/src/test/ui/issues/issue-49851/compiler-builtins-error.rs +++ b/src/test/ui/issues/issue-49851/compiler-builtins-error.rs @@ -2,8 +2,6 @@ // http://rust-lang.org/COPYRIGHT. // -// ignore-emscripten FIXME: debugging only, do not land - // compile-flags: --target thumbv7em-none-eabihf #![deny(unsafe_code)] #![deny(warnings)] diff --git a/src/test/ui/issues/issue-50993.rs b/src/test/ui/issues/issue-50993.rs index 1b9a30f43a999..d38eb82667812 100644 --- a/src/test/ui/issues/issue-50993.rs +++ b/src/test/ui/issues/issue-50993.rs @@ -2,8 +2,6 @@ // build-pass // error-pattern: dropping unsupported crate type `dylib` for target `thumbv7em-none-eabihf` -// ignore-emscripten FIXME: debugging only, do not land - #![feature(no_core)] #![no_std] From 8a12ac0022edfa36da8522a5f9485e2af155fe15 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Fri, 10 Jan 2020 10:37:21 -0800 Subject: [PATCH 4/7] Fmt and address comment --- src/librustc_codegen_ssa/back/linker.rs | 13 ++++++++++--- src/libstd/sys/mod.rs | 2 +- src/libstd/thread/mod.rs | 5 ++++- src/libtest/tests.rs | 2 +- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/librustc_codegen_ssa/back/linker.rs b/src/librustc_codegen_ssa/back/linker.rs index 9702f20bd45ae..0564fcbb9a9e0 100644 --- a/src/librustc_codegen_ssa/back/linker.rs +++ b/src/librustc_codegen_ssa/back/linker.rs @@ -156,8 +156,9 @@ impl<'a> GccLinker<'a> { // * On OSX they have their own linker, not binutils' // * For WebAssembly/JS the only functional linker is LLD, which doesn't // support hint flags - !self.sess.target.target.options.is_like_osx && self.sess.target.target.arch != "wasm32" && - self.sess.target.target.arch != "asmjs" + !self.sess.target.target.options.is_like_osx + && self.sess.target.target.arch != "wasm32" + && self.sess.target.target.arch != "asmjs" } // Some platforms take hints about whether a library is static or dynamic. @@ -869,7 +870,13 @@ impl<'a> Linker for EmLinker<'a> { DebugInfo::Limited => "-g3", // FIXME: wasm2js errors with -g3 and above because it does not support source maps. // See https://github.com/WebAssembly/binaryen/issues/2410 - DebugInfo::Full => if self.sess.target.target.arch == "asmjs" { "-g3" } else { "-g4" }, + DebugInfo::Full => { + if self.sess.target.target.arch == "asmjs" { + "-g3" + } else { + "-g4" + } + } }); } diff --git a/src/libstd/sys/mod.rs b/src/libstd/sys/mod.rs index 01c3eb7cf7ed9..8f42ad6497e48 100644 --- a/src/libstd/sys/mod.rs +++ b/src/libstd/sys/mod.rs @@ -41,7 +41,7 @@ cfg_if::cfg_if! { } else if #[cfg(target_os = "wasi")] { mod wasi; pub use self::wasi::*; - } else if #[cfg(any(target_arch = "wasm32", target_arch = "asmjs"))] { + } else if #[cfg(target_arch = "wasm32")] { mod wasm; pub use self::wasm::*; } else if #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))] { diff --git a/src/libstd/thread/mod.rs b/src/libstd/thread/mod.rs index 25f2ab977517b..5252c2671efbb 100644 --- a/src/libstd/thread/mod.rs +++ b/src/libstd/thread/mod.rs @@ -203,7 +203,10 @@ pub use self::local::fast::Key as __FastLocalKeyInner; #[doc(hidden)] pub use self::local::os::Key as __OsLocalKeyInner; #[unstable(feature = "libstd_thread_internals", issue = "none")] -#[cfg(all(any(target_arch = "wasm32", target_arch = "asmjs"), not(target_feature = "atomics")))] +#[cfg(all( + any(target_arch = "wasm32", target_arch = "asmjs"), + not(target_feature = "atomics") +))] #[doc(hidden)] pub use self::local::statik::Key as __StaticLocalKeyInner; diff --git a/src/libtest/tests.rs b/src/libtest/tests.rs index 732c4bf707564..43a1a6f8df5dc 100644 --- a/src/libtest/tests.rs +++ b/src/libtest/tests.rs @@ -188,8 +188,8 @@ fn test_should_panic_bad_message() { #[test] fn test_should_panic_non_string_message_type() { - use std::any::TypeId; use crate::tests::TrFailedMsg; + use std::any::TypeId; fn f() { panic!(1i32); } From 370644289f5b2e6df98c985370d8c8871deeb1d1 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Fri, 10 Jan 2020 10:37:39 -0800 Subject: [PATCH 5/7] Revert "Temporarily add wasm32 and asmjs to PR CI" This reverts commit cdb4415e5be2ec06713a7b3b58146b65675f43a1. --- src/ci/azure-pipelines/pr.yml | 2 -- src/ci/docker/{ => disabled}/asmjs/Dockerfile | 0 2 files changed, 2 deletions(-) rename src/ci/docker/{ => disabled}/asmjs/Dockerfile (100%) diff --git a/src/ci/azure-pipelines/pr.yml b/src/ci/azure-pipelines/pr.yml index dbc7c07f49b97..1f0be53677de2 100644 --- a/src/ci/azure-pipelines/pr.yml +++ b/src/ci/azure-pipelines/pr.yml @@ -18,8 +18,6 @@ jobs: - template: steps/run.yml strategy: matrix: - wasm32: {} - asmjs: {} x86_64-gnu-llvm-7: {} mingw-check: {} x86_64-gnu-tools: diff --git a/src/ci/docker/asmjs/Dockerfile b/src/ci/docker/disabled/asmjs/Dockerfile similarity index 100% rename from src/ci/docker/asmjs/Dockerfile rename to src/ci/docker/disabled/asmjs/Dockerfile From 888a8a807a565e135d446de11c36266762053b94 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Tue, 14 Jan 2020 16:56:01 -0800 Subject: [PATCH 6/7] Skip long-running test steps --- src/ci/docker/disabled/asmjs/Dockerfile | 3 ++- src/ci/docker/wasm32/Dockerfile | 3 ++- .../drop-order-for-async-fn-parameters-by-ref-binding.rs | 1 + .../drop-order/drop-order-for-async-fn-parameters.rs | 1 + .../ui/async-await/drop-order/drop-order-when-cancelled.rs | 1 + src/test/ui/drop/dynamic-drop-async.rs | 1 + src/test/ui/drop/dynamic-drop.rs | 1 + src/test/ui/ifmt.rs | 1 + src/test/ui/issues/issue-50811.rs | 1 + src/test/ui/iterators/iter-count-overflow-debug.rs | 1 + src/test/ui/iterators/iter-count-overflow-ndebug.rs | 1 + src/test/ui/iterators/iter-position-overflow-debug.rs | 1 + src/test/ui/iterators/iter-position-overflow-ndebug.rs | 1 + src/test/ui/numbers-arithmetic/num-wrapping.rs | 1 + src/test/ui/numbers-arithmetic/saturating-float-casts.rs | 2 ++ 15 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/ci/docker/disabled/asmjs/Dockerfile b/src/ci/docker/disabled/asmjs/Dockerfile index e27a2a529a8ca..bf1bd002a178d 100644 --- a/src/ci/docker/disabled/asmjs/Dockerfile +++ b/src/ci/docker/disabled/asmjs/Dockerfile @@ -33,7 +33,8 @@ ENV EMCC_CFLAGS=-O1 # Emscripten installation is user-specific ENV NO_CHANGE_USER=1 -ENV SCRIPT python2.7 ../x.py test --target $TARGETS +# libcore takes about 15 minutes to build, so skip it +ENV SCRIPT python2.7 ../x.py test --target $TARGETS --exclude src/libcore # This is almost identical to the wasm32-unknown-emscripten target, so # running with assertions again is not useful diff --git a/src/ci/docker/wasm32/Dockerfile b/src/ci/docker/wasm32/Dockerfile index 5f283dadaad0c..27fb5f4fec458 100644 --- a/src/ci/docker/wasm32/Dockerfile +++ b/src/ci/docker/wasm32/Dockerfile @@ -33,4 +33,5 @@ ENV EMCC_CFLAGS=-O1 # Emscripten installation is user-specific ENV NO_CHANGE_USER=1 -ENV SCRIPT python2.7 ../x.py test --target $TARGETS +# libcore takes about 15 minutes to build, so skip it +ENV SCRIPT python2.7 ../x.py test --target $TARGETS --exclude src/libcore diff --git a/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters-by-ref-binding.rs b/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters-by-ref-binding.rs index 9817d377a7886..ecfac8fb868cc 100644 --- a/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters-by-ref-binding.rs +++ b/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters-by-ref-binding.rs @@ -1,6 +1,7 @@ // aux-build:arc_wake.rs // edition:2018 // run-pass +// ignore-emscripten times out #![allow(unused_variables)] diff --git a/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters.rs b/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters.rs index 00072786a50a7..6a6e1deb99e5f 100644 --- a/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters.rs +++ b/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters.rs @@ -1,6 +1,7 @@ // aux-build:arc_wake.rs // edition:2018 // run-pass +// ignore-emscripten times out #![allow(unused_variables)] diff --git a/src/test/ui/async-await/drop-order/drop-order-when-cancelled.rs b/src/test/ui/async-await/drop-order/drop-order-when-cancelled.rs index 9e8304935bffc..3b978a1940c19 100644 --- a/src/test/ui/async-await/drop-order/drop-order-when-cancelled.rs +++ b/src/test/ui/async-await/drop-order/drop-order-when-cancelled.rs @@ -1,6 +1,7 @@ // aux-build:arc_wake.rs // edition:2018 // run-pass +// ignore-emscripten times out // Test that the drop order for parameters in a fn and async fn matches up. Also test that // parameters (used or unused) are not dropped until the async fn is cancelled. diff --git a/src/test/ui/drop/dynamic-drop-async.rs b/src/test/ui/drop/dynamic-drop-async.rs index 91063edf0f6c4..ac92af5c643e9 100644 --- a/src/test/ui/drop/dynamic-drop-async.rs +++ b/src/test/ui/drop/dynamic-drop-async.rs @@ -5,6 +5,7 @@ // run-pass // edition:2018 +// ignore-emscripten times out // ignore-wasm32-bare compiled with panic=abort by default #![feature(slice_patterns)] diff --git a/src/test/ui/drop/dynamic-drop.rs b/src/test/ui/drop/dynamic-drop.rs index 0f0ec0ba460c8..f6d74b9db9f98 100644 --- a/src/test/ui/drop/dynamic-drop.rs +++ b/src/test/ui/drop/dynamic-drop.rs @@ -2,6 +2,7 @@ #![allow(unused_assignments)] #![allow(unused_variables)] +// ignore-emscripten times out // ignore-wasm32-bare compiled with panic=abort by default #![feature(generators, generator_trait, untagged_unions)] diff --git a/src/test/ui/ifmt.rs b/src/test/ui/ifmt.rs index 1a070843cc446..320407aa324f5 100644 --- a/src/test/ui/ifmt.rs +++ b/src/test/ui/ifmt.rs @@ -1,4 +1,5 @@ // run-pass +// ignore-emscripten times out #![deny(warnings)] #![allow(unused_must_use)] diff --git a/src/test/ui/issues/issue-50811.rs b/src/test/ui/issues/issue-50811.rs index 63d87e03c4899..0d7d7c7438d5a 100644 --- a/src/test/ui/issues/issue-50811.rs +++ b/src/test/ui/issues/issue-50811.rs @@ -1,4 +1,5 @@ // run-pass +// ignore-emscripten times out #![feature(test)] extern crate test; diff --git a/src/test/ui/iterators/iter-count-overflow-debug.rs b/src/test/ui/iterators/iter-count-overflow-debug.rs index d661203575083..aa0bcab4f6755 100644 --- a/src/test/ui/iterators/iter-count-overflow-debug.rs +++ b/src/test/ui/iterators/iter-count-overflow-debug.rs @@ -1,5 +1,6 @@ // run-pass // only-32bit too impatient for 2⁶⁴ items +// ignore-emscripten times out // ignore-wasm32-bare compiled with panic=abort by default // compile-flags: -C debug_assertions=yes -C opt-level=3 diff --git a/src/test/ui/iterators/iter-count-overflow-ndebug.rs b/src/test/ui/iterators/iter-count-overflow-ndebug.rs index b755bb554f441..c8a9ce3882f63 100644 --- a/src/test/ui/iterators/iter-count-overflow-ndebug.rs +++ b/src/test/ui/iterators/iter-count-overflow-ndebug.rs @@ -1,5 +1,6 @@ // run-pass // only-32bit too impatient for 2⁶⁴ items +// ignore-emscripten times out // compile-flags: -C debug_assertions=no -C opt-level=3 use std::panic; diff --git a/src/test/ui/iterators/iter-position-overflow-debug.rs b/src/test/ui/iterators/iter-position-overflow-debug.rs index f1eded31702c4..effb62577c14a 100644 --- a/src/test/ui/iterators/iter-position-overflow-debug.rs +++ b/src/test/ui/iterators/iter-position-overflow-debug.rs @@ -1,5 +1,6 @@ // run-pass // only-32bit too impatient for 2⁶⁴ items +// ignore-emscripten times out // ignore-wasm32-bare compiled with panic=abort by default // compile-flags: -C debug_assertions=yes -C opt-level=3 diff --git a/src/test/ui/iterators/iter-position-overflow-ndebug.rs b/src/test/ui/iterators/iter-position-overflow-ndebug.rs index 368f9c0c02b07..3b0a0fbf5e752 100644 --- a/src/test/ui/iterators/iter-position-overflow-ndebug.rs +++ b/src/test/ui/iterators/iter-position-overflow-ndebug.rs @@ -1,5 +1,6 @@ // run-pass // only-32bit too impatient for 2⁶⁴ items +// ignore-emscripten times out // compile-flags: -C debug_assertions=no -C opt-level=3 use std::panic; diff --git a/src/test/ui/numbers-arithmetic/num-wrapping.rs b/src/test/ui/numbers-arithmetic/num-wrapping.rs index 9a01549ecd24e..1f7bd59f5f653 100644 --- a/src/test/ui/numbers-arithmetic/num-wrapping.rs +++ b/src/test/ui/numbers-arithmetic/num-wrapping.rs @@ -1,4 +1,5 @@ // run-pass +// ignore-emscripten times out #![allow(unused_macros)] // compile-flags: -C debug-assertions diff --git a/src/test/ui/numbers-arithmetic/saturating-float-casts.rs b/src/test/ui/numbers-arithmetic/saturating-float-casts.rs index c315fa68f9390..db6328fdf640c 100644 --- a/src/test/ui/numbers-arithmetic/saturating-float-casts.rs +++ b/src/test/ui/numbers-arithmetic/saturating-float-casts.rs @@ -1,4 +1,6 @@ // run-pass +// ignore-emscripten times out + // Tests saturating float->int casts. See u128-as-f32.rs for the opposite direction. // compile-flags: -Z saturating-float-casts From 231667443fcedb1a65ec497c0e5907b47e4e5a1e Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Tue, 14 Jan 2020 16:56:53 -0800 Subject: [PATCH 7/7] Revert "Revert "Temporarily add wasm32 and asmjs to PR CI"" This reverts commit 370644289f5b2e6df98c985370d8c8871deeb1d1. --- src/ci/azure-pipelines/pr.yml | 2 ++ src/ci/docker/{disabled => }/asmjs/Dockerfile | 0 2 files changed, 2 insertions(+) rename src/ci/docker/{disabled => }/asmjs/Dockerfile (100%) diff --git a/src/ci/azure-pipelines/pr.yml b/src/ci/azure-pipelines/pr.yml index 1f0be53677de2..dbc7c07f49b97 100644 --- a/src/ci/azure-pipelines/pr.yml +++ b/src/ci/azure-pipelines/pr.yml @@ -18,6 +18,8 @@ jobs: - template: steps/run.yml strategy: matrix: + wasm32: {} + asmjs: {} x86_64-gnu-llvm-7: {} mingw-check: {} x86_64-gnu-tools: diff --git a/src/ci/docker/disabled/asmjs/Dockerfile b/src/ci/docker/asmjs/Dockerfile similarity index 100% rename from src/ci/docker/disabled/asmjs/Dockerfile rename to src/ci/docker/asmjs/Dockerfile