test: Fix signal-exit-status on windows
This commit is contained in:
@@ -82,6 +82,7 @@ pub enum StdioContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Describes the result of a process after it has terminated.
|
/// Describes the result of a process after it has terminated.
|
||||||
|
/// Note that Windows have no signals, so the result is usually ExitStatus.
|
||||||
#[deriving(Eq)]
|
#[deriving(Eq)]
|
||||||
pub enum ProcessExit {
|
pub enum ProcessExit {
|
||||||
/// Normal termination with an exit status.
|
/// Normal termination with an exit status.
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
// option. this file may not be copied, modified, or distributed
|
// option. this file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
// xfail-fast
|
// xfail-fast calling itself doesn't work on check-fast
|
||||||
|
|
||||||
use std::{os, run};
|
use std::{os, run};
|
||||||
use std::io::process;
|
use std::io::process;
|
||||||
@@ -20,8 +20,10 @@ fn main() {
|
|||||||
unsafe { *(0 as *mut int) = 0; }
|
unsafe { *(0 as *mut int) = 0; }
|
||||||
} else {
|
} else {
|
||||||
let status = run::process_status(args[0], [~"signal"]);
|
let status = run::process_status(args[0], [~"signal"]);
|
||||||
|
// Windows does not have signal, so we get exit status 0xC0000028 (STATUS_BAD_STACK).
|
||||||
match status {
|
match status {
|
||||||
process::ExitSignal(_) => {},
|
process::ExitSignal(_) if cfg!(unix) => {},
|
||||||
|
process::ExitStatus(0xC0000028) if cfg!(windows) => {},
|
||||||
_ => fail!("invalid termination (was not signalled): {:?}", status)
|
_ => fail!("invalid termination (was not signalled): {:?}", status)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user