6877751: test/tools/javac/6627362/T6627362.java fails
authorjjg
Mon, 31 Aug 2009 18:25:00 -0700
changeset 3776 c516c9b3fb72
parent 3775 805c58e05571
child 3777 9d8c7669df64
6877751: test/tools/javac/6627362/T6627362.java fails Reviewed-by: darcy
langtools/test/tools/javac/6627362/T6627362.java
--- a/langtools/test/tools/javac/6627362/T6627362.java	Mon Aug 31 17:16:52 2009 -0700
+++ b/langtools/test/tools/javac/6627362/T6627362.java	Mon Aug 31 18:25:00 2009 -0700
@@ -75,7 +75,7 @@
 
         StringWriter sw = new StringWriter();
         javap(new PrintWriter(sw, true), jpArgs);
-        check(sw.toString(), "//Method java/lang/System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V");
+        check(sw.toString(), "// Method java/lang/System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V");
         callValues();
     }
 
@@ -86,26 +86,13 @@
     }
 
     void javap(PrintWriter out, String... args) throws Exception {
-        // for now, we have to exec javap
-        File javaHome = new File(System.getProperty("java.home"));
-        if (javaHome.getName().equals("jre"))
-            javaHome = javaHome.getParentFile();
-        File javap = new File(new File(javaHome, "bin"), "javap");
-        String[] cmd = new String[args.length + 1];
-        cmd[0] = javap.getPath();
-        System.arraycopy(args, 0, cmd, 1, args.length);
-        Process p = new ProcessBuilder(cmd).redirectErrorStream(true).start();
-        p.getOutputStream().close();
-        BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
-        String line;
-        while ((line = in.readLine()) != null)
-            out.println(line);
-        int rc = p.waitFor();
+        int rc = com.sun.tools.javap.Main.run(args, out);
         if (rc != 0)
             throw new Error("javap failed: " + Arrays.asList(args) + ": " + rc);
     }
 
     void check(String s, String require) {
+        System.out.println("Checking:\n" + s);
         if (s.indexOf(require) == -1) {
             System.err.println("Can't find " + require);
             errors++;