48 if (!Platform.shouldSAAttach()) {
49 System.out.println("SA attach not expected to work - test skipped.");
50 return;
51 }
52
53 try {
54 List<String> vmArgs = new ArrayList<String>(Utils.getVmOptions());
55
56 app = new LingeredAppWithLock();
57 LingeredApp.startApp(vmArgs, app);
58 System.out.println ("Started LingeredApp with pid " + app.getPid());
59
60 JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
61 launcher.addToolArg("jstack");
62 launcher.addToolArg("--pid");
63 launcher.addToolArg(Long.toString(app.getPid()));
64
65 ProcessBuilder pb = new ProcessBuilder();
66 pb.command(launcher.getCommand());
67 Process jhsdb = pb.start();
68
69 jhsdb.waitFor();
70
71 OutputAnalyzer out = new OutputAnalyzer(jhsdb);
72 System.out.println(out.getStdout());
73 System.err.println(out.getStderr());
74
75 out.shouldMatch("^\\s+- locked <0x[0-9a-f]+> \\(a java\\.lang\\.Class for LingeredAppWithLock\\)$");
76 out.shouldMatch("^\\s+- waiting to lock <0x[0-9a-f]+> \\(a java\\.lang\\.Class for LingeredAppWithLock\\)$");
77 out.shouldMatch("^\\s+- locked <0x[0-9a-f]+> \\(a java\\.lang\\.Thread\\)$");
78 out.shouldMatch("^\\s+- locked <0x[0-9a-f]+> \\(a java\\.lang\\.Class for int\\)$");
79 out.stderrShouldBeEmpty();
80
81 System.out.println("Test Completed");
82 } finally {
83 LingeredApp.stopApp(app);
84 }
85 }
86 }
|
48 if (!Platform.shouldSAAttach()) {
49 System.out.println("SA attach not expected to work - test skipped.");
50 return;
51 }
52
53 try {
54 List<String> vmArgs = new ArrayList<String>(Utils.getVmOptions());
55
56 app = new LingeredAppWithLock();
57 LingeredApp.startApp(vmArgs, app);
58 System.out.println ("Started LingeredApp with pid " + app.getPid());
59
60 JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
61 launcher.addToolArg("jstack");
62 launcher.addToolArg("--pid");
63 launcher.addToolArg(Long.toString(app.getPid()));
64
65 ProcessBuilder pb = new ProcessBuilder();
66 pb.command(launcher.getCommand());
67 Process jhsdb = pb.start();
68 OutputAnalyzer out = new OutputAnalyzer(jhsdb);
69
70 jhsdb.waitFor();
71
72 System.out.println(out.getStdout());
73 System.err.println(out.getStderr());
74
75 out.shouldMatch("^\\s+- locked <0x[0-9a-f]+> \\(a java\\.lang\\.Class for LingeredAppWithLock\\)$");
76 out.shouldMatch("^\\s+- waiting to lock <0x[0-9a-f]+> \\(a java\\.lang\\.Class for LingeredAppWithLock\\)$");
77 out.shouldMatch("^\\s+- locked <0x[0-9a-f]+> \\(a java\\.lang\\.Thread\\)$");
78 out.shouldMatch("^\\s+- locked <0x[0-9a-f]+> \\(a java\\.lang\\.Class for int\\)$");
79 out.stderrShouldBeEmpty();
80
81 System.out.println("Test Completed");
82 } finally {
83 LingeredApp.stopApp(app);
84 }
85 }
86 }
|