# HG changeset patch # User Gary Benson # Date 1301652084 -3600 # Node ID e1e5d3b941ad20e49a443d827e61050139ce5ab9 # Parent 0ca449acee7daf24d5a38a1fbf61302d6815523c Debug code out diff -r 0ca449acee7d -r e1e5d3b941ad Makefile --- a/Makefile Mon Mar 28 15:21:39 2011 +0100 +++ b/Makefile Fri Apr 01 11:01:24 2011 +0100 @@ -26,18 +26,22 @@ TESTVM = hotspot/build/linux/jdk-linux-zero/debug/bin/java test/java/dyn/%.class: test/java/dyn/%.java - $(JAVADIR)/bin/javac -d . -cp $(JUNITJAR):. $< + $(JAVADIR)/bin/javac -d . -cp $(JUNITJAR) $< -UNITTESTCLASSES = test/java/dyn/MethodHandlePrinter.class test/java/dyn/MethodHandlesTest.class +UNITTESTCLASSES = \ + test/java/dyn/InvokeGenericTest.class \ + test/java/dyn/JavaDocExamplesTest.class \ + test/java/dyn/MethodHandlesTest.class \ + test/java/dyn/ClassValueTest.class -unittest: $(UNITTESTCLASSES) +unittest: $(TESTTARGET) $(UNITTESTCLASSES) $(TESTVM) \ -XX:+UnlockExperimentalVMOptions \ -XX:+EnableMethodHandles \ -XX:+EnableInvokeDynamic \ -Dtest.java.dyn.MethodHandlesTest.verbosity=0 \ -cp $(JUNITJAR):. org.junit.runner.JUnitCore \ - test.java.dyn.MethodHandlesTest + $(subst .class,,$(subst /,.,$(UNITTESTCLASSES))) SMOKETESTCLASSES = \ test/java/dyn/InvokeDynamicPrintArgs.class \ @@ -53,6 +57,6 @@ --expand-properties \ --java InvokeDynamicPrintArgs --check-output -test: unittest +test: unittest smoketest .PHONY: default $(TARGETS) build clean patch test diff -r 0ca449acee7d -r e1e5d3b941ad test/java/dyn/MethodHandlePrinter.java --- a/test/java/dyn/MethodHandlePrinter.java Mon Mar 28 15:21:39 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -package test.java.dyn; - -import java.dyn.MethodHandle; -import java.lang.reflect.Field; - -public class MethodHandlePrinter { - static void print(MethodHandle mh) { - StringBuilder builder = new StringBuilder(); - formatObject(builder, mh, ""); - System.out.println(builder.toString()); - } - - private static void formatObject(StringBuilder builder, - Object obj, - String indent) { - Class klass = obj.getClass(); - builder.append(indent); - builder.append(klass.getName()); - builder.append(" {\n"); - Object vmtarget = formatFields(builder, obj, klass, indent + " "); - builder.append(indent); - builder.append("}"); - if (vmtarget instanceof MethodHandle) { - builder.append(", "); - formatObject(builder, vmtarget, indent); - } - } - - private static Object formatFields(StringBuilder builder, - Object obj, - Class klass, - String indent) { - Object vmtarget = null; - - Class parent = klass.getSuperclass(); - if (parent != Object.class) { - Object result = formatFields(builder, obj, parent, indent); - if (result != null) { - if (vmtarget != null) - throw new RuntimeException(); - vmtarget = result; - } - builder.append("\n"); - } - - builder.append(indent); - builder.append(klass.getName()); - builder.append(":\n"); - - for (Field field: klass.getDeclaredFields()) { - String name = field.getName(); - Object value; - try { - if (!field.isAccessible()) - field.setAccessible(true); - value = field.get(obj); - } - catch (Exception e) { - throw new RuntimeException(e); - } - - if (name.equals("vmtarget")) { - if (vmtarget != null) - throw new RuntimeException(); - vmtarget = value; - } - - Class type = field.getType(); - String typeName = type.getName(); - - builder.append(indent); - builder.append(typeName); - builder.append(' '); - builder.append(name); - builder.append(" = "); - try { - builder.append(value); - } - catch (NullPointerException e) { - builder.append("???"); - } - - builder.append('\n'); - - } - return vmtarget; - } -} diff -r 0ca449acee7d -r e1e5d3b941ad test/java/dyn/MethodHandlesTest.java --- a/test/java/dyn/MethodHandlesTest.java Mon Mar 28 15:21:39 2011 +0100 +++ b/test/java/dyn/MethodHandlesTest.java Fri Apr 01 11:01:24 2011 +0100 @@ -1285,11 +1285,6 @@ } void testPermuteArguments(Object[] args, Class[] types, int[] reorder) throws Throwable { - int verbosity = 0; - if (Arrays.toString(reorder).equals("[1, 0, 0]")) { - System.out.println(); - verbosity = 99; - } countTest(); if (args == null && types == null) { int max = 0; @@ -1326,10 +1321,6 @@ MethodType outType = MethodType.methodType(Object.class, permTypes); MethodHandle target = MethodHandles.convertArguments(ValueConversions.varargsList(outargs), outType); MethodHandle newTarget = MethodHandles.permuteArguments(target, inType, reorder); - if (verbosity > 9) { - System.out.print("newTarget = "); - MethodHandlePrinter.print(newTarget); - } Object result = newTarget.invokeWithArguments(args); Object expected = Arrays.asList(permArgs); assertEquals(expected, result);