diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2016-05-16 16:04:17 +1000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@typesafe.com> | 2016-05-16 08:04:17 +0200 |
commit | eac1af364e99a6712c5e54e257216027b2ab127e (patch) | |
tree | 7913340cff137466511c3d6ca4066fdd55d4aeb9 /test/junit/scala/tools/nsc/backend/jvm/opt/AnalyzerTest.scala | |
parent | 9e30bee0c9363f6cf36a7b65ddbaaa225b57d6a9 (diff) | |
download | scala-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.scala | 8 |
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 = { |