diff options
Diffstat (limited to 'src/test/java/org')
-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()); + } } |