summaryrefslogtreecommitdiff
path: root/test/junit/scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2016-05-16 16:04:17 +1000
committerLukas Rytz <lukas.rytz@typesafe.com>2016-05-16 08:04:17 +0200
commiteac1af364e99a6712c5e54e257216027b2ab127e (patch)
tree7913340cff137466511c3d6ca4066fdd55d4aeb9 /test/junit/scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala
parent9e30bee0c9363f6cf36a7b65ddbaaa225b57d6a9 (diff)
downloadscala-eac1af364e99a6712c5e54e257216027b2ab127e.tar.gz
scala-eac1af364e99a6712c5e54e257216027b2ab127e.tar.bz2
scala-eac1af364e99a6712c5e54e257216027b2ab127e.zip
Reduce boilerplate in compiler JUnit tests (#5158)
Many JUnit tests share a compiler instance between all test cases in a class to reduce overhead. This commit refactors the mechanism to reduce the boilerplate. In the new scheme: - Using the `@ClassRule` hook in JUnit, we create a per-class map for each test class. - Per-class values are registered from the test class itself by calling `cached("someKey", () => mkExpensiveThing)` - At the end of the test, the entries in this map are `close()`-ed (if they implement `Closable`), and are released for garbage collection.)
Diffstat (limited to 'test/junit/scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala')
-rw-r--r--test/junit/scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala8
1 files changed, 1 insertions, 7 deletions
diff --git a/test/junit/scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala b/test/junit/scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala
index 930f7f2f10..09675870f0 100644
--- a/test/junit/scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala
+++ b/test/junit/scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala
@@ -21,15 +21,9 @@ import BytecodeUtils._
import scala.collection.JavaConverters._
import scala.tools.testing.ClearAfterClass
-object AnalyzerTest extends ClearAfterClass.Clearable {
- var noOptCompiler = newCompiler(extraArgs = "-Yopt:l:none")
- def clear(): Unit = { noOptCompiler = null }
-}
-
@RunWith(classOf[JUnit4])
class AnalyzerTest extends ClearAfterClass {
- ClearAfterClass.stateToClear = AnalyzerTest
- val noOptCompiler = AnalyzerTest.noOptCompiler
+ val noOptCompiler = cached("compiler", () => newCompiler(extraArgs = "-Yopt:l:none"))
@Test
def aliasingOfPrimitives(): Unit = {