]> git.lizzy.rs Git - rust.git/blob - src/test/ui/panic-runtime/abort.rs
Rollup merge of #97317 - GuillaumeGomez:gui-settings-text-click, r=jsha
[rust.git] / src / test / ui / panic-runtime / abort.rs
1 // run-pass
2 #![allow(unused_variables)]
3 // compile-flags:-C panic=abort
4 // no-prefer-dynamic
5 // ignore-emscripten no processes
6 // ignore-sgx no processes
7 // ignore-macos
8
9 use std::process::Command;
10 use std::env;
11
12 struct Bomb;
13
14 impl Drop for Bomb {
15     fn drop(&mut self) {
16         std::process::exit(0);
17     }
18 }
19
20 fn main() {
21     let mut args = env::args_os();
22     let me = args.next().unwrap();
23
24     if let Some(s) = args.next() {
25         if &*s == "foo" {
26
27             let _bomb = Bomb;
28
29             panic!("try to catch me");
30         }
31     }
32
33     let mut cmd = Command::new(env::args_os().next().unwrap());
34     cmd.arg("foo");
35
36     // ARMv6 hanges while printing the backtrace, see #41004
37     if cfg!(target_arch = "arm") && cfg!(target_env = "gnu") {
38         cmd.env("RUST_BACKTRACE", "0");
39     }
40
41     let s = cmd.status();
42     assert!(s.unwrap().code() != Some(0));
43 }