about summary refs log tree commit diff
path: root/src/test/ui/abi/segfault-no-out-of-stack.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/abi/segfault-no-out-of-stack.rs')
-rw-r--r--src/test/ui/abi/segfault-no-out-of-stack.rs48
1 files changed, 0 insertions, 48 deletions
diff --git a/src/test/ui/abi/segfault-no-out-of-stack.rs b/src/test/ui/abi/segfault-no-out-of-stack.rs
deleted file mode 100644
index ab2b3089485..00000000000
--- a/src/test/ui/abi/segfault-no-out-of-stack.rs
+++ /dev/null
@@ -1,48 +0,0 @@
-// run-pass
-
-#![allow(unused_imports)]
-// ignore-emscripten can't run commands
-// ignore-sgx no processes
-// ignore-fuchsia must translate zircon signal to SIGSEGV/SIGBUS, FIXME (#58590)
-#![feature(rustc_private)]
-
-extern crate libc;
-
-use std::env;
-use std::process::{Command, ExitStatus};
-
-#[link(name = "rust_test_helpers", kind = "static")]
-extern "C" {
-    fn rust_get_null_ptr() -> *mut ::libc::c_char;
-}
-
-#[cfg(unix)]
-fn check_status(status: std::process::ExitStatus) {
-    use libc;
-    use std::os::unix::process::ExitStatusExt;
-
-    assert!(status.signal() == Some(libc::SIGSEGV) || status.signal() == Some(libc::SIGBUS));
-}
-
-#[cfg(not(unix))]
-fn check_status(status: std::process::ExitStatus) {
-    assert!(!status.success());
-}
-
-fn main() {
-    let args: Vec<String> = env::args().collect();
-    if args.len() > 1 && args[1] == "segfault" {
-        unsafe {
-            *rust_get_null_ptr() = 1;
-        }; // trigger a segfault
-    } else {
-        let segfault = Command::new(&args[0]).arg("segfault").output().unwrap();
-        let stderr = String::from_utf8_lossy(&segfault.stderr);
-        let stdout = String::from_utf8_lossy(&segfault.stdout);
-        println!("stdout: {}", stdout);
-        println!("stderr: {}", stderr);
-        println!("status: {}", segfault.status);
-        check_status(segfault.status);
-        assert!(!stderr.contains("has overflowed its stack"));
-    }
-}