From 7bfbaa3881fe0a6e4a12b4ff2197e044cb05aff8 Mon Sep 17 00:00:00 2001 From: Florian Bartels Date: Thu, 22 Sep 2022 12:40:37 +0200 Subject: [PATCH 1/5] Detect panic strategy using `rustc --print cfg` Instead of relying on a command line parameter, detect if a target is able to unwind or not. Ignore tests that require unwinding on targets that don't support it. --- src/tools/compiletest/src/common.rs | 18 ++++++++++++++---- src/tools/compiletest/src/header.rs | 5 ++--- src/tools/compiletest/src/main.rs | 10 +--------- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs index 64df76e27720d..4994fb9bbf941 100644 --- a/src/tools/compiletest/src/common.rs +++ b/src/tools/compiletest/src/common.rs @@ -278,10 +278,6 @@ pub struct Config { /// override this setting. pub optimize_tests: bool, - /// What panic strategy the target is built with. Unwind supports Abort, but - /// not vice versa. - pub target_panic: PanicStrategy, - /// Target system to be tested pub target: String, @@ -426,6 +422,10 @@ impl Config { *&self.target_cfg().pointer_width } + pub fn can_unwind(&self) -> bool { + self.target_cfg().panic == PanicStrategy::Unwind + } + pub fn has_asm_support(&self) -> bool { static ASM_SUPPORTED_ARCHS: &[&str] = &[ "x86", "x86_64", "arm", "aarch64", "riscv32", @@ -446,6 +446,7 @@ pub struct TargetCfg { families: Vec, pointer_width: u32, endian: Endian, + panic: PanicStrategy, } #[derive(Eq, PartialEq, Clone, Debug)] @@ -481,6 +482,7 @@ impl TargetCfg { let mut families = Vec::new(); let mut pointer_width = None; let mut endian = None; + let mut panic = None; for line in print_cfg.lines() { if let Some((name, value)) = line.split_once('=') { let value = value.trim_matches('"'); @@ -498,6 +500,13 @@ impl TargetCfg { s => panic!("unexpected {s}"), }) } + "panic" => { + panic = match value { + "abort" => Some(PanicStrategy::Abort), + "unwind" => Some(PanicStrategy::Unwind), + s => panic!("unexpected {s}"), + } + } _ => {} } } @@ -510,6 +519,7 @@ impl TargetCfg { families, pointer_width: pointer_width.unwrap(), endian: endian.unwrap(), + panic: panic.unwrap(), } } } diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs index 3ff1cbf20cd26..6f85227500361 100644 --- a/src/tools/compiletest/src/header.rs +++ b/src/tools/compiletest/src/header.rs @@ -7,7 +7,7 @@ use std::path::{Path, PathBuf}; use tracing::*; -use crate::common::{CompareMode, Config, Debugger, FailMode, Mode, PanicStrategy, PassMode}; +use crate::common::{CompareMode, Config, Debugger, FailMode, Mode, PassMode}; use crate::util; use crate::{extract_cdb_version, extract_gdb_version}; @@ -949,8 +949,7 @@ pub fn make_test_description( ignore |= !has_memtag && config.parse_name_directive(ln, "needs-sanitizer-memtag"); ignore |= !has_shadow_call_stack && config.parse_name_directive(ln, "needs-sanitizer-shadow-call-stack"); - ignore |= config.target_panic == PanicStrategy::Abort - && config.parse_name_directive(ln, "needs-unwind"); + ignore |= !config.can_unwind() && config.parse_name_directive(ln, "needs-unwind"); ignore |= config.target == "wasm32-unknown-unknown" && config.parse_name_directive(ln, directives::CHECK_RUN_RESULTS); ignore |= config.debugger == Some(Debugger::Cdb) && ignore_cdb(config, ln); diff --git a/src/tools/compiletest/src/main.rs b/src/tools/compiletest/src/main.rs index 38c7b87fc0d9d..dccfd4e0d9807 100644 --- a/src/tools/compiletest/src/main.rs +++ b/src/tools/compiletest/src/main.rs @@ -5,9 +5,7 @@ extern crate test; -use crate::common::{ - expected_output_path, output_base_dir, output_relative_path, PanicStrategy, UI_EXTENSIONS, -}; +use crate::common::{expected_output_path, output_base_dir, output_relative_path, UI_EXTENSIONS}; use crate::common::{CompareMode, Config, Debugger, Mode, PassMode, TestPaths}; use crate::util::logv; use getopts::Options; @@ -105,7 +103,6 @@ pub fn parse_config(args: Vec) -> Config { .optmulti("", "host-rustcflags", "flags to pass to rustc for host", "FLAGS") .optmulti("", "target-rustcflags", "flags to pass to rustc for target", "FLAGS") .optflag("", "optimize-tests", "run tests with optimizations enabled") - .optopt("", "target-panic", "what panic strategy the target supports", "unwind | abort") .optflag("", "verbose", "run tests verbosely, showing all output") .optflag( "", @@ -258,11 +255,6 @@ pub fn parse_config(args: Vec) -> Config { host_rustcflags: Some(matches.opt_strs("host-rustcflags").join(" ")), target_rustcflags: Some(matches.opt_strs("target-rustcflags").join(" ")), optimize_tests: matches.opt_present("optimize-tests"), - target_panic: match matches.opt_str("target-panic").as_deref() { - Some("unwind") | None => PanicStrategy::Unwind, - Some("abort") => PanicStrategy::Abort, - _ => panic!("unknown `--target-panic` option `{}` given", mode), - }, target, host: opt_str2(matches.opt_str("host")), cdb, From 0b0027fd2ed31e355fa560407a32c924f7f8cad3 Mon Sep 17 00:00:00 2001 From: Florian Bartels Date: Thu, 22 Sep 2022 14:25:10 +0200 Subject: [PATCH 2/5] Restore ignore tag This test case actually requires std::process. --- src/test/ui/async-await/async-fn-size-moved-locals.rs | 1 - .../issue-65419/issue-65419-async-fn-resume-after-panic.rs | 1 - src/test/ui/binding/fn-arg-incomplete-pattern-drop-order.rs | 1 - src/test/ui/builtin-clone-unwind.rs | 1 - src/test/ui/catch-unwind-bang.rs | 1 - src/test/ui/cfg/cfg-panic.rs | 3 --- .../2229_closure_analysis/migrations/mir_calls_to_shims.rs | 1 - src/test/ui/drop/dynamic-drop-async.rs | 1 - src/test/ui/drop/dynamic-drop.rs | 1 - src/test/ui/drop/repeat-drop.rs | 3 --- src/test/ui/extern-flag/empty-extern-arg.rs | 1 - .../issue-64655-allow-unwind-when-calling-panic-directly.rs | 1 - .../ui/extern/issue-64655-extern-rust-must-allow-unwind.rs | 1 - src/test/ui/generator/panic-drops-resume.rs | 2 -- src/test/ui/generator/panic-drops.rs | 1 - src/test/ui/generator/panic-safe.rs | 1 - src/test/ui/generator/resume-after-return.rs | 1 - src/test/ui/intrinsics/panic-uninitialized-zeroed.rs | 1 - src/test/ui/issues/issue-14875.rs | 1 - src/test/ui/issues/issue-29948.rs | 1 - src/test/ui/issues/issue-43853.rs | 1 - src/test/ui/issues/issue-46519.rs | 1 - src/test/ui/iterators/iter-count-overflow-debug.rs | 1 - src/test/ui/iterators/iter-position-overflow-debug.rs | 1 - src/test/ui/iterators/iter-step-overflow-debug.rs | 1 - src/test/ui/iterators/iter-sum-overflow-debug.rs | 1 - src/test/ui/iterators/iter-sum-overflow-overflow-checks.rs | 1 - src/test/ui/macros/macro-comma-behavior-rpass.rs | 1 - src/test/ui/mir/mir_calls_to_shims.rs | 1 - src/test/ui/mir/mir_codegen_calls_diverging_drops.rs | 1 - src/test/ui/mir/mir_drop_order.rs | 1 - src/test/ui/mir/mir_drop_panics.rs | 1 - src/test/ui/mir/mir_let_chains_drop_order.rs | 1 - .../ui/numbers-arithmetic/next-power-of-two-overflow-debug.rs | 1 - src/test/ui/panic-handler/weak-lang-item.rs | 1 - src/test/ui/panic-runtime/need-abort-got-unwind.rs | 1 - src/test/ui/panic-runtime/transitive-link-a-bunch.rs | 1 - src/test/ui/panic-runtime/want-unwind-got-abort.rs | 1 - src/test/ui/panic-runtime/want-unwind-got-abort2.rs | 1 - src/test/ui/panic-while-printing.rs | 1 - src/test/ui/privacy/reachable-unnameable-items.rs | 1 - src/test/ui/proc-macro/expand-with-a-macro.rs | 1 - .../ui/rfc-1937-termination-trait/termination-trait-in-test.rs | 1 - src/test/ui/rfc-2091-track-caller/std-panic-locations.rs | 1 - src/test/ui/rfcs/rfc1857-drop-order.rs | 1 - src/test/ui/runtime/rt-explody-panic-payloads.rs | 3 --- src/test/ui/test-attrs/test-panic-while-printing.rs | 1 - src/test/ui/test-attrs/test-should-fail-good-message.rs | 1 - src/test/ui/unwind-abis/ffi-unwind-calls-lint.rs | 1 - src/test/ui/unwind-no-uwtable.rs | 1 - 50 files changed, 57 deletions(-) diff --git a/src/test/ui/async-await/async-fn-size-moved-locals.rs b/src/test/ui/async-await/async-fn-size-moved-locals.rs index 9e3794b0484e7..79b7239f3590d 100644 --- a/src/test/ui/async-await/async-fn-size-moved-locals.rs +++ b/src/test/ui/async-await/async-fn-size-moved-locals.rs @@ -7,7 +7,6 @@ // // See issue #59123 for a full explanation. -// ignore-emscripten (sizes don't match) // needs-unwind Size of Futures change on panic=abort // run-pass diff --git a/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-panic.rs b/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-panic.rs index 5e71229beb5f9..b4ea4c9f68664 100644 --- a/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-panic.rs +++ b/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-panic.rs @@ -6,7 +6,6 @@ // error-pattern: thread 'main' panicked at '`async fn` resumed after panicking' // edition:2018 // ignore-wasm no panic or subprocess support -// ignore-emscripten no panic or subprocess support #![feature(generators, generator_trait)] diff --git a/src/test/ui/binding/fn-arg-incomplete-pattern-drop-order.rs b/src/test/ui/binding/fn-arg-incomplete-pattern-drop-order.rs index 684172ca61cca..0450fe8abbd14 100644 --- a/src/test/ui/binding/fn-arg-incomplete-pattern-drop-order.rs +++ b/src/test/ui/binding/fn-arg-incomplete-pattern-drop-order.rs @@ -3,7 +3,6 @@ // Check that partially moved from function parameters are dropped after the // named bindings that move from them. -// ignore-wasm32-bare compiled with panic=abort by default use std::{panic, cell::RefCell}; diff --git a/src/test/ui/builtin-clone-unwind.rs b/src/test/ui/builtin-clone-unwind.rs index 3623c4a4dd05d..16add6ff2f68f 100644 --- a/src/test/ui/builtin-clone-unwind.rs +++ b/src/test/ui/builtin-clone-unwind.rs @@ -3,7 +3,6 @@ #![allow(unused_variables)] #![allow(unused_imports)] -// ignore-wasm32-bare compiled with panic=abort by default // Test that builtin implementations of `Clone` cleanup everything // in case of unwinding. diff --git a/src/test/ui/catch-unwind-bang.rs b/src/test/ui/catch-unwind-bang.rs index b31b5cab5b724..fb3503937cb54 100644 --- a/src/test/ui/catch-unwind-bang.rs +++ b/src/test/ui/catch-unwind-bang.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default fn worker() -> ! { panic!() diff --git a/src/test/ui/cfg/cfg-panic.rs b/src/test/ui/cfg/cfg-panic.rs index fb3e5059c8199..2de72d54a481a 100644 --- a/src/test/ui/cfg/cfg-panic.rs +++ b/src/test/ui/cfg/cfg-panic.rs @@ -1,9 +1,6 @@ // build-pass // compile-flags: -C panic=unwind // needs-unwind -// ignore-emscripten no panic_unwind implementation -// ignore-wasm32 no panic_unwind implementation -// ignore-wasm64 no panic_unwind implementation #[cfg(panic = "abort")] diff --git a/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.rs b/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.rs index 6b0b10521740e..52e96d013a265 100644 --- a/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.rs +++ b/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.rs @@ -3,7 +3,6 @@ #![deny(rust_2021_incompatible_closure_captures)] //~^ NOTE: the lint level is defined here -// ignore-wasm32-bare compiled with panic=abort by default #![feature(fn_traits)] #![feature(never_type)] diff --git a/src/test/ui/drop/dynamic-drop-async.rs b/src/test/ui/drop/dynamic-drop-async.rs index 13bd71ecb3389..8f1cc6691cd8d 100644 --- a/src/test/ui/drop/dynamic-drop-async.rs +++ b/src/test/ui/drop/dynamic-drop-async.rs @@ -6,7 +6,6 @@ // run-pass // needs-unwind // edition:2018 -// ignore-wasm32-bare compiled with panic=abort by default #![allow(unused)] diff --git a/src/test/ui/drop/dynamic-drop.rs b/src/test/ui/drop/dynamic-drop.rs index e706867742337..9e51d3adaaa68 100644 --- a/src/test/ui/drop/dynamic-drop.rs +++ b/src/test/ui/drop/dynamic-drop.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default #![feature(generators, generator_trait)] diff --git a/src/test/ui/drop/repeat-drop.rs b/src/test/ui/drop/repeat-drop.rs index a43612e5d8587..8fd46ecaf4420 100644 --- a/src/test/ui/drop/repeat-drop.rs +++ b/src/test/ui/drop/repeat-drop.rs @@ -1,8 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare no unwinding panic -// ignore-avr no unwinding panic -// ignore-nvptx64 no unwinding panic static mut CHECK: usize = 0; diff --git a/src/test/ui/extern-flag/empty-extern-arg.rs b/src/test/ui/extern-flag/empty-extern-arg.rs index 3170537b0e0a0..a371afb128cab 100644 --- a/src/test/ui/extern-flag/empty-extern-arg.rs +++ b/src/test/ui/extern-flag/empty-extern-arg.rs @@ -1,6 +1,5 @@ // compile-flags: --extern std= // error-pattern: extern location for std does not exist // needs-unwind since it affects the error output -// ignore-emscripten compiled with panic=abort, personality not required fn main() {} diff --git a/src/test/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.rs b/src/test/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.rs index 7a91cbdc2f5d4..233120c92f38b 100644 --- a/src/test/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.rs +++ b/src/test/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // ignore-emscripten no threads support // rust-lang/rust#64655: with panic=unwind, a panic from a subroutine diff --git a/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs b/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs index e84ff41b344a7..3b263e58cbe84 100644 --- a/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs +++ b/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // ignore-emscripten no threads support // rust-lang/rust#64655: with panic=unwind, a panic from a subroutine diff --git a/src/test/ui/generator/panic-drops-resume.rs b/src/test/ui/generator/panic-drops-resume.rs index 8d8eb6a97b15a..4c3caeb14d67e 100644 --- a/src/test/ui/generator/panic-drops-resume.rs +++ b/src/test/ui/generator/panic-drops-resume.rs @@ -2,8 +2,6 @@ // run-pass // needs-unwind -// ignore-wasm no unwind support -// ignore-emscripten no unwind support #![feature(generators, generator_trait)] diff --git a/src/test/ui/generator/panic-drops.rs b/src/test/ui/generator/panic-drops.rs index a9de4e7fc7d25..65001fd879bb0 100644 --- a/src/test/ui/generator/panic-drops.rs +++ b/src/test/ui/generator/panic-drops.rs @@ -1,7 +1,6 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default #![feature(generators, generator_trait)] diff --git a/src/test/ui/generator/panic-safe.rs b/src/test/ui/generator/panic-safe.rs index 14a0c8dbaf1da..3db80bb582151 100644 --- a/src/test/ui/generator/panic-safe.rs +++ b/src/test/ui/generator/panic-safe.rs @@ -1,7 +1,6 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default #![feature(generators, generator_trait)] diff --git a/src/test/ui/generator/resume-after-return.rs b/src/test/ui/generator/resume-after-return.rs index 538609b981adf..01a059a161cea 100644 --- a/src/test/ui/generator/resume-after-return.rs +++ b/src/test/ui/generator/resume-after-return.rs @@ -1,7 +1,6 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default #![feature(generators, generator_trait)] diff --git a/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs b/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs index 255151a96032c..4aa869cca35be 100644 --- a/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs +++ b/src/test/ui/intrinsics/panic-uninitialized-zeroed.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // revisions: mir thir strict // [thir]compile-flags: -Zthir-unsafeck // [strict]compile-flags: -Zstrict-init-checks diff --git a/src/test/ui/issues/issue-14875.rs b/src/test/ui/issues/issue-14875.rs index aaef2aab9fc76..fca3309155d54 100644 --- a/src/test/ui/issues/issue-14875.rs +++ b/src/test/ui/issues/issue-14875.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // Check that values are not leaked when a dtor panics (#14875) diff --git a/src/test/ui/issues/issue-29948.rs b/src/test/ui/issues/issue-29948.rs index 01c3ec64861fe..3ed701480b5ed 100644 --- a/src/test/ui/issues/issue-29948.rs +++ b/src/test/ui/issues/issue-29948.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default use std::panic; diff --git a/src/test/ui/issues/issue-43853.rs b/src/test/ui/issues/issue-43853.rs index 3162c091c8786..dd42c1e3cb831 100644 --- a/src/test/ui/issues/issue-43853.rs +++ b/src/test/ui/issues/issue-43853.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default use std::panic; diff --git a/src/test/ui/issues/issue-46519.rs b/src/test/ui/issues/issue-46519.rs index 9bd3c0948517b..0567923b7fc69 100644 --- a/src/test/ui/issues/issue-46519.rs +++ b/src/test/ui/issues/issue-46519.rs @@ -2,7 +2,6 @@ // compile-flags:--test -O // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default #[test] #[should_panic(expected = "creating inhabited type")] diff --git a/src/test/ui/iterators/iter-count-overflow-debug.rs b/src/test/ui/iterators/iter-count-overflow-debug.rs index 15f25f1ca5373..8e59c11e9dccb 100644 --- a/src/test/ui/iterators/iter-count-overflow-debug.rs +++ b/src/test/ui/iterators/iter-count-overflow-debug.rs @@ -1,7 +1,6 @@ // run-pass // only-32bit too impatient for 2⁶⁴ items // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // compile-flags: -C debug_assertions=yes -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 65124c282412c..7a871e744c984 100644 --- a/src/test/ui/iterators/iter-position-overflow-debug.rs +++ b/src/test/ui/iterators/iter-position-overflow-debug.rs @@ -1,7 +1,6 @@ // run-pass // only-32bit too impatient for 2⁶⁴ items // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // compile-flags: -C debug_assertions=yes -C opt-level=3 use std::panic; diff --git a/src/test/ui/iterators/iter-step-overflow-debug.rs b/src/test/ui/iterators/iter-step-overflow-debug.rs index e16f984de79a6..6aa349ebed29b 100644 --- a/src/test/ui/iterators/iter-step-overflow-debug.rs +++ b/src/test/ui/iterators/iter-step-overflow-debug.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // compile-flags: -C debug_assertions=yes use std::panic; diff --git a/src/test/ui/iterators/iter-sum-overflow-debug.rs b/src/test/ui/iterators/iter-sum-overflow-debug.rs index d8ce43848a77e..24c764ff95873 100644 --- a/src/test/ui/iterators/iter-sum-overflow-debug.rs +++ b/src/test/ui/iterators/iter-sum-overflow-debug.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // compile-flags: -C debug_assertions=yes use std::panic; diff --git a/src/test/ui/iterators/iter-sum-overflow-overflow-checks.rs b/src/test/ui/iterators/iter-sum-overflow-overflow-checks.rs index bc8dcbdbb0e03..be45c075d7331 100644 --- a/src/test/ui/iterators/iter-sum-overflow-overflow-checks.rs +++ b/src/test/ui/iterators/iter-sum-overflow-overflow-checks.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // compile-flags: -C overflow-checks use std::panic; diff --git a/src/test/ui/macros/macro-comma-behavior-rpass.rs b/src/test/ui/macros/macro-comma-behavior-rpass.rs index dfd58b25d089d..8406b4e78f6be 100644 --- a/src/test/ui/macros/macro-comma-behavior-rpass.rs +++ b/src/test/ui/macros/macro-comma-behavior-rpass.rs @@ -14,7 +14,6 @@ // compile-flags: --test -C debug_assertions=yes // revisions: std core -// ignore-wasm32-bare compiled with panic=abort by default #![cfg_attr(core, no_std)] #[cfg(core)] diff --git a/src/test/ui/mir/mir_calls_to_shims.rs b/src/test/ui/mir/mir_calls_to_shims.rs index 42eaab77da9f1..9dc0acfbfda48 100644 --- a/src/test/ui/mir/mir_calls_to_shims.rs +++ b/src/test/ui/mir/mir_calls_to_shims.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default #![feature(fn_traits)] #![feature(never_type)] diff --git a/src/test/ui/mir/mir_codegen_calls_diverging_drops.rs b/src/test/ui/mir/mir_codegen_calls_diverging_drops.rs index 3d215610593f3..19dba497001cc 100644 --- a/src/test/ui/mir/mir_codegen_calls_diverging_drops.rs +++ b/src/test/ui/mir/mir_codegen_calls_diverging_drops.rs @@ -1,7 +1,6 @@ // run-fail // error-pattern:diverging_fn called // error-pattern:0 dropped -// ignore-emscripten no processes // needs-unwind this test checks that a destructor is called after panicking struct Droppable(u8); diff --git a/src/test/ui/mir/mir_drop_order.rs b/src/test/ui/mir/mir_drop_order.rs index 853efb0fed2b9..75f5b171af352 100644 --- a/src/test/ui/mir/mir_drop_order.rs +++ b/src/test/ui/mir/mir_drop_order.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default use std::cell::RefCell; use std::panic; diff --git a/src/test/ui/mir/mir_drop_panics.rs b/src/test/ui/mir/mir_drop_panics.rs index b4093d704150a..0d00426d6d2d5 100644 --- a/src/test/ui/mir/mir_drop_panics.rs +++ b/src/test/ui/mir/mir_drop_panics.rs @@ -2,7 +2,6 @@ // needs-unwind // error-pattern:panic 1 // error-pattern:drop 2 -// ignore-emscripten no processes struct Droppable(u32); impl Drop for Droppable { diff --git a/src/test/ui/mir/mir_let_chains_drop_order.rs b/src/test/ui/mir/mir_let_chains_drop_order.rs index 6498a51957194..536a84a352a49 100644 --- a/src/test/ui/mir/mir_let_chains_drop_order.rs +++ b/src/test/ui/mir/mir_let_chains_drop_order.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // See `mir_drop_order.rs` for more information 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 f857d4f4c7f27..79d78da3328a9 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 // needs-unwind -// 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/panic-handler/weak-lang-item.rs b/src/test/ui/panic-handler/weak-lang-item.rs index df31e614cf809..aef5e1b2c1c7a 100644 --- a/src/test/ui/panic-handler/weak-lang-item.rs +++ b/src/test/ui/panic-handler/weak-lang-item.rs @@ -2,7 +2,6 @@ // error-pattern: `#[panic_handler]` function required, but not found // error-pattern: language item required, but not found: `eh_personality` // needs-unwind since it affects the error output -// ignore-emscripten compiled with panic=abort, personality not required #![no_std] diff --git a/src/test/ui/panic-runtime/need-abort-got-unwind.rs b/src/test/ui/panic-runtime/need-abort-got-unwind.rs index c72fb96e357f0..e92400931d231 100644 --- a/src/test/ui/panic-runtime/need-abort-got-unwind.rs +++ b/src/test/ui/panic-runtime/need-abort-got-unwind.rs @@ -2,7 +2,6 @@ // needs-unwind // error-pattern:is incompatible with this crate's strategy of `unwind` // aux-build:needs-abort.rs -// ignore-wasm32-bare compiled with panic=abort by default extern crate needs_abort; diff --git a/src/test/ui/panic-runtime/transitive-link-a-bunch.rs b/src/test/ui/panic-runtime/transitive-link-a-bunch.rs index 622535a75aff6..0e74e300f00f0 100644 --- a/src/test/ui/panic-runtime/transitive-link-a-bunch.rs +++ b/src/test/ui/panic-runtime/transitive-link-a-bunch.rs @@ -6,7 +6,6 @@ // aux-build:wants-panic-runtime-abort.rs // aux-build:panic-runtime-lang-items.rs // error-pattern: is not compiled with this crate's panic strategy `unwind` -// ignore-wasm32-bare compiled with panic=abort by default #![no_std] #![no_main] diff --git a/src/test/ui/panic-runtime/want-unwind-got-abort.rs b/src/test/ui/panic-runtime/want-unwind-got-abort.rs index 23bfea6af15c1..b6174dc4efee8 100644 --- a/src/test/ui/panic-runtime/want-unwind-got-abort.rs +++ b/src/test/ui/panic-runtime/want-unwind-got-abort.rs @@ -3,7 +3,6 @@ // error-pattern:is not compiled with this crate's panic strategy `unwind` // aux-build:panic-runtime-abort.rs // aux-build:panic-runtime-lang-items.rs -// ignore-wasm32-bare compiled with panic=abort by default #![no_std] #![no_main] diff --git a/src/test/ui/panic-runtime/want-unwind-got-abort2.rs b/src/test/ui/panic-runtime/want-unwind-got-abort2.rs index 7a2e48e2f10a9..b54babbeffa32 100644 --- a/src/test/ui/panic-runtime/want-unwind-got-abort2.rs +++ b/src/test/ui/panic-runtime/want-unwind-got-abort2.rs @@ -4,7 +4,6 @@ // aux-build:panic-runtime-abort.rs // aux-build:wants-panic-runtime-abort.rs // aux-build:panic-runtime-lang-items.rs -// ignore-wasm32-bare compiled with panic=abort by default #![no_std] #![no_main] diff --git a/src/test/ui/panic-while-printing.rs b/src/test/ui/panic-while-printing.rs index 098f54ac23f6a..3abedf2a764e2 100644 --- a/src/test/ui/panic-while-printing.rs +++ b/src/test/ui/panic-while-printing.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-emscripten no subprocess support #![feature(internal_output_capture)] diff --git a/src/test/ui/privacy/reachable-unnameable-items.rs b/src/test/ui/privacy/reachable-unnameable-items.rs index 1c91541e64229..1babe011996b0 100644 --- a/src/test/ui/privacy/reachable-unnameable-items.rs +++ b/src/test/ui/privacy/reachable-unnameable-items.rs @@ -1,5 +1,4 @@ // run-pass -// ignore-wasm32-bare compiled with panic=abort by default // needs-unwind // aux-build:reachable-unnameable-items.rs diff --git a/src/test/ui/proc-macro/expand-with-a-macro.rs b/src/test/ui/proc-macro/expand-with-a-macro.rs index 21a4547d11e1c..042a283659517 100644 --- a/src/test/ui/proc-macro/expand-with-a-macro.rs +++ b/src/test/ui/proc-macro/expand-with-a-macro.rs @@ -2,7 +2,6 @@ // needs-unwind // aux-build:expand-with-a-macro.rs -// ignore-wasm32-bare compiled with panic=abort by default #![deny(warnings)] diff --git a/src/test/ui/rfc-1937-termination-trait/termination-trait-in-test.rs b/src/test/ui/rfc-1937-termination-trait/termination-trait-in-test.rs index cd57d9bca9429..43888cecedab3 100644 --- a/src/test/ui/rfc-1937-termination-trait/termination-trait-in-test.rs +++ b/src/test/ui/rfc-1937-termination-trait/termination-trait-in-test.rs @@ -2,7 +2,6 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default #![feature(test)] diff --git a/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs b/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs index b067994a5c6d8..f11456250d874 100644 --- a/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs +++ b/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // revisions: default mir-opt //[mir-opt] compile-flags: -Zmir-opt-level=4 diff --git a/src/test/ui/rfcs/rfc1857-drop-order.rs b/src/test/ui/rfcs/rfc1857-drop-order.rs index 243b7fb6fadec..4c4816c2fbc8d 100644 --- a/src/test/ui/rfcs/rfc1857-drop-order.rs +++ b/src/test/ui/rfcs/rfc1857-drop-order.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default #![allow(dead_code, unreachable_code)] diff --git a/src/test/ui/runtime/rt-explody-panic-payloads.rs b/src/test/ui/runtime/rt-explody-panic-payloads.rs index eb5bf8f67a849..e2221e5df8ea1 100644 --- a/src/test/ui/runtime/rt-explody-panic-payloads.rs +++ b/src/test/ui/runtime/rt-explody-panic-payloads.rs @@ -2,9 +2,6 @@ // needs-unwind // ignore-emscripten no processes // ignore-sgx no processes -// ignore-wasm32-bare no unwinding panic -// ignore-avr no unwinding panic -// ignore-nvptx64 no unwinding panic use std::env; use std::process::Command; diff --git a/src/test/ui/test-attrs/test-panic-while-printing.rs b/src/test/ui/test-attrs/test-panic-while-printing.rs index 01e460da5ab57..033c8beb475df 100644 --- a/src/test/ui/test-attrs/test-panic-while-printing.rs +++ b/src/test/ui/test-attrs/test-panic-while-printing.rs @@ -1,7 +1,6 @@ // compile-flags:--test // run-pass // needs-unwind -// ignore-emscripten no subprocess support use std::fmt; use std::fmt::{Display, Formatter}; diff --git a/src/test/ui/test-attrs/test-should-fail-good-message.rs b/src/test/ui/test-attrs/test-should-fail-good-message.rs index 3260b6938f07d..83519c4524a62 100644 --- a/src/test/ui/test-attrs/test-should-fail-good-message.rs +++ b/src/test/ui/test-attrs/test-should-fail-good-message.rs @@ -1,6 +1,5 @@ // run-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default // compile-flags: --test #[test] #[should_panic(expected = "foo")] diff --git a/src/test/ui/unwind-abis/ffi-unwind-calls-lint.rs b/src/test/ui/unwind-abis/ffi-unwind-calls-lint.rs index dadf4b1218784..9a324f00435c7 100644 --- a/src/test/ui/unwind-abis/ffi-unwind-calls-lint.rs +++ b/src/test/ui/unwind-abis/ffi-unwind-calls-lint.rs @@ -1,6 +1,5 @@ // build-pass // needs-unwind -// ignore-wasm32-bare compiled with panic=abort by default #![feature(c_unwind)] #![warn(ffi_unwind_calls)] diff --git a/src/test/ui/unwind-no-uwtable.rs b/src/test/ui/unwind-no-uwtable.rs index 0440cf488e8bb..3bc309233a7ac 100644 --- a/src/test/ui/unwind-no-uwtable.rs +++ b/src/test/ui/unwind-no-uwtable.rs @@ -1,7 +1,6 @@ // run-pass // needs-unwind // ignore-windows target requires uwtable -// ignore-wasm32-bare no proper panic=unwind support // compile-flags: -C panic=unwind -C force-unwind-tables=n use std::panic::{self, AssertUnwindSafe}; From 10f3657936e3aec6671b8135ec34e8ba69d12899 Mon Sep 17 00:00:00 2001 From: Florian Bartels Date: Thu, 22 Sep 2022 15:18:17 +0200 Subject: [PATCH 3/5] Adapt test results --- .../migrations/mir_calls_to_shims.fixed | 1 - .../migrations/mir_calls_to_shims.stderr | 2 +- src/test/ui/panic-handler/weak-lang-item.stderr | 2 +- src/test/ui/unwind-abis/ffi-unwind-calls-lint.stderr | 6 +++--- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.fixed b/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.fixed index 89f3931418dac..ff2244a8e31b9 100644 --- a/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.fixed +++ b/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.fixed @@ -3,7 +3,6 @@ #![deny(rust_2021_incompatible_closure_captures)] //~^ NOTE: the lint level is defined here -// ignore-wasm32-bare compiled with panic=abort by default #![feature(fn_traits)] #![feature(never_type)] diff --git a/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.stderr b/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.stderr index 2648b00435b31..62cfcbe95bc2c 100644 --- a/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.stderr +++ b/src/test/ui/closures/2229_closure_analysis/migrations/mir_calls_to_shims.stderr @@ -1,5 +1,5 @@ error: changes to closure capture in Rust 2021 will affect which traits the closure implements - --> $DIR/mir_calls_to_shims.rs:21:38 + --> $DIR/mir_calls_to_shims.rs:20:38 | LL | let result = panic::catch_unwind(move || { | ^^^^^^^ diff --git a/src/test/ui/panic-handler/weak-lang-item.stderr b/src/test/ui/panic-handler/weak-lang-item.stderr index 202f3309d035e..3bce1e26fe276 100644 --- a/src/test/ui/panic-handler/weak-lang-item.stderr +++ b/src/test/ui/panic-handler/weak-lang-item.stderr @@ -1,5 +1,5 @@ error[E0259]: the name `core` is defined multiple times - --> $DIR/weak-lang-item.rs:9:1 + --> $DIR/weak-lang-item.rs:8:1 | LL | extern crate core; | ^^^^^^^^^^^^^^^^^^ `core` reimported here diff --git a/src/test/ui/unwind-abis/ffi-unwind-calls-lint.stderr b/src/test/ui/unwind-abis/ffi-unwind-calls-lint.stderr index ed41cb74623cb..937a2b3dff8b6 100644 --- a/src/test/ui/unwind-abis/ffi-unwind-calls-lint.stderr +++ b/src/test/ui/unwind-abis/ffi-unwind-calls-lint.stderr @@ -1,17 +1,17 @@ warning: call to foreign function with FFI-unwind ABI - --> $DIR/ffi-unwind-calls-lint.rs:21:14 + --> $DIR/ffi-unwind-calls-lint.rs:20:14 | LL | unsafe { foo(); } | ^^^^^ call to foreign function with FFI-unwind ABI | note: the lint level is defined here - --> $DIR/ffi-unwind-calls-lint.rs:6:9 + --> $DIR/ffi-unwind-calls-lint.rs:5:9 | LL | #![warn(ffi_unwind_calls)] | ^^^^^^^^^^^^^^^^ warning: call to function pointer with FFI-unwind ABI - --> $DIR/ffi-unwind-calls-lint.rs:25:5 + --> $DIR/ffi-unwind-calls-lint.rs:24:5 | LL | ptr(); | ^^^^^ call to function pointer with FFI-unwind ABI From 0be3cc82345b22c898fb46a93e69fa7b1f6c710f Mon Sep 17 00:00:00 2001 From: Florian Bartels Date: Fri, 23 Sep 2022 09:41:12 +0200 Subject: [PATCH 4/5] ignore test cases when checking emscripten --- src/test/ui/extern-flag/empty-extern-arg.rs | 1 + src/test/ui/panic-handler/weak-lang-item.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/test/ui/extern-flag/empty-extern-arg.rs b/src/test/ui/extern-flag/empty-extern-arg.rs index a371afb128cab..2f4ae7d8e70fa 100644 --- a/src/test/ui/extern-flag/empty-extern-arg.rs +++ b/src/test/ui/extern-flag/empty-extern-arg.rs @@ -1,5 +1,6 @@ // compile-flags: --extern std= // error-pattern: extern location for std does not exist // needs-unwind since it affects the error output +// ignore-emscripten missing eh_catch_typeinfo lang item fn main() {} diff --git a/src/test/ui/panic-handler/weak-lang-item.rs b/src/test/ui/panic-handler/weak-lang-item.rs index aef5e1b2c1c7a..14a07a9ef1b55 100644 --- a/src/test/ui/panic-handler/weak-lang-item.rs +++ b/src/test/ui/panic-handler/weak-lang-item.rs @@ -2,6 +2,7 @@ // error-pattern: `#[panic_handler]` function required, but not found // error-pattern: language item required, but not found: `eh_personality` // needs-unwind since it affects the error output +// ignore-emscripten missing eh_catch_typeinfo lang item #![no_std] From ccd19c7e9ede1cdb6606045bbab19d452ca39929 Mon Sep 17 00:00:00 2001 From: Florian Bartels Date: Fri, 23 Sep 2022 10:10:07 +0200 Subject: [PATCH 5/5] Repair stderr test result to added line --- src/test/ui/panic-handler/weak-lang-item.stderr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/ui/panic-handler/weak-lang-item.stderr b/src/test/ui/panic-handler/weak-lang-item.stderr index 3bce1e26fe276..202f3309d035e 100644 --- a/src/test/ui/panic-handler/weak-lang-item.stderr +++ b/src/test/ui/panic-handler/weak-lang-item.stderr @@ -1,5 +1,5 @@ error[E0259]: the name `core` is defined multiple times - --> $DIR/weak-lang-item.rs:8:1 + --> $DIR/weak-lang-item.rs:9:1 | LL | extern crate core; | ^^^^^^^^^^^^^^^^^^ `core` reimported here