1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
/*
* scalac: -deprecation
* scalacheck: -workers 1 -minSize 0 -maxSize 4000 -minSuccessfulTests 5
*/
import org.scalacheck._
import scala.collection.parallel._
// package here to be able access the package-private implementation and shutdown the pool
package scala {
class ParCollProperties extends Properties("Parallel collections") {
def includeAllTestsWith(support: TaskSupport) {
// parallel arrays with default task support
include(new mutable.IntParallelArrayCheck(support))
// parallel ranges
include(new immutable.ParallelRangeCheck(support))
// parallel immutable hash maps (tries)
include(new immutable.IntIntParallelHashMapCheck(support))
// parallel immutable hash sets (tries)
include(new immutable.IntParallelHashSetCheck(support))
// parallel mutable hash maps (tables)
include(new mutable.IntIntParallelHashMapCheck(support))
// parallel ctrie
include(new mutable.IntIntParallelConcurrentTrieMapCheck(support))
// parallel mutable hash sets (tables)
include(new mutable.IntParallelHashSetCheck(support))
// parallel vectors
include(new immutable.IntParallelVectorCheck(support))
}
includeAllTestsWith(defaultTaskSupport)
val ec = scala.concurrent.ExecutionContext.fromExecutorService(java.util.concurrent.Executors.newFixedThreadPool(5))
val ectasks = new collection.parallel.ExecutionContextTaskSupport(ec)
includeAllTestsWith(ectasks)
// no post test hooks in scalacheck, so cannot do:
// ec.shutdown()
}
}
object Test extends scala.ParCollProperties {
/*
def main(args: Array[String]) {
val pc = new ParCollProperties
org.scalacheck.Test.checkProperties(
org.scalacheck.Test.Params(
rng = new java.util.Random(5134L),
testCallback = new ConsoleReporter(0),
workers = 1,
minSize = 0,
maxSize = 4000,
minSuccessfulTests = 5
),
pc
)
}
*/
}
|