From c9c21fdb1baf21775374bfc3a2c87fd1535f8a42 Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Fri, 28 Nov 2014 13:26:05 +1000 Subject: SI-8946 Disable flaky test for reflection memory leak It passed in PR validation but failed in a later run. There are some clever ideas bouncing around to make it stable, but in the meantime I'll shunt it into disabled. --- test/disabled/run/t8946.scala | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 test/disabled/run/t8946.scala (limited to 'test/disabled') diff --git a/test/disabled/run/t8946.scala b/test/disabled/run/t8946.scala new file mode 100644 index 0000000000..a248a20501 --- /dev/null +++ b/test/disabled/run/t8946.scala @@ -0,0 +1,29 @@ +// Tests to assert that references to threads are not strongly held when scala-reflection is used inside of them. +object Test { + import scala.ref.WeakReference + + def forceGc() = { + var obj = new Object + val ref = new WeakReference(obj) + obj = null; + while(ref.get.nonEmpty) + Array.ofDim[Byte](16 * 1024 * 1024) + } + + def main(args: Array[String]): Unit = { + val threads = for (i <- (1 to 16)) yield { + val t = new Thread { + override def run(): Unit = { + import reflect.runtime.universe._ + typeOf[List[String]] <:< typeOf[Seq[_]] + } + } + t.start() + t.join() + WeakReference(t) + } + forceGc() + val nonGCdThreads = threads.filter(_.get.nonEmpty).length + assert(nonGCdThreads == 0, s"${nonGCdThreads} threads were retained; expected 0.") + } +} -- cgit v1.2.3