1
Fork 0

auto merge of #8823 : huonw/rust/6233, r=brson

Fixes #7335.
This commit is contained in:
bors 2013-08-29 04:50:43 -07:00
commit 33d6572036
2 changed files with 34 additions and 4 deletions

View file

@ -203,7 +203,7 @@ The FILTER is matched against the name of all tests to run, and if any tests
have a substring match, only those tests are run. have a substring match, only those tests are run.
By default, all tests are run in parallel. This can be altered with the By default, all tests are run in parallel. This can be altered with the
RUST_THREADS environment variable when running tests (set it to 1). RUST_TEST_TASKS environment variable when running tests (set it to 1).
Test Attributes: Test Attributes:
@ -740,9 +740,20 @@ static SCHED_OVERCOMMIT : uint = 4u;
fn get_concurrency() -> uint { fn get_concurrency() -> uint {
use std::rt; use std::rt;
let threads = rt::util::default_sched_threads(); match os::getenv("RUST_TEST_TASKS") {
if threads == 1 { 1 } Some(s) => {
else { threads * SCHED_OVERCOMMIT } let opt_n: Option<uint> = FromStr::from_str(s);
match opt_n {
Some(n) if n > 0 => n,
_ => fail!("RUST_TEST_TASKS is `%s`, should be a non-negative integer.", s)
}
}
None => {
let threads = rt::util::default_sched_threads();
if threads == 1 { 1 }
else { threads * SCHED_OVERCOMMIT }
}
}
} }
pub fn filter_tests( pub fn filter_tests(

View file

@ -0,0 +1,19 @@
// 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 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// This checks that RUST_TEST_TASKS not being 1, 2, ... is detected
// properly.
// error-pattern:should be a non-negative integer
// compile-flags: --test
// exec-env:RUST_TEST_TASKS=foo
#[test]
fn do_nothing() {}