diff options
author | ksrini <none@none> | 2013-03-03 20:52:04 -0800 |
---|---|---|
committer | ksrini <none@none> | 2013-03-03 20:52:04 -0800 |
commit | 93c8f88b7c3977f6dc48d08b20ee61384b02640b (patch) | |
tree | a8d99eb82c58a9c01098b6dd06fe0551d40707aa /test/tools | |
parent | 8d005a09b03ef046419bccb2e232b7807c53db03 (diff) | |
download | jdk8u_jdk-93c8f88b7c3977f6dc48d08b20ee61384b02640b.tar.gz |
8007297: [pack200] allow opcodes with InterfaceMethodRefs
Reviewed-by: jrose
Diffstat (limited to 'test/tools')
-rw-r--r-- | test/tools/pack200/AttributeTests.java | 12 | ||||
-rw-r--r-- | test/tools/pack200/InstructionTests.java | 49 | ||||
-rw-r--r-- | test/tools/pack200/Utils.java | 14 |
3 files changed, 30 insertions, 45 deletions
diff --git a/test/tools/pack200/AttributeTests.java b/test/tools/pack200/AttributeTests.java index 6526737b73..c12891829e 100644 --- a/test/tools/pack200/AttributeTests.java +++ b/test/tools/pack200/AttributeTests.java @@ -67,17 +67,7 @@ public class AttributeTests { File testjarFile = new File(cwd, "test" + Utils.JAR_FILE_EXT); Utils.jar("cvf", testjarFile.getName(), javaClassName); - // pack using native --repack - File nativejarFile = new File(cwd, "out-n" + Utils.JAR_FILE_EXT); - Utils.repack(testjarFile, nativejarFile, false, - "--unknown-attribute=error"); - Utils.doCompareVerify(testjarFile, nativejarFile); - - // pack using java --repack - File javajarFile = new File(cwd, "out-j" + Utils.JAR_FILE_EXT); - Utils.repack(testjarFile, javajarFile, true, - "--unknown-attribute=error"); - Utils.doCompareBitWise(nativejarFile, javajarFile); + Utils.testWithRepack(testjarFile, "--unknown-attribute=error"); } /* * this test checks to see if we get the expected strings for output diff --git a/test/tools/pack200/InstructionTests.java b/test/tools/pack200/InstructionTests.java index ce92c0ed55..7015ae9a11 100644 --- a/test/tools/pack200/InstructionTests.java +++ b/test/tools/pack200/InstructionTests.java @@ -26,11 +26,10 @@ import java.nio.file.Files; import java.util.ArrayList; import java.util.List; import static java.nio.file.StandardOpenOption.*; -import java.util.regex.Pattern; /* * @test - * @bug 8003549 + * @bug 8003549 8007297 * @summary tests class files instruction formats introduced in JSR-335 * @compile -XDignore.symbol.file Utils.java InstructionTests.java * @run main InstructionTests @@ -48,52 +47,34 @@ public class InstructionTests { List<String> scratch = new ArrayList<>(); final String fname = "A"; String javaFileName = fname + Utils.JAVA_FILE_EXT; - scratch.add("interface IntIterator {"); + scratch.add("interface I {"); scratch.add(" default void forEach(){}"); scratch.add(" static void next() {}"); scratch.add("}"); - scratch.add("class A implements IntIterator {"); - scratch.add("public void forEach(Object o){"); - scratch.add("IntIterator.super.forEach();"); - scratch.add("IntIterator.next();"); - scratch.add("}"); + scratch.add("class A implements I {"); + scratch.add(" public void forEach(Object o){"); + scratch.add(" I.super.forEach();"); + scratch.add(" I.next();"); + scratch.add(" }"); scratch.add("}"); File cwd = new File("."); File javaFile = new File(cwd, javaFileName); Files.write(javaFile.toPath(), scratch, Charset.defaultCharset(), CREATE, TRUNCATE_EXISTING); - // make sure we have -g so that we compare LVT and LNT entries + // -g to compare LVT and LNT entries Utils.compiler("-g", javaFile.getName()); + File propsFile = new File("pack.props"); + scratch.clear(); + scratch.add("com.sun.java.util.jar.pack.class.format.error=error"); + scratch.add("pack.unknown.attribute=error"); + Files.write(propsFile.toPath(), scratch, Charset.defaultCharset(), + CREATE, TRUNCATE_EXISTING); // jar the file up File testjarFile = new File(cwd, "test" + Utils.JAR_FILE_EXT); Utils.jar("cvf", testjarFile.getName(), "."); - // pack using --repack - File outjarFile = new File(cwd, "out" + Utils.JAR_FILE_EXT); - scratch.clear(); - scratch.add(Utils.getPack200Cmd()); - scratch.add("-J-ea"); - scratch.add("-J-esa"); - scratch.add("--repack"); - scratch.add(outjarFile.getName()); - scratch.add(testjarFile.getName()); - List<String> output = Utils.runExec(scratch); - // TODO remove this when we get bc escapes working correctly - // this test anyhow would fail at that time - findString("WARNING: Passing.*" + fname + Utils.CLASS_FILE_EXT, - output); - - Utils.doCompareVerify(testjarFile, outjarFile); - } - - static boolean findString(String str, List<String> list) { - Pattern p = Pattern.compile(str); - for (String x : list) { - if (p.matcher(x).matches()) - return true; - } - throw new RuntimeException("Error: " + str + " not found in output"); + Utils.testWithRepack(testjarFile, "--config-file=" + propsFile.getName()); } } diff --git a/test/tools/pack200/Utils.java b/test/tools/pack200/Utils.java index 07a64595e9..f3d1d4666b 100644 --- a/test/tools/pack200/Utils.java +++ b/test/tools/pack200/Utils.java @@ -314,6 +314,20 @@ class Utils { throw new RuntimeException("jar command failed"); } } + + static void testWithRepack(File inFile, String... repackOpts) throws IOException { + File cwd = new File("."); + // pack using --repack in native mode + File nativejarFile = new File(cwd, "out-n" + Utils.JAR_FILE_EXT); + repack(inFile, nativejarFile, false, repackOpts); + doCompareVerify(inFile, nativejarFile); + + // ensure bit compatibility between the unpacker variants + File javajarFile = new File(cwd, "out-j" + Utils.JAR_FILE_EXT); + repack(inFile, javajarFile, true, repackOpts); + doCompareBitWise(javajarFile, nativejarFile); + } + static List<String> repack(File inFile, File outFile, boolean disableNative, String... extraOpts) { List<String> cmdList = new ArrayList<>(); |