KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > hansel > probes > CompBranchProbe


1 package org.hansel.probes;
2
3 import org.hansel.ProbeData;
4
5 import org.hansel.stack.HanselValue;
6 import org.objectweb.asm.MethodVisitor;
7 import org.objectweb.asm.Opcodes;
8
9 /**
10  * A probe for a comparing conditional branch. For decision coverage both possible
11  * conditions for the branch have to be encountered.
12  *
13  * @author Niklas Mehner.
14  */

15 public abstract class CompBranchProbe extends BranchProbe {
16
17     public CompBranchProbe(ProbeData pd,
18                            HanselValue value) {
19         super(pd, value);
20     }
21
22     protected abstract boolean isTrue(int n, int m);
23
24     public void hit(int n, int m) {
25         cover(isTrue(n, m));
26     }
27     
28     public void insertProbeCode(MethodVisitor cv) {
29         cv.visitInsn(Opcodes.DUP2);
30         cv.visitLdcInsn(new Integer JavaDoc(getID()));
31         cv.visitMethodInsn(Opcodes.INVOKESTATIC, HIT_CLASS, "hitBranch",
32         "(III)V");
33     }
34 }
35
Popular Tags