aboutsummaryrefslogtreecommitdiff
path: root/test/test/DottyBytecodeTests.scala
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-05-17 11:01:08 +0200
committerFelix Mulder <felix.mulder@gmail.com>2016-05-17 11:01:08 +0200
commiteaf2520b63fcc9fe65cf02d88c96849c4caf8177 (patch)
tree6df23f47aded46a5cb2b99011fde78cbd9a0712c /test/test/DottyBytecodeTests.scala
parent134ad7a6a172fec97dc438dd0aff3766a0f0944a (diff)
downloaddotty-eaf2520b63fcc9fe65cf02d88c96849c4caf8177.tar.gz
dotty-eaf2520b63fcc9fe65cf02d88c96849c4caf8177.tar.bz2
dotty-eaf2520b63fcc9fe65cf02d88c96849c4caf8177.zip
Add bytecode checking infrastructure
Diffstat (limited to 'test/test/DottyBytecodeTests.scala')
-rw-r--r--test/test/DottyBytecodeTests.scala25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/test/DottyBytecodeTests.scala b/test/test/DottyBytecodeTests.scala
new file mode 100644
index 000000000..3b8308b0a
--- /dev/null
+++ b/test/test/DottyBytecodeTests.scala
@@ -0,0 +1,25 @@
+package test
+
+import org.junit.Assert._
+import org.junit.Test
+
+class TestBCode extends DottyBytecodeTest {
+ @Test def nullChecks = {
+ val source = """
+ |class Foo {
+ | def foo(x: AnyRef): Int = {
+ | val bool = x == null
+ | if (x != null) 1
+ | else 0
+ | }
+ |}
+ """.stripMargin
+
+ checkBCode(source) { file =>
+ val clsIn = file.lookupName("Foo.class", directory = false).input
+ val clsNode = loadClassNode(clsIn)
+ val methodNode = getMethod(clsNode, "foo")
+ correctNumberOfNullChecks(2, methodNode.instructions)
+ }
+ }
+}