aboutsummaryrefslogtreecommitdiff
path: root/tests/disabled/long-running/t3242.scala
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-04-13 17:38:34 +0200
committerFelix Mulder <felix.mulder@gmail.com>2017-04-13 17:57:14 +0200
commit623a1d43155823cc7506c3223405bb68f459fd50 (patch)
tree7fb85efa08e5b2afed7499eddcde73927c081a45 /tests/disabled/long-running/t3242.scala
parent0fe56ea73e6775a315f54772dc6bfb40815c7c98 (diff)
downloaddotty-623a1d43155823cc7506c3223405bb68f459fd50.tar.gz
dotty-623a1d43155823cc7506c3223405bb68f459fd50.tar.bz2
dotty-623a1d43155823cc7506c3223405bb68f459fd50.zip
Fix #2220: disable benchmarks, set run timeout to 30 seconds
Diffstat (limited to 'tests/disabled/long-running/t3242.scala')
-rw-r--r--tests/disabled/long-running/t3242.scala52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/disabled/long-running/t3242.scala b/tests/disabled/long-running/t3242.scala
new file mode 100644
index 000000000..6a8ecd7a2
--- /dev/null
+++ b/tests/disabled/long-running/t3242.scala
@@ -0,0 +1,52 @@
+
+import scala.language.{ higherKinds }
+
+object Test {
+
+ def benchmarkA(num: Int): Unit = {
+
+ type A = Int
+
+ def updateM[M[_]](ms: M[A], update: (M[A], A)=>M[A]): M[A] = {
+ var is = ms
+ for (i <- 0 until num) is = update(is, i)
+ is
+ }
+
+ //
+ def vectorAppend: Vector[A] = updateM[Vector](Vector(), (as, a)=>{
+ val v = (as :+ a)
+ //println("==>append: i: "+i1+", v: "+v)
+ v
+ })
+ // this will crash, Vector bug!
+ def vectorRemove(vec: Vector[A]): Vector[A] = updateM[Vector](vec, (as, a)=>{
+ val v = (as filterNot{ _ == a})
+ //val v = (is filter{ _ != i})
+ //println("==>remove: i: "+a)
+ v
+ })
+
+ val ct = vectorAppend
+ println(" append [num: "+num+"] vec")
+ vectorRemove(ct)
+ println(" remove [num: "+num+"] vec")
+ } // BenchmarkA
+
+ def comparison(num: Int): Unit = {
+ for (i <- 1 until 5) benchmarkA(num*i)
+ println(">> comparison done, num: "+num);
+ }
+
+ def main(args: Array[String]): Unit = {
+ try {
+ //createBenchmarkA(23).testRun
+
+ comparison(200) // OK
+ comparison(2000) // this will crach
+
+ } catch {
+ case e: Exception => e.printStackTrace()
+ }
+ }
+}