test: Fix signal-exit-status on windows

This commit is contained in:
klutzy
2013-11-14 02:58:19 +09:00
parent fcf9844891
commit 09cb7ecc67
2 changed files with 5 additions and 2 deletions

View File

@@ -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.

View File

@@ -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)
} }
} }