summaryrefslogtreecommitdiff
path: root/test/files/scalacheck/parallel-collections/pc.scala
blob: a3c1df4054dc40cb19ce82ebdd7ee60ec372837f (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
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
    )
  }
  */
}