about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/test.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/libstd/test.rs b/src/libstd/test.rs
index 5fd4d59f74d..003949a9180 100644
--- a/src/libstd/test.rs
+++ b/src/libstd/test.rs
@@ -214,13 +214,22 @@ fn run_tests(opts: test_opts, tests: [test_desc],
 
     while done_idx < total {
         while wait_idx < concurrency && run_idx < total {
-            run_test(vec::shift(filtered_tests), ch);
+            let test = vec::shift(filtered_tests);
+            if concurrency == 1u {
+                // We are doing one test at a time so we can print the name
+                // of the test before we run it. Useful for debugging tests
+                // that hang forever.
+                callback(te_wait(test));
+            }
+            run_test(test, ch);
             wait_idx += 1u;
             run_idx += 1u;
         }
 
         let (test, result) = comm::recv(p);
-        callback(te_wait(test));
+        if concurrency != 1u {
+            callback(te_wait(test));
+        }
         callback(te_result(test, result));
         wait_idx -= 1u;
         done_idx += 1u;