Don't make the runtime exit on illegal calls

This commit is contained in:
Flaper Fesp
2013-08-20 01:26:05 +02:00
parent c4093b4a83
commit 5fc4045d78
3 changed files with 37 additions and 17 deletions

View File

@@ -671,7 +671,39 @@ fn test_kill_rekillable_task() {
}
}
#[test] #[should_fail]
#[test]
#[ignore(cfg(windows))]
#[should_fail]
fn test_rekillable_not_nested() {
do rekillable {
// This should fail before
// receiving anything since
// this block should be nested
// into a unkillable block.
yield();
}
}
#[test]
#[ignore(cfg(windows))]
fn test_rekillable_nested_failure() {
let result = do task::try {
do unkillable {
do rekillable {
let (port,chan) = comm::stream();
do task::spawn { chan.send(()); fail!(); }
port.recv(); // wait for child to exist
port.recv(); // block forever, expect to get killed.
}
}
};
assert!(result.is_err());
}
#[test] #[should_fail] #[ignore(cfg(windows))]
fn test_cant_dup_task_builder() {
let mut builder = task();
builder.unlinked();
@@ -1239,20 +1271,6 @@ fn test_unkillable_nested() {
po.recv();
}
#[ignore(reason = "linked failure")]
#[test]
#[ignore(cfg(windows))]
#[should_fail]
fn test_rekillable_not_nested() {
do rekillable {
// This should fail before
// receiving anything since
// this block should be nested
// into a unkillable block.
yield();
}
}
#[test]
fn test_child_doesnt_ref_parent() {
// If the child refcounts the parent task, this will stack overflow when