# HG changeset patch # User Gary Benson # Date 1301319812 -3600 # Node ID 75c08d56477b075ed778d233c2bc55ffb8c795dd # Parent a5e39cfa25c03ee31dac0f0591bb8d1870ae3ec6 Debug code diff -r a5e39cfa25c0 -r 75c08d56477b Makefile --- a/Makefile Wed Mar 23 18:25:52 2011 +0000 +++ b/Makefile Mon Mar 28 14:43:32 2011 +0100 @@ -26,22 +26,18 @@ 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/InvokeGenericTest.class \ - test/java/dyn/JavaDocExamplesTest.class \ - test/java/dyn/MethodHandlesTest.class \ - test/java/dyn/ClassValueTest.class +UNITTESTCLASSES = test/java/dyn/MethodHandlePrinter.class test/java/dyn/MethodHandlesTest.class -unittest: $(TESTTARGET) $(UNITTESTCLASSES) +unittest: $(UNITTESTCLASSES) $(TESTVM) \ -XX:+UnlockExperimentalVMOptions \ -XX:+EnableMethodHandles \ -XX:+EnableInvokeDynamic \ -Dtest.java.dyn.MethodHandlesTest.verbosity=0 \ -cp $(JUNITJAR):. org.junit.runner.JUnitCore \ - $(subst .class,,$(subst /,.,$(UNITTESTCLASSES))) + test.java.dyn.MethodHandlesTest SMOKETESTCLASSES = \ test/java/dyn/InvokeDynamicPrintArgs.class \ @@ -57,6 +53,6 @@ --expand-properties \ --java InvokeDynamicPrintArgs --check-output -test: unittest smoketest +test: unittest .PHONY: default $(TARGETS) build clean patch test diff -r a5e39cfa25c0 -r 75c08d56477b test/java/dyn/MethodHandlePrinter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/dyn/MethodHandlePrinter.java Mon Mar 28 14:43:32 2011 +0100 @@ -0,0 +1,9 @@ +package test.java.dyn; + +import java.dyn.MethodHandle; + +public class MethodHandlePrinter { + static void print(MethodHandle mh) { + System.out.println(mh); + } +} \ No newline at end of file diff -r a5e39cfa25c0 -r 75c08d56477b test/java/dyn/MethodHandlesTest.java --- a/test/java/dyn/MethodHandlesTest.java Wed Mar 23 18:25:52 2011 +0000 +++ b/test/java/dyn/MethodHandlesTest.java Mon Mar 28 14:43:32 2011 +0100 @@ -1285,6 +1285,11 @@ } 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; @@ -1321,6 +1326,10 @@ 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);