diff options
| author | Graydon Hoare <graydon@mozilla.com> | 2013-08-19 15:08:47 -0700 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2013-08-19 15:09:20 -0700 |
| commit | 610b2b58ecfcce10dd448c11941de956206d1bd1 (patch) | |
| tree | 9b1a1d314396f799e510d6fe94cfde44d87612cf | |
| parent | 19f4ae1415e2baa4b9d756b7af8a0d5779cfca9b (diff) | |
| download | rust-610b2b58ecfcce10dd448c11941de956206d1bd1.tar.gz rust-610b2b58ecfcce10dd448c11941de956206d1bd1.zip | |
compiletest: do not run tests in sub-threads if on valgrind.
| -rw-r--r-- | src/compiletest/runtest.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/compiletest/runtest.rs b/src/compiletest/runtest.rs index 2346aba3bcb..a31efe26c1a 100644 --- a/src/compiletest/runtest.rs +++ b/src/compiletest/runtest.rs @@ -26,6 +26,7 @@ use std::os; use std::str; use std::task::{spawn_sched, SingleThreaded}; use std::vec; +use std::unstable::running_on_valgrind; use extra::test::MetricMap; @@ -38,11 +39,21 @@ pub fn run(config: config, testfile: ~str) { // that destroys parallelism if we let normal schedulers block. // It should be possible to remove this spawn once std::run is // rewritten to be non-blocking. - do spawn_sched(SingleThreaded) { + // + // We do _not_ create another thread if we're running on V because + // it serializes all threads anyways. + if running_on_valgrind() { let config = config.take(); let testfile = testfile.take(); let mut _mm = MetricMap::new(); run_metrics(config, testfile, &mut _mm); + } else { + do spawn_sched(SingleThreaded) { + let config = config.take(); + let testfile = testfile.take(); + let mut _mm = MetricMap::new(); + run_metrics(config, testfile, &mut _mm); + } } } |
