test/jdk/com/sun/jdi/lib/jdb/JdbTest.java
author dtitov
Tue, 09 Oct 2018 19:11:09 -0700
changeset 52068 218b5b64f102
parent 51836 d62ebdfd8f18
child 52291 fa61165a3f2b
permissions -rw-r--r--
8193879: Java debugger hangs on method invocation Reviewed-by: sspitsyn, amenkov, gadams
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
218b5b64f102 8193879: Java debugger hangs on method invocation
dtitov
parents: 51836
diff changeset
   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
}