diff --git a/src/libextra/test.rs b/src/libextra/test.rs index 070108ddf2e8e..f262e6c60fb35 100644 --- a/src/libextra/test.rs +++ b/src/libextra/test.rs @@ -869,6 +869,10 @@ pub fn run_test(force_ignore: bool, do task::spawn { let mut task = task::task(); task.unlinked(); + task.name(match desc.name { + DynTestName(ref name) => SendStrOwned(name.clone()), + StaticTestName(name) => SendStrStatic(name), + }); let result_future = task.future_result(); task.spawn(testfn_cell.take()); diff --git a/src/libstd/rt/mod.rs b/src/libstd/rt/mod.rs index a247b4afb80ca..a5c0d3be044c9 100644 --- a/src/libstd/rt/mod.rs +++ b/src/libstd/rt/mod.rs @@ -68,6 +68,7 @@ use rt::sched::{Scheduler, Shutdown}; use rt::sleeper_list::SleeperList; use rt::task::UnwindResult; use rt::task::{Task, SchedTask, GreenTask, Sched}; +use send_str::SendStrStatic; use unstable::atomics::{AtomicInt, AtomicBool, SeqCst}; use unstable::sync::UnsafeArc; use vec::{OwnedVector, MutableVector, ImmutableVector}; @@ -373,6 +374,7 @@ fn run_(main: ~fn(), use_main_sched: bool) -> int { // run the main task in one of our threads. let mut main_task = ~Task::new_root(&mut scheds[0].stack_pool, None, main.take()); + main_task.name = Some(SendStrStatic("
")); main_task.death.on_exit = Some(on_exit.take()); let main_task_cell = Cell::new(main_task); @@ -410,6 +412,7 @@ fn run_(main: ~fn(), use_main_sched: bool) -> int { let home = Sched(main_sched.make_handle()); let mut main_task = ~Task::new_root_homed(&mut main_sched.stack_pool, None, home, main.take()); + main_task.name = Some(SendStrStatic("
")); main_task.death.on_exit = Some(on_exit.take()); rtdebug!("bootstrapping main_task"); diff --git a/src/test/run-fail/main-fail.rs b/src/test/run-fail/main-fail.rs new file mode 100644 index 0000000000000..ca219fe21837d --- /dev/null +++ b/src/test/run-fail/main-fail.rs @@ -0,0 +1,15 @@ +// Copyright 2013 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// error-pattern:task '
' failed at + +fn main() { + fail!() +} diff --git a/src/test/run-fail/test-fail.rs b/src/test/run-fail/test-fail.rs new file mode 100644 index 0000000000000..ddd54f00159d0 --- /dev/null +++ b/src/test/run-fail/test-fail.rs @@ -0,0 +1,18 @@ +// Copyright 2013 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// error-pattern:task 'test_foo' failed at +// compile-flags: --test + +#[test] +fn test_foo() { + fail!() +} +