test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassType/setValue/setvalue002.java
author gadams
Thu, 21 Feb 2019 05:06:41 -0500
changeset 53869 34906de6c017
parent 50018 3ba0d8631f24
permissions -rw-r--r--
8219388: Misleading log message "issuspended002a debuggee launched" Reviewed-by: cjplummer, phh
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50018
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
     1
/*
53869
34906de6c017 8219388: Misleading log message "issuspended002a debuggee launched"
gadams
parents: 50018
diff changeset
     2
 * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
50018
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
     4
 *
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
     7
 * published by the Free Software Foundation.
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
     8
 *
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    13
 * accompanied this code).
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    14
 *
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    18
 *
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    21
 * questions.
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    22
 */
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    23
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    24
package nsk.jdi.ClassType.setValue;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    25
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    26
import nsk.share.*;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    27
import nsk.share.jpda.*;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    28
import nsk.share.jdi.*;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    29
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    30
import com.sun.jdi.*;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    31
import java.util.*;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    32
import java.io.*;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    33
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    34
/**
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    35
 * The test for the implementation of an object of the type     <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    36
 * ClassType.                                                   <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    37
 *                                                              <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    38
 * The test checks up that results of the method                <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    39
 * <code>com.sun.jdi.ClassType.setValue()</code>                <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    40
 * complies with its spec.                                      <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    41
 * The test checks up on throwing IllegalArgumentException and  <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    42
 * InvalidTypeException.                                        <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    43
 * <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    44
 * The cases for testing include the primitive types and the array type.<BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    45
 * After being started up,                                              <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    46
 * a debuggee creates a TestClass object containing fields of each of   <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    47
 * the primitive types and the array type,                              <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    48
 * and informs a debugger of the object creation.                       <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    49
 * Upon the receiption a message from the debuggee, the debugger        <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    50
 * gets the mirror of the object, ClassType tClass,                     <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    51
 * and performs the following checks:                                   <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    52
 * - invoking the method                                                <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    53
 *     tClass.setValue(Field field1, BooleanValue blv2)                 <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    54
 *   with non-static field1 throws  IllegalArgumentException;           <BR>                                    <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    55
 * - invoking the method                                                <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    56
 *     tClass.setValue(Field field1, ByteValue btv2)                    <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    57
 *   with final field1 throws  IllegalArgumentException;                <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    58
 * - invoking the method                                                <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    59
 *     tClass.setValue(Field field1, IntegerValue inv2)                 <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    60
 *   with field1 mirroring an static field within another debuggee's    <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    61
 *   class throws  IllegalArgumentException;                            <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    62
 * - invoking the method                                                <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    63
 *     tClass.setValue(Field field1, ByteValue btv2)                    <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    64
 *   with field1 mirroring not a primitive but an array type            <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    65
 *   throws  InvalidTypeException.                                      <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    66
 * <BR>
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    67
 */
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    68
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    69
public class setvalue002 {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    70
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    71
    //----------------------------------------------------- templete section
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    72
    static final int PASSED = 0;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    73
    static final int FAILED = 2;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    74
    static final int PASS_BASE = 95;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    75
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    76
    //----------------------------------------------------- templete parameters
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    77
    static final String
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    78
    sHeader1 = "\n==> nsk/jdi/ClassType/setValue/setvalue002  ",
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    79
    sHeader2 = "--> debugger: ",
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    80
    sHeader3 = "##> debugger: ";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    81
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    82
    //----------------------------------------------------- main method
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    83
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    84
    public static void main (String argv[]) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    85
        int result = run(argv, System.out);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    86
        System.exit(result + PASS_BASE);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    87
    }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    88
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    89
    public static int run (String argv[], PrintStream out) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    90
        return new setvalue002().runThis(argv, out);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    91
    }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    92
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    93
    //--------------------------------------------------   log procedures
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    94
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    95
    private static Log  logHandler;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    96
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    97
    private static void log1(String message) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    98
        logHandler.display(sHeader1 + message);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
    99
    }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   100
    private static void log2(String message) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   101
        logHandler.display(sHeader2 + message);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   102
    }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   103
    private static void log3(String message) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   104
        logHandler.complain(sHeader3 + message);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   105
    }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   106
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   107
    //  ************************************************    test parameters
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   108
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   109
    private String debuggeeName =
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   110
        "nsk.jdi.ClassType.setValue.setvalue002a";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   111
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   112
    String mName = "nsk.jdi.ClassType.setValue";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   113
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   114
    //====================================================== test program
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   115
    //------------------------------------------------------ common section
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   116
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   117
    static ArgumentHandler      argsHandler;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   118
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   119
    static int waitTime;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   120
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   121
    static VirtualMachine vm = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   122
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   123
    static int  testExitCode = PASSED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   124
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   125
    static final int returnCode0 = 0;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   126
    static final int returnCode1 = 1;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   127
    static final int returnCode2 = 2;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   128
    static final int returnCode3 = 3;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   129
    static final int returnCode4 = 4;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   130
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   131
    //------------------------------------------------------ methods
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   132
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   133
    private int runThis (String argv[], PrintStream out) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   134
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   135
        Debugee debuggee;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   136
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   137
        argsHandler     = new ArgumentHandler(argv);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   138
        logHandler      = new Log(out, argsHandler);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   139
        Binder binder   = new Binder(argsHandler, logHandler);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   140
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   141
        if (argsHandler.verbose()) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   142
            debuggee = binder.bindToDebugee(debuggeeName + " -vbs");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   143
        } else {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   144
            debuggee = binder.bindToDebugee(debuggeeName);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   145
        }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   146
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   147
        waitTime = argsHandler.getWaitTime();
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   148
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   149
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   150
        IOPipe pipe     = new IOPipe(debuggee);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   151
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   152
        debuggee.redirectStderr(out);
53869
34906de6c017 8219388: Misleading log message "issuspended002a debuggee launched"
gadams
parents: 50018
diff changeset
   153
        log2(debuggeeName + " debuggee launched");
50018
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   154
        debuggee.resume();
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   155
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   156
        String line = pipe.readln();
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   157
        if ((line == null) || !line.equals("ready")) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   158
            log3("signal received is not 'ready' but: " + line);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   159
            return FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   160
        } else {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   161
            log2("'ready' recieved");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   162
        }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   163
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   164
        vm = debuggee.VM();
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   165
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   166
    //------------------------------------------------------  testing section
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   167
        log1("      TESTING BEGINS");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   168
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   169
        for (int i = 0; ; i++) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   170
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   171
            pipe.println("newcheck");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   172
            line = pipe.readln();
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   173
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   174
            if (line.equals("checkend")) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   175
                log2("     : returned string is 'checkend'");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   176
                break ;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   177
            } else if (!line.equals("checkready")) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   178
                log3("ERROR: returned string is not 'checkready'");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   179
                testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   180
                break ;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   181
            }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   182
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   183
            log1("new checkready: #" + i);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   184
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   185
            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ variable part
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   186
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   187
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   188
            String testedclassName = mName + ".setvalue002aTestClass";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   189
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   190
            ReferenceType testedclass = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   191
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   192
            log2("       getting: List classes = vm.classesByName(testedclassName); expected size == 1");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   193
            List classes = vm.classesByName(testedclassName);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   194
            int size = classes.size();
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   195
            if (size != 1) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   196
                log3("ERROR: classes.size() != 1 : " + size);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   197
                testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   198
                break ;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   199
            }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   200
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   201
            log2("      getting ReferenceType and ClassType objects for setvalue002aTestClass");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   202
            testedclass = (ReferenceType) classes.get(0);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   203
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   204
            ClassType tClass = (ClassType) testedclass;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   205
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   206
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   207
            ReferenceType debuggeeclass = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   208
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   209
            log2("       getting: List classes = vm.classesByName(debuggeeName); expected size == 1");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   210
            classes = vm.classesByName(debuggeeName);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   211
            size = classes.size();
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   212
            if (size != 1) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   213
                log3("ERROR: classes.size() != 1 : " + size);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   214
                testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   215
                break ;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   216
            }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   217
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   218
            log2("      getting ReferenceType and ClassType objects for debuggeeClass");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   219
            debuggeeclass = (ReferenceType) classes.get(0);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   220
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   221
            ClassType dClass = (ClassType) debuggeeclass;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   222
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   223
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   224
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   225
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   226
            String bl1 = "bl1", bl2 = "bl2";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   227
            String bt1 = "bt1", bt2 = "bt2";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   228
            String ch1 = "ch1", ch2 = "ch2";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   229
            String db1 = "db1", db2 = "db2";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   230
            String fl1 = "fl1", fl2 = "fl2";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   231
            String in1 = "in1", in2 = "in2";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   232
            String ln1 = "ln1", ln2 = "ln2";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   233
            String sh1 = "sh1", sh2 = "sh2";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   234
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   235
            Field field1 = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   236
            Field field2 = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   237
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   238
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   239
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   240
            log2("...... checking up: not static field; IllegalArgumentException is expected");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   241
            try {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   242
                BooleanValue blv1 = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   243
                BooleanValue blv2 = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   244
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   245
                field1 = testedclass.fieldByName(bl1);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   246
                field2 = testedclass.fieldByName(bl2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   247
                if (field1 == null || field2 == null) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   248
                    log3("ERROR: field1 == null || field2 == null");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   249
                    testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   250
                } else {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   251
                    blv2 = (BooleanValue) testedclass.getValue(field2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   252
                    tClass.setValue(field1, blv2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   253
                    log3("ERROR: no IllegalArgumentException");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   254
                    testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   255
                }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   256
            } catch ( IllegalArgumentException e1 ) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   257
                log2("         IllegalArgumentException");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   258
            } catch ( Exception e2 ) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   259
                log3("ERROR: unexpected Exception: " + e2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   260
                testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   261
            }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   262
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   263
            log2("...... checking up: final field; IllegalArgumentException is expected");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   264
            try {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   265
                ByteValue btv1 = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   266
                ByteValue btv2 = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   267
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   268
                field1 = testedclass.fieldByName(bt1);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   269
                field2 = testedclass.fieldByName(bt2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   270
                if (field1 == null || field2 == null) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   271
                    log3("ERROR: field1 == null || field2 == null");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   272
                    testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   273
                } else {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   274
                    btv2 = (ByteValue) testedclass.getValue(field2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   275
                    tClass.setValue(field1, btv2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   276
                    log3("ERROR: no IllegalArgumentException");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   277
                    testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   278
                }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   279
            } catch ( IllegalArgumentException e1 ) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   280
                log2("         IllegalArgumentException");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   281
            } catch ( Exception e2 ) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   282
                log3("ERROR: unexpected Exception: " + e2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   283
                testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   284
            }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   285
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   286
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   287
            log2("...... checking up: field doesn't exist in this class; IllegalArgumentException is expected");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   288
            try {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   289
                IntegerValue inv1 = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   290
                IntegerValue inv2 = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   291
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   292
                field1 = debuggeeclass.fieldByName(in1);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   293
                field2 = testedclass.fieldByName(in2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   294
                if (field1 == null || field2 == null) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   295
                    log3("ERROR: field1 == null || field2 == null");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   296
                    testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   297
                } else {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   298
                    inv2 = (IntegerValue) testedclass.getValue(field2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   299
                    tClass.setValue(field1, inv2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   300
                    log3("ERROR: no IllegalArgumentException");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   301
                    testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   302
                }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   303
            } catch ( IllegalArgumentException e1 ) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   304
                log2("         IllegalArgumentException");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   305
            } catch ( Exception e2 ) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   306
                log3("ERROR: unexpected Exception: " + e2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   307
                testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   308
            }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   309
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   310
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   311
            log2("...... checking up: no match the field's declared type; InvalidTypeException is expected");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   312
            try {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   313
                ByteValue btv2 = null;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   314
                String bta = "bta";
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   315
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   316
                field1 = testedclass.fieldByName(bta);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   317
                field2 = testedclass.fieldByName(bt2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   318
                if (field1 == null || field2 == null) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   319
                    log3("ERROR: field1 == null || field2 == null");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   320
                    testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   321
                } else {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   322
                    btv2 = (ByteValue) testedclass.getValue(field2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   323
                    tClass.setValue(field1, btv2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   324
                    log3("ERROR: no InvalidTypeException");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   325
                    testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   326
                }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   327
            } catch ( InvalidTypeException e1 ) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   328
                log2("         InvalidTypeException");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   329
            } catch ( Exception e2 ) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   330
                log3("ERROR: unexpected Exception: " + e2);
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   331
                testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   332
            }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   333
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   334
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   335
            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   336
        }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   337
        log1("      TESTING ENDS");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   338
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   339
    //--------------------------------------------------   test summary section
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   340
    //-------------------------------------------------    standard end section
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   341
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   342
        pipe.println("quit");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   343
        log2("waiting for the debuggee to finish ...");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   344
        debuggee.waitFor();
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   345
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   346
        int status = debuggee.getStatus();
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   347
        if (status != PASSED + PASS_BASE) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   348
            log3("debuggee returned UNEXPECTED exit status: " +
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   349
                    status + " != PASS_BASE");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   350
            testExitCode = FAILED;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   351
        } else {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   352
            log2("debuggee returned expected exit status: " +
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   353
                    status + " == PASS_BASE");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   354
        }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   355
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   356
        if (testExitCode != PASSED) {
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   357
            logHandler.complain("TEST FAILED");
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   358
        }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   359
        return testExitCode;
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   360
    }
3ba0d8631f24 8199382: [TESTBUG] Open source VM testbase JDI tests
iignatyev
parents:
diff changeset
   361
}