summaryrefslogtreecommitdiff
path: root/test/junit/scala/tools/nsc/backend/jvm/opt/UnreachableCodeTest.scala
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@gmail.com>2016-02-16 12:33:45 +0100
committerLukas Rytz <lukas.rytz@gmail.com>2016-02-16 12:33:45 +0100
commit60bcaf19f90f76722658e2b5b2bb3d8a3009375c (patch)
tree592f797cffd35ef5e1dcb38c27ad25efaa74d467 /test/junit/scala/tools/nsc/backend/jvm/opt/UnreachableCodeTest.scala
parent97d8e5a2fd24f83e1adb17a11c15de2d8d9390bf (diff)
downloadscala-60bcaf19f90f76722658e2b5b2bb3d8a3009375c.tar.gz
scala-60bcaf19f90f76722658e2b5b2bb3d8a3009375c.tar.bz2
scala-60bcaf19f90f76722658e2b5b2bb3d8a3009375c.zip
Clean up some bytecode tests
Diffstat (limited to 'test/junit/scala/tools/nsc/backend/jvm/opt/UnreachableCodeTest.scala')
-rw-r--r--test/junit/scala/tools/nsc/backend/jvm/opt/UnreachableCodeTest.scala18
1 files changed, 8 insertions, 10 deletions
diff --git a/test/junit/scala/tools/nsc/backend/jvm/opt/UnreachableCodeTest.scala b/test/junit/scala/tools/nsc/backend/jvm/opt/UnreachableCodeTest.scala
index 62ee09e9de..9634517e28 100644
--- a/test/junit/scala/tools/nsc/backend/jvm/opt/UnreachableCodeTest.scala
+++ b/test/junit/scala/tools/nsc/backend/jvm/opt/UnreachableCodeTest.scala
@@ -232,35 +232,33 @@ class UnreachableCodeTest extends ClearAfterClass {
""".stripMargin
val List(c) = compileClasses(noOptCompiler)(code)
- assertEquals(getSingleMethod(c, "nl").instructions.summary, List(ACONST_NULL, ARETURN))
+ assertSameSummary(getSingleMethod(c, "nl"), List(ACONST_NULL, ARETURN))
- assertEquals(getSingleMethod(c, "nt").instructions.summary, List(
+ assertSameSummary(getSingleMethod(c, "nt"), List(
NEW, DUP, LDC, "<init>", ATHROW))
- assertEquals(getSingleMethod(c, "t1").instructions.summary, List(
+ assertSameSummary(getSingleMethod(c, "t1"), List(
ALOAD, ACONST_NULL, "cons", RETURN))
// GenBCode introduces POP; ACONST_NULL after loading an expression of type scala.runtime.Null$,
// see comment in BCodeBodyBuilder.adapt
- assertEquals(getSingleMethod(c, "t2").instructions.summary, List(
+ assertSameSummary(getSingleMethod(c, "t2"), List(
ALOAD, ALOAD, "nl", POP, ACONST_NULL, "cons", RETURN))
// the bytecode generated by GenBCode is ... ATHROW; INVOKEVIRTUAL C.cons; RETURN
// the ASM classfile writer creates a new basic block (creates a label) right after the ATHROW
// and replaces all instructions by NOP*; ATHROW, see comment in BCodeBodyBuilder.adapt
// NOTE: DCE is enabled by default and gets rid of the redundant code (tested below)
- assertEquals(getSingleMethod(c, "t3").instructions.summary, List(
+ assertSameSummary(getSingleMethod(c, "t3"), List(
ALOAD, NEW, DUP, LDC, "<init>", ATHROW, NOP, NOP, NOP, ATHROW))
// GenBCode introduces an ATHROW after the invocation of C.nt, see BCodeBodyBuilder.adapt
// NOTE: DCE is enabled by default and gets rid of the redundant code (tested below)
- assertEquals(getSingleMethod(c, "t4").instructions.summary, List(
+ assertSameSummary(getSingleMethod(c, "t4"), List(
ALOAD, ALOAD, "nt", ATHROW, NOP, NOP, NOP, ATHROW))
val List(cDCE) = compileClasses(dceCompiler)(code)
- assertEquals(getSingleMethod(cDCE, "t3").instructions.summary, List(
- ALOAD, NEW, DUP, LDC, "<init>", ATHROW))
- assertEquals(getSingleMethod(cDCE, "t4").instructions.summary, List(
- ALOAD, ALOAD, "nt", ATHROW))
+ assertSameSummary(getSingleMethod(cDCE, "t3"), List(ALOAD, NEW, DUP, LDC, "<init>", ATHROW))
+ assertSameSummary(getSingleMethod(cDCE, "t4"), List(ALOAD, ALOAD, "nt", ATHROW))
}
}