summaryrefslogtreecommitdiff
path: root/test/pending/jvm/t7006/Test.scala
blob: 7b4a8c45fb32e4a9f97ed74c8ed445464fa03920 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import scala.tools.partest.BytecodeTest
import scala.tools.asm
import asm.tree.InsnList
import scala.collection.JavaConverters._

object Test extends BytecodeTest {
  def show: Unit = {
    val classNode = loadClassNode("Foo_1")
    val methodNode = getMethod(classNode, "foo")
    val nopCount  = count(methodNode.instructions, asm.Opcodes.NOP)
    val gotoCount = count(methodNode.instructions, asm.Opcodes.GOTO)
    assert(nopCount  == 0, s"NOPs  expected: 0, actual: $nopCount")
    assert(gotoCount == 1, s"GOTOs expected: 1, actual: $gotoCount")
  }

  def count(insnList: InsnList, opcode: Int): Int = {
    def isNop(node: asm.tree.AbstractInsnNode): Boolean =
      (node.getOpcode == opcode)
    insnList.iterator.asScala.count(isNop)
  }
}