From 1d908106cf51279291c41fea455595ab6934d984 Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Fri, 10 Jan 2014 10:48:57 +0100 Subject: SI-8131 Move test for reflection thread safety to pending. Examples noted in SI-8131 show that race conditions still abound. This has been noted twice during pull request validation. --- test/files/run/reflection-sync-potpourri.scala | 32 -------------------------- 1 file changed, 32 deletions(-) delete mode 100644 test/files/run/reflection-sync-potpourri.scala (limited to 'test/files/run/reflection-sync-potpourri.scala') diff --git a/test/files/run/reflection-sync-potpourri.scala b/test/files/run/reflection-sync-potpourri.scala deleted file mode 100644 index 0ad5f2ab66..0000000000 --- a/test/files/run/reflection-sync-potpourri.scala +++ /dev/null @@ -1,32 +0,0 @@ -import scala.reflect.runtime.universe._ - -// this test checks that under heavily multithreaded conditions: -// 1) scala.reflect.runtime.universe, its rootMirror and definitions are initialized correctly -// 2) symbols are correctly materialized into PackageScopes (no dupes) -// 3) unpickling works okay even we unpickle the same symbol a lot of times - -object Test extends App { - def foo[T: TypeTag](x: T) = typeOf[T].toString - val n = 1000 - val rng = new scala.util.Random() - val types = List( - () => typeOf[java.lang.reflect.Method], - () => typeOf[java.lang.annotation.Annotation], - () => typeOf[scala.io.BufferedSource], - () => typeOf[scala.io.Codec]) - val perms = types.permutations.toList - def force(lazytpe: () => Type): String = { - lazytpe().typeSymbol.typeSignature - lazytpe().toString - } - val diceRolls = List.fill(n)(rng.nextInt(perms.length)) - val threads = (1 to n) map (i => new Thread(s"Reflector-$i") { - override def run(): Unit = { - val s1 = foo("42") - val s2 = perms(diceRolls(i - 1)).map(x => force(x)).sorted.mkString(", ") - assert(s1 == "java.lang.String") - assert(s2 == "java.lang.annotation.Annotation, java.lang.reflect.Method, scala.io.BufferedSource, scala.io.Codec") - } - }) - threads foreach (_.start) -} \ No newline at end of file -- cgit v1.2.3