diff options
author | Gary D. Gregory <ggregory@apache.org> | 2017-10-16 20:32:13 +0000 |
---|---|---|
committer | Gary D. Gregory <ggregory@apache.org> | 2017-10-16 20:32:13 +0000 |
commit | 0d33e877b1642b1bb630415304b8d01de2ce427e (patch) | |
tree | 1fc26ac758bf154159c1dfd995b91175613e1fc7 /src/test/java/org/apache/bcel | |
parent | 90e94269f7d64684ac7dc3fcbee055eea866d370 (diff) | |
download | apache-commons-bcel-0d33e877b1642b1bb630415304b8d01de2ce427e.tar.gz |
[BCEL-295] Fix local variable live range length; add test case.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/bcel/trunk@1812323 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/test/java/org/apache/bcel')
-rw-r--r-- | src/test/java/org/apache/bcel/PLSETestCase.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/test/java/org/apache/bcel/PLSETestCase.java b/src/test/java/org/apache/bcel/PLSETestCase.java index f3c00e23..71f01fb9 100644 --- a/src/test/java/org/apache/bcel/PLSETestCase.java +++ b/src/test/java/org/apache/bcel/PLSETestCase.java @@ -18,7 +18,9 @@ package org.apache.bcel; +import org.apache.bcel.classfile.ClassParser; import org.apache.bcel.classfile.JavaClass; +import org.apache.bcel.classfile.LocalVariable; import org.apache.bcel.classfile.LocalVariableTable; import org.apache.bcel.classfile.Method; import org.apache.bcel.generic.ClassGen; @@ -28,6 +30,7 @@ import org.apache.bcel.generic.InstructionList; import org.apache.bcel.generic.InvokeInstruction; import org.apache.bcel.generic.MethodGen; import org.apache.bcel.generic.Type; +import java.io.FileInputStream; public class PLSETestCase extends AbstractTestCase { @@ -86,4 +89,23 @@ public class PLSETestCase extends AbstractTestCase final String cn = ii.getClassName(pool); assertEquals("[Lorg.apache.bcel.data.PLSETestEnum;", cn); } + + /** + * BCEL-295: + */ + public void testB295() throws Exception + { + final JavaClass clazz = getTestClass(PACKAGE_BASE_NAME+".data.PLSETestClass2"); + final ClassGen cg = new ClassGen(clazz); + final ConstantPoolGen pool = cg.getConstantPool(); + final Method m = cg.getMethodAt(1); // 'main' + final LocalVariableTable lvt = m.getLocalVariableTable(); + final LocalVariable lv = lvt.getLocalVariable(2, 4); // 'i' + //System.out.println(lv); + final MethodGen mg = new MethodGen(m, cg.getClassName(), pool); + final LocalVariableTable new_lvt = mg.getLocalVariableTable(mg.getConstantPool()); + final LocalVariable new_lv = new_lvt.getLocalVariable(2, 4); // 'i' + //System.out.println(new_lv); + assertEquals("live range length", lv.getLength(), new_lv.getLength()); + } } |