blob: 7b4a8c45fb32e4a9f97ed74c8ed445464fa03920 (
plain) (
tree)
|
|
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)
}
}
|