aboutsummaryrefslogtreecommitdiffstats
path: root/bcel-builder/testsrc
diff options
context:
space:
mode:
authorAndy Clement <aclement@pivotal.io>2018-02-07 12:38:52 -0800
committerAndy Clement <aclement@pivotal.io>2018-02-07 12:38:52 -0800
commit19cfe0e1caa611180f3513400c31507ad924cae6 (patch)
tree3e447fce9bab7f87a4451659b781ac6beadb8268 /bcel-builder/testsrc
parent031b2ed1aae5d49a3b9a393a3d0dcc01b2bbe34a (diff)
downloadaspectj-19cfe0e1caa611180f3513400c31507ad924cae6.tar.gz
aspectj-19cfe0e1caa611180f3513400c31507ad924cae6.zip
Add missing cases to bcel constantToString
Diffstat (limited to 'bcel-builder/testsrc')
-rw-r--r--bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/AllTests.java1
-rw-r--r--bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/ConstantPoolToStringTest.java54
2 files changed, 55 insertions, 0 deletions
diff --git a/bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/AllTests.java b/bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/AllTests.java
index b12094ac2..440a3ee17 100644
--- a/bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/AllTests.java
+++ b/bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/AllTests.java
@@ -25,6 +25,7 @@ public class AllTests {
suite.addTestSuite(Fundamentals.class);
suite.addTestSuite(RuntimeVisibleParameterAnnotationAttributeTest.class);
suite.addTestSuite(AnnotationDefaultAttributeTest.class);
+ suite.addTestSuite(ConstantPoolToStringTest.class);
suite.addTestSuite(EnclosingMethodAttributeTest.class);
suite.addTestSuite(MethodAnnotationsTest.class);
suite.addTestSuite(RuntimeVisibleAnnotationAttributeTest.class);
diff --git a/bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/ConstantPoolToStringTest.java b/bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/ConstantPoolToStringTest.java
new file mode 100644
index 000000000..3a41c6c70
--- /dev/null
+++ b/bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/ConstantPoolToStringTest.java
@@ -0,0 +1,54 @@
+/* *******************************************************************
+ * Copyright (c) 2018 Contributors
+ * All rights reserved.
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Andy Clement - initial implementation
+ * ******************************************************************/
+
+package org.aspectj.apache.bcel.classfile.tests;
+
+import org.aspectj.apache.bcel.classfile.ConstantPool;
+import org.aspectj.apache.bcel.classfile.JavaClass;
+import org.aspectj.apache.bcel.classfile.Method;
+import org.aspectj.apache.bcel.util.SyntheticRepository;
+
+public class ConstantPoolToStringTest extends BcelTestCase {
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ public void testToStringLambdaElements() throws ClassNotFoundException {
+ SyntheticRepository repos = createRepos("lambda.jar");
+ JavaClass clazz = repos.loadClass("Code");
+ ConstantPool pool = clazz.getConstantPool();
+ Method[] methods = clazz.getMethods();
+ String codeString = methods[1].getCode().getCodeString();
+ assertEquals("Code(max_stack = 1, max_locals = 2, code_length = 13)\n" +
+ "0: invokedynamic #0.run ()Ljava/lang/Runnable; (2)\n" +
+ "5: astore_1\n" +
+ "6: aload_1\n" +
+ "7: invokeinterface java.lang.Runnable.run ()V (3) 1 0\n" +
+ "12: return\n",codeString);
+
+ // #20 = MethodHandle 6:#32 // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
+ String cts = pool.constantToString(pool.getConstant(20));
+ assertEquals("6:java.lang.invoke.LambdaMetafactory.metafactory (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;",cts);
+
+ // #21 = MethodType #10 // ()V
+ cts = pool.constantToString(pool.getConstant(21));
+ assertEquals("()V",cts);
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+}