aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/apache/bcel/PLSETestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org/apache/bcel/PLSETestCase.java')
-rw-r--r--src/test/java/org/apache/bcel/PLSETestCase.java22
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());
+ }
}