6877751: test/tools/javac/6627362/T6627362.java fails

Reviewed-by: darcy
This commit is contained in:
Jonathan Gibbons 2009-08-31 18:25:00 -07:00
parent 9df373712c
commit 729ed5d746

View File

@ -75,7 +75,7 @@ public class T6627362 {
StringWriter sw = new StringWriter(); StringWriter sw = new StringWriter();
javap(new PrintWriter(sw, true), jpArgs); 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(); callValues();
} }
@ -86,26 +86,13 @@ public class T6627362 {
} }
void javap(PrintWriter out, String... args) throws Exception { void javap(PrintWriter out, String... args) throws Exception {
// for now, we have to exec javap int rc = com.sun.tools.javap.Main.run(args, out);
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();
if (rc != 0) if (rc != 0)
throw new Error("javap failed: " + Arrays.asList(args) + ": " + rc); throw new Error("javap failed: " + Arrays.asList(args) + ": " + rc);
} }
void check(String s, String require) { void check(String s, String require) {
System.out.println("Checking:\n" + s);
if (s.indexOf(require) == -1) { if (s.indexOf(require) == -1) {
System.err.println("Can't find " + require); System.err.println("Can't find " + require);
errors++; errors++;