author | dtitov |
Tue, 09 Oct 2018 19:11:09 -0700 | |
changeset 52068 | 218b5b64f102 |
parent 51836 | d62ebdfd8f18 |
child 52291 | fa61165a3f2b |
permissions | -rw-r--r-- |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
1 |
/* |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
2 |
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
4 |
* |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
5 |
* This code is free software; you can redistribute it and/or modify it |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation. |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
8 |
* |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
9 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
10 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
11 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
12 |
* version 2 for more details (a copy is included in the LICENSE file that |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
13 |
* accompanied this code). |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
14 |
* |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
15 |
* You should have received a copy of the GNU General Public License version |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
16 |
* 2 along with this work; if not, write to the Free Software Foundation, |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
17 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
18 |
* |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
19 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
20 |
* or visit www.oracle.com if you need additional information or have any |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
21 |
* questions. |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
22 |
*/ |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
23 |
|
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
24 |
package lib.jdb; |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
25 |
|
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
26 |
import jdk.test.lib.Utils; |
51539
2af74a1edb11
8203393: com/sun/jdi/JdbMethodExitTest.sh and JdbExprTest.sh fail due to timeout
amenkov
parents:
51493
diff
changeset
|
27 |
import jdk.test.lib.process.OutputAnalyzer; |
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
28 |
import jdk.test.lib.process.ProcessTools; |
51539
2af74a1edb11
8203393: com/sun/jdi/JdbMethodExitTest.sh and JdbExprTest.sh fail due to timeout
amenkov
parents:
51493
diff
changeset
|
29 |
|
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
30 |
import java.io.IOException; |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
31 |
import java.nio.file.Files; |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
32 |
import java.nio.file.Paths; |
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
33 |
import java.util.Arrays; |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
34 |
import java.util.LinkedList; |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
35 |
import java.util.List; |
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
36 |
import java.util.concurrent.TimeUnit; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
37 |
import java.util.concurrent.TimeoutException; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
38 |
import java.util.regex.Matcher; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
39 |
import java.util.regex.Pattern; |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
40 |
import java.util.stream.Collectors; |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
41 |
|
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
42 |
public abstract class JdbTest { |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
43 |
|
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
44 |
public static class LaunchOptions { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
45 |
public final String debuggeeClass; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
46 |
public final List<String> debuggeeOptions = new LinkedList<>(); |
51716
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
47 |
public String sourceFilename; |
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
48 |
|
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
49 |
public LaunchOptions(String debuggeeClass) { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
50 |
this.debuggeeClass = debuggeeClass; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
51 |
} |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
52 |
public LaunchOptions addDebuggeeOption(String option) { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
53 |
debuggeeOptions.add(option); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
54 |
return this; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
55 |
} |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
56 |
public LaunchOptions addDebuggeeOptions(String[] options) { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
57 |
debuggeeOptions.addAll(Arrays.asList(options)); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
58 |
return this; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
59 |
} |
51716
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
60 |
public LaunchOptions setSourceFilename(String name) { |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
61 |
sourceFilename = name; |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
62 |
return this; |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
63 |
} |
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
64 |
} |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
65 |
|
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
66 |
public JdbTest(LaunchOptions launchOptions) { |
51716
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
67 |
this.launchOptions = launchOptions; |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
68 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
69 |
public JdbTest(String debuggeeClass) { |
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
70 |
this(new LaunchOptions(debuggeeClass)); |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
71 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
72 |
|
51716
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
73 |
// sourceFilename is used by setBreakpoints and redefineClass |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
74 |
public JdbTest(String debuggeeClass, String sourceFilename) { |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
75 |
this(new LaunchOptions(debuggeeClass).setSourceFilename(sourceFilename)); |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
76 |
} |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
77 |
|
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
78 |
protected Jdb jdb; |
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
79 |
protected Process debuggee; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
80 |
private final List<String> debuggeeOutput = new LinkedList<>(); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
81 |
private final LaunchOptions launchOptions; |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
82 |
|
51596
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
83 |
// returns the whole jdb output as a string |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
84 |
public String getJdbOutput() { |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
85 |
return jdb == null ? "" : jdb.getJdbOutput(); |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
86 |
} |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
87 |
|
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
88 |
// returns the whole debuggee output as a string |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
89 |
public String getDebuggeeOutput() { |
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
90 |
return debuggeeOutput.stream().collect(Collectors.joining(lineSeparator)); |
51596
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
91 |
} |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
92 |
|
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
93 |
public void run() { |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
94 |
try { |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
95 |
setup(); |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
96 |
runCases(); |
51836
d62ebdfd8f18
8210725: com/sun/jdi/RedefineClearBreakpoint.java fails with waitForPrompt timed out after 60 seconds
amenkov
parents:
51716
diff
changeset
|
97 |
} catch (Throwable e) { |
d62ebdfd8f18
8210725: com/sun/jdi/RedefineClearBreakpoint.java fails with waitForPrompt timed out after 60 seconds
amenkov
parents:
51716
diff
changeset
|
98 |
jdb.log("======================================="); |
d62ebdfd8f18
8210725: com/sun/jdi/RedefineClearBreakpoint.java fails with waitForPrompt timed out after 60 seconds
amenkov
parents:
51716
diff
changeset
|
99 |
jdb.log("Exception thrown during test execution: " + e.getMessage()); |
d62ebdfd8f18
8210725: com/sun/jdi/RedefineClearBreakpoint.java fails with waitForPrompt timed out after 60 seconds
amenkov
parents:
51716
diff
changeset
|
100 |
jdb.log("======================================="); |
d62ebdfd8f18
8210725: com/sun/jdi/RedefineClearBreakpoint.java fails with waitForPrompt timed out after 60 seconds
amenkov
parents:
51716
diff
changeset
|
101 |
throw e; |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
102 |
} finally { |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
103 |
shutdown(); |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
104 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
105 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
106 |
|
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
107 |
protected void setup() { |
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
108 |
/* run debuggee as: |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
109 |
java -agentlib:jdwp=transport=dt_socket,address=0,server=n,suspend=y <debuggeeClass> |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
110 |
it reports something like : Listening for transport dt_socket at address: 60810 |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
111 |
after that connect jdb by: |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
112 |
jdb -connect com.sun.jdi.SocketAttach:port=60810 |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
113 |
*/ |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
114 |
// launch debuggee |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
115 |
List<String> debuggeeArgs = new LinkedList<>(); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
116 |
// specify address=0 to automatically select free port |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
117 |
debuggeeArgs.add("-agentlib:jdwp=transport=dt_socket,address=0,server=y,suspend=y"); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
118 |
debuggeeArgs.addAll(launchOptions.debuggeeOptions); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
119 |
debuggeeArgs.add(launchOptions.debuggeeClass); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
120 |
ProcessBuilder pbDebuggee = ProcessTools.createJavaProcessBuilder(true, debuggeeArgs.toArray(new String[0])); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
121 |
|
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
122 |
// debuggeeListen[0] - transport, debuggeeListen[1] - address |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
123 |
String[] debuggeeListen = new String[2]; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
124 |
Pattern listenRegexp = Pattern.compile("Listening for transport \\b(.+)\\b at address: \\b(\\d+)\\b"); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
125 |
try { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
126 |
debuggee = ProcessTools.startProcess("debuggee", pbDebuggee, |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
127 |
s -> debuggeeOutput.add(s), // output consumer |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
128 |
s -> { // warm-up predicate |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
129 |
Matcher m = listenRegexp.matcher(s); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
130 |
if (!m.matches()) { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
131 |
return false; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
132 |
} |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
133 |
debuggeeListen[0] = m.group(1); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
134 |
debuggeeListen[1] = m.group(2); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
135 |
return true; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
136 |
}, |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
137 |
30, TimeUnit.SECONDS); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
138 |
} catch (IOException | InterruptedException | TimeoutException ex) { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
139 |
throw new RuntimeException("failed to launch debuggee", ex); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
140 |
} |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
141 |
|
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
142 |
// launch jdb |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
143 |
try { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
144 |
jdb = new Jdb("-connect", "com.sun.jdi.SocketAttach:port=" + debuggeeListen[1]); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
145 |
} catch (Throwable ex) { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
146 |
// terminate debuggee if something went wrong |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
147 |
debuggee.destroy(); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
148 |
throw ex; |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
149 |
} |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
150 |
// wait while jdb is initialized |
51424
083e731da31a
8209517: com/sun/jdi/BreakpointWithFullGC.java fails with timeout
amenkov
parents:
51402
diff
changeset
|
151 |
jdb.waitForPrompt(1, false); |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
152 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
153 |
|
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
154 |
protected abstract void runCases(); |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
155 |
|
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
156 |
protected void shutdown() { |
51493
6b5f3f5fd63c
8209605: com/sun/jdi/BreakpointWithFullGC.java fails with ZGC
amenkov
parents:
51424
diff
changeset
|
157 |
if (jdb != null) { |
6b5f3f5fd63c
8209605: com/sun/jdi/BreakpointWithFullGC.java fails with ZGC
amenkov
parents:
51424
diff
changeset
|
158 |
jdb.shutdown(); |
6b5f3f5fd63c
8209605: com/sun/jdi/BreakpointWithFullGC.java fails with ZGC
amenkov
parents:
51424
diff
changeset
|
159 |
} |
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
160 |
// shutdown debuggee |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
161 |
if (debuggee != null && debuggee.isAlive()) { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
162 |
try { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
163 |
debuggee.waitFor(Utils.adjustTimeout(10), TimeUnit.SECONDS); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
164 |
} catch (InterruptedException e) { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
165 |
// ignore |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
166 |
} finally { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
167 |
if (debuggee.isAlive()) { |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
168 |
debuggee.destroy(); |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
169 |
} |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
170 |
} |
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
171 |
} |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
172 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
173 |
|
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
174 |
protected static final String lineSeparator = System.getProperty("line.separator"); |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
175 |
|
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
176 |
|
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
177 |
// Parses the specified source file for "@{id} breakpoint" tags and returns |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
178 |
// list of the line numbers containing the tag. |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
179 |
// Example: |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
180 |
// System.out.println("BP is here"); // @1 breakpoint |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
181 |
public static List<Integer> parseBreakpoints(String filePath, int id) { |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
182 |
final String pattern = "@" + id + " breakpoint"; |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
183 |
int lineNum = 1; |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
184 |
List<Integer> result = new LinkedList<>(); |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
185 |
try { |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
186 |
for (String line: Files.readAllLines(Paths.get(filePath))) { |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
187 |
if (line.contains(pattern)) { |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
188 |
result.add(lineNum); |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
189 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
190 |
lineNum++; |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
191 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
192 |
} catch (IOException ex) { |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
193 |
throw new RuntimeException("failed to parse " + filePath, ex); |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
194 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
195 |
return result; |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
196 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
197 |
|
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
198 |
// sets breakpoints to the lines parsed by {@code parseBreakpoints} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
199 |
// returns number of the breakpoints set. |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
200 |
public static int setBreakpoints(Jdb jdb, String debuggeeClass, String sourcePath, int id) { |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
201 |
List<Integer> bps = parseBreakpoints(sourcePath, id); |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
202 |
for (int bp : bps) { |
51424
083e731da31a
8209517: com/sun/jdi/BreakpointWithFullGC.java fails with timeout
amenkov
parents:
51402
diff
changeset
|
203 |
String reply = jdb.command(JdbCommand.stopAt(debuggeeClass, bp)).stream() |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
204 |
.collect(Collectors.joining("\n")); |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
205 |
if (reply.contains("Unable to set")) { |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
206 |
throw new RuntimeException("jdb failed to set breakpoint at " + debuggeeClass + ":" + bp); |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
207 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
208 |
|
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
209 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
210 |
return bps.size(); |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
211 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
212 |
|
51596
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
213 |
// sets breakpoints to the lines parsed by {@code parseBreakpoints} |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
214 |
// from the file from test source directory. |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
215 |
// returns number of the breakpoints set. |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
216 |
protected int setBreakpointsFromTestSource(String debuggeeFileName, int id) { |
51716
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
217 |
return setBreakpoints(jdb, launchOptions.debuggeeClass, |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
218 |
getTestSourcePath(debuggeeFileName), id); |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
219 |
} |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
220 |
|
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
221 |
// sets breakpoints in the class {@code launchOptions.debuggeeClass} |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
222 |
// to the lines parsed by {@code parseBreakpoints} |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
223 |
// from the file from test source directory specified by {@code launchOptions.sourceFilename}. |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
224 |
// returns number of the breakpoints set. |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
225 |
protected int setBreakpoints(int id) { |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
226 |
verifySourceFilename(); |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
227 |
return setBreakpointsFromTestSource(launchOptions.sourceFilename, id); |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
228 |
} |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
229 |
|
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
230 |
// transforms class with the specified id (see {@code ClassTransformer}) |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
231 |
// and executes "redefine" jdb command for {@code launchOptions.debuggeeClass}. |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
232 |
// returns reply for the command. |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
233 |
protected List<String> redefineClass(int id, String... compilerOptions) { |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
234 |
verifySourceFilename(); |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
235 |
String transformedClassFile = ClassTransformer.fromTestSource(launchOptions.sourceFilename) |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
236 |
.transform(id, launchOptions.debuggeeClass, compilerOptions); |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
237 |
return jdb.command(JdbCommand.redefine(launchOptions.debuggeeClass, transformedClassFile)); |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
238 |
} |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
239 |
|
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
240 |
// gets full test source path for the given test filename |
52068 | 241 |
public static String getTestSourcePath(String fileName) { |
51716
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
242 |
return Paths.get(System.getProperty("test.src")).resolve(fileName).toString(); |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
243 |
} |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
244 |
|
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
245 |
// verifies that sourceFilename is specified in ctor |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
246 |
private void verifySourceFilename() { |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
247 |
if (launchOptions.sourceFilename == null) { |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
248 |
throw new RuntimeException("launchOptions.sourceFilename must be specified."); |
e7459270ca63
8210560: [TEST] convert com/sun/jdi redefineClass-related tests
amenkov
parents:
51648
diff
changeset
|
249 |
} |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
250 |
} |
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
251 |
|
51539
2af74a1edb11
8203393: com/sun/jdi/JdbMethodExitTest.sh and JdbExprTest.sh fail due to timeout
amenkov
parents:
51493
diff
changeset
|
252 |
protected OutputAnalyzer execCommand(JdbCommand cmd) { |
2af74a1edb11
8203393: com/sun/jdi/JdbMethodExitTest.sh and JdbExprTest.sh fail due to timeout
amenkov
parents:
51493
diff
changeset
|
253 |
List<String> reply = jdb.command(cmd); |
2af74a1edb11
8203393: com/sun/jdi/JdbMethodExitTest.sh and JdbExprTest.sh fail due to timeout
amenkov
parents:
51493
diff
changeset
|
254 |
return new OutputAnalyzer(reply.stream().collect(Collectors.joining(lineSeparator))); |
2af74a1edb11
8203393: com/sun/jdi/JdbMethodExitTest.sh and JdbExprTest.sh fail due to timeout
amenkov
parents:
51493
diff
changeset
|
255 |
} |
51648
b7b69bc93a2d
8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
amenkov
parents:
51596
diff
changeset
|
256 |
|
51596
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
257 |
// helpers for "eval" jdb command. |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
258 |
// executes "eval <expr>" and verifies output contains the specified text |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
259 |
protected void evalShouldContain(String expr, String expectedString) { |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
260 |
execCommand(JdbCommand.eval(expr)) |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
261 |
.shouldContain(expectedString); |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
262 |
} |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
263 |
// executes "eval <expr>" and verifies output does not contain the specified text |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
264 |
protected void evalShouldNotContain(String expr, String unexpectedString) { |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
265 |
execCommand(JdbCommand.eval(expr)) |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
266 |
.shouldNotContain(unexpectedString); |
b8eea2a7569a
8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
amenkov
parents:
51539
diff
changeset
|
267 |
} |
51402
bfdebb29b1e5
8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
amenkov
parents:
diff
changeset
|
268 |
} |