test/hotspot/jtreg/vmTestbase/nsk/jdwp/Method/IsObsolete/isobsolete002/TestDescription.java
changeset 50317 cf71bff5f533
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdwp/Method/IsObsolete/isobsolete002/TestDescription.java	Wed May 30 20:54:45 2018 -0700
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+/*
+ * @test
+ *
+ * @summary converted from VM Testbase nsk/jdwp/Method/IsObsolete/isobsolete002.
+ * VM Testbase keywords: [quick, jpda, jdwp, redefine]
+ * VM Testbase readme:
+ * DESCRIPTION
+ *     This test performs checking for
+ *         command set: Method
+ *         command: IsObsolete
+ *     Test checks that debugee accept the command packet and
+ *     replies with correct reply packet after class redefinition
+ *     for redefined method being at that time with active stack
+ *     frame.
+ *     Test consists of two compoments:
+ *         debugger: isobsolete002
+ *         debuggee: isobsolete002a
+ *     First, debugger uses nsk.share support classes to launch debuggee
+ *     and obtain Transport object, that represents JDWP transport channel.
+ *     It waits for tested class is loaded, sets breakpoint on the tested
+ *     method, and waits for breakpoint is reached.
+ *     Then, it loads bytecode of redefined class from *.klass file and
+ *     redefines the class. After class redefinition, debugger queries
+ *     debiggi for the methodID of to level stack frame and checks this
+ *     method.
+ *     Debugger creates command packet with Method.IsObsolete command for
+ *     the tested method, writes this packet to the transport channel,
+ *     and waits for a reply packet. When reply packet is received,
+ *     debugger parses the packet structure and checks if expected
+ *     isObsolete value returned in the packet.
+ *     Finally, debugger disconnects debuggee, waits for it exits
+ *     and exits too with the proper exit code.
+ * COMMENTS
+ *     First positional argument for the test should be path to the test
+ *     work directory where loaded *.klass file should be located.
+ *         Test was fixed due to test bug:
+ *         4514956 Method.isObsolete() returns false for redefined method
+ *     Test was updated according to rfe:
+ *     4691123 TEST: some jdi tests contain precompiled .klass files undes SCCS.
+ *     isobsolete002b.ja was moved into newclass directory and renamed
+ *     to isobsolete002b.java.
+ *     The precompiled class file is created during test base build process.
+ *
+ * @library /vmTestbase /test/hotspot/jtreg/vmTestbase
+ *          /test/lib
+ * @run driver jdk.test.lib.FileInstaller . .
+ * @build ExecDriver
+ * @build nsk.jdwp.Method.IsObsolete.isobsolete002
+ *        nsk.jdwp.Method.IsObsolete.isobsolete002a
+ *        nsk.jdwp.Method.IsObsolete.isobsolete002b
+ * @run driver PropertyResolvingWrapper ExecDriver --cmd
+ *      ${compile.jdk}/bin/javac
+ *      -cp ${test.class.path}
+ *      -d newclass
+ *      newclass/isobsolete002b.java
+ * @run main/othervm PropertyResolvingWrapper
+ *      nsk.jdwp.Method.IsObsolete.isobsolete002
+ *      .
+ *      -arch=${os.family}-${os.simpleArch}
+ *      -verbose
+ *      -waittime=5
+ *      -debugee.vmkind=java
+ *      -transport.address=dynamic
+ *      -debugee.vmkeys="${test.vm.opts} ${test.java.opts}"
+ */
+