made fork-parallel scripted test a little more robust

This commit is contained in:
Bruno Bieth 2013-11-14 15:42:15 +01:00 committed by Mark Harrah
parent 5a88bd2302
commit e9a54600f5
1 changed files with 10 additions and 2 deletions

View File

@ -11,8 +11,16 @@ object ForkParallelTest extends Build {
libraryDependencies += "com.novocode" % "junit-interface" % "0.10" % "test",
fork in Test := true,
check := {
if( ! (file("max-concurrent-tests_3").exists() || file("max-concurrent-tests_4").exists() )) {
sys.error("Forked tests were not executed in parallel!")
val nbProc = java.lang.Runtime.getRuntime().availableProcessors()
if( nbProc < 4 ) {
streams.value.log.warn("With fewer than 4 processors this test is meaningless")
} else {
// we've got at least 4 processors, we'll check the upper end but also 3 and 4 as the upper might not
// be reached if the system is under heavy load.
if( ! (file("max-concurrent-tests_3").exists() || file("max-concurrent-tests_4").exists() ||
file("max-concurrent-tests_" + (nbProc -1)).exists() || file("max-concurrent-tests_" + nbProc).exists())) {
sys.error("Forked tests were not executed in parallel!")
}
}
}
))