summaryrefslogtreecommitdiff
path: root/test/scalacheck/scala/pc.scala
blob: 10d0643be846259152217c60673a9b703ee609b4 (plain) (blame)
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
// package here to be able access the package-private implementation and shutdown the pool
package scala

import org.scalacheck._
import scala.collection.parallel._

class ParCollProperties extends Properties("Parallel collections") {

  def includeAllTestsWith(support: TaskSupport, descriptor: String) {
    // parallel arrays with default task support
    include(new mutable.IntParallelArrayCheck(support, descriptor) { })

    // parallel ranges
    include(new immutable.ParallelRangeCheck(support, descriptor) { })

    // parallel immutable hash maps (tries)
    include(new immutable.IntIntParallelHashMapCheck(support, descriptor) { })

    // parallel immutable hash sets (tries)
    include(new immutable.IntParallelHashSetCheck(support, descriptor) { })

    // parallel mutable hash maps (tables)
    include(new mutable.IntIntParallelHashMapCheck(support, descriptor) { })

    // parallel ctrie
    include(new mutable.IntIntParallelConcurrentTrieMapCheck(support, descriptor) { })

    // parallel mutable hash sets (tables)
    include(new mutable.IntParallelHashSetCheck(support, descriptor) { })

    // parallel vectors
    include(new immutable.IntParallelVectorCheck(support, descriptor) { })
  }

  includeAllTestsWith(defaultTaskSupport, "defaultTaskSupport")

  val ec = scala.concurrent.ExecutionContext.fromExecutorService(java.util.concurrent.Executors.newFixedThreadPool(5))
  val ectasks = new collection.parallel.ExecutionContextTaskSupport(ec)
  includeAllTestsWith(ectasks, "ectasks")

  // no post test hooks in scalacheck, so cannot do:
  // ec.shutdown()

}

/*
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
  )
}
*/