From 610b2b58ecfcce10dd448c11941de956206d1bd1 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Mon, 19 Aug 2013 15:08:47 -0700 Subject: [PATCH] compiletest: do not run tests in sub-threads if on valgrind. --- src/compiletest/runtest.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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); + } } }