--- old/test/tools/pack200/TestNormal.java 2014-10-14 21:44:25.000000000 +0800 +++ new/test/tools/pack200/TestNormal.java 2014-10-14 21:44:25.000000000 +0800 @@ -31,8 +31,11 @@ */ import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.Collections; import java.util.Properties; +import java.util.Random; import java.util.jar.JarEntry; import java.util.jar.JarFile; @@ -42,17 +45,16 @@ public static void main(String args[]) throws Exception { Properties p = System.getProperties(); String java_home = p.getProperty("test.jdk"); - File testJar = new File("test.jar"); - Utils.jar("cvf", testJar.getName(), Utils.TEST_CLS_DIR.getAbsolutePath()); File folder = new File("testdir"); if (folder.exists()) { delete(folder); } folder.mkdir(); + // prepare some test files + createFiles(folder); try { - extractJar(new JarFile(testJar), folder); execJavaCommand(java_home, "jar cnf normalized.jar -C testdir ."); execJavaCommand(java_home, "jar cf original.jar -C testdir ."); execJavaCommand(java_home, "pack200 -r repacked.jar original.jar"); @@ -101,32 +103,15 @@ } } - public static void extractJar(JarFile jf, File where) throws Exception { - for (JarEntry file : Collections.list(jf.entries())) { - File out = new File(where, file.getName()); - if (file.isDirectory()) { - out.mkdirs(); - continue; - } - File parent = out.getParentFile(); - if (parent != null && !parent.exists()) { - parent.mkdirs(); - } - InputStream is = null; - OutputStream os = null; + static void createFiles(File folder) { + Random r = new Random(); + byte[] data = new byte[10]; + for (int i = 0; i < 10; i++) { try { - is = jf.getInputStream(file); - os = new FileOutputStream(out); - while (is.available() > 0) { - os.write(is.read()); - } - } finally { - if (is != null) { - is.close(); - } - if (os != null) { - os.close(); - } + r.nextBytes(data); + Files.write(new File(folder, "t" + i).toPath(), data); + } catch (IOException ex) { + throw new RuntimeException(ex); } } }