blob: af69d62d189561a09c80bb0308297ec5f366bb8b [file] [log] [blame]
/*
* Copyright (c) 2008, 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 jit/inline/inline003.
* VM Testbase keywords: [jit, quick]
*
* @library /vmTestbase
* /test/lib
* @run driver jdk.test.lib.FileInstaller . .
* @build jit.inline.inline003.inline003
* @run driver ExecDriver --java jit.inline.inline003.inline003
*/
package jit.inline.inline003;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import nsk.share.TestFailure;
import nsk.share.GoldChecker;
class inline003_1 {
final protected static int[] inlineClassObj1 = { 1, 2 };
protected static int[] inlineClassObj2 = { 3, 4};
final protected static int[] trash = { 10, 11};
}
class inline003 extends inline003_1 {
public static final GoldChecker goldChecker = new GoldChecker( "inline003" );
final private static int ITERS=4;
private static int pFlag = 0;
private static int[] myIters = new int[15];
final private static int[] inlineClassObj3 = { 4, 5 };
private static int[] inlineClassObj4 = { 5, 6 };
final private static int[] inlineObj5 = { 6, 7 };
final private static int[] inlineObj6 = { 7, 8 };
final private static int[] inlineObj7 = { 8, 9 };
final private static int[] inlineObj8 = { 9, 10 };
private Object inlineInstanceObj1 = inline003.inlineObj5;
private Object inlineInstanceObj2 = inline003.inlineObj6;
private Object inlineInstanceObj3 = inline003.inlineObj7;
private Object inlineInstanceObj4 = inline003.inlineObj8;
private final static Object MPAT_Const4_fs00() {
return null;
}
private final static Object MPAT_GetStatic4_fsc1() {
return inlineClassObj1;
}
private final static Object MPAT_GetStatic4_fsc2() {
return inlineClassObj2;
}
private final static Object MPAT_GetStatic4_fsc3() {
return inlineClassObj3;
}
private final static Object MPAT_GetStatic4_fsc4() {
return inlineClassObj4;
}
private final Object MPAT_GetStatic4_fnc1() {
return inlineClassObj1;
}
private final Object MPAT_GetStatic4_fnc2() {
return inlineClassObj2;
}
private final Object MPAT_GetStatic4_fnc3() {
return inlineClassObj3;
}
private final Object MPAT_GetStatic4_fnc4() {
return inlineClassObj4;
}
private final Object MPAT_Const4_fn00() {
return null;
}
private final Object MPAT_GetField4_fni1() {
return inlineInstanceObj1;
}
private final Object MPAT_GetField4_fni2() {
return inlineInstanceObj2;
}
private final Object MPAT_GetField4_fni3() {
return inlineInstanceObj3;
}
private final Object MPAT_GetField4_fni4() {
return inlineInstanceObj4;
}
private final Object MPAT_Handle_fi() {
return this;
}
private void runFinals () {
int jcount=0;
Object locObj = null;
if (pFlag==2) inline003.goldChecker.print("MPAT_Const4_fs00");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_Const4_fs00();
if (locObj != null) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[0] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fsc1");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetStatic4_fsc1();
if (locObj != inlineClassObj1) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[1] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fsc2");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetStatic4_fsc2();
if (locObj != inlineClassObj2) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[2] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fsc3");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetStatic4_fsc3();
if (locObj != inlineClassObj3) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[3] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fsc4");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetStatic4_fsc4();
if (locObj != inlineClassObj4) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[4] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fnc1");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetStatic4_fnc1();
if (locObj != inlineClassObj1) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[5] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fnc2");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetStatic4_fnc2();
if (locObj != inlineClassObj2) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[6] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fnc3");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetStatic4_fnc3();
if (locObj != inlineClassObj3) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[7] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fnc4");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetStatic4_fnc4();
if (locObj != inlineClassObj4) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[8] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_Const4_fn00");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_Const4_fn00();
if (locObj != null) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[9] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetField4_fni1");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetField4_fni1();
if (locObj != inlineInstanceObj1) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[10] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetField4_fni2");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetField4_fni2();
if (locObj != inlineInstanceObj2) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[11] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetField4_fni3");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetField4_fni3();
if (locObj != inlineInstanceObj3) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[12] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_GetField4_fni4");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_GetField4_fni4();
if (locObj != inlineInstanceObj4) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[13] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
if (pFlag==2) inline003.goldChecker.print("MPAT_Handle_fi");
try {
jcount = 0;
for (jcount=0; jcount<ITERS; jcount++) {
locObj = trash;
locObj = MPAT_Handle_fi();
if (locObj != this) break;
}
} catch (Exception e) {
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
} finally {
myIters[14] = jcount;
if (pFlag==2) inline003.goldChecker.println();
}
}
public static int result() {
String[] label = {
"MPAT_Const4_fs00",
"MPAT_GetStatic4_fsc1",
"MPAT_GetStatic4_fsc2",
"MPAT_GetStatic4_fsc3",
"MPAT_GetStatic4_fsc4",
"MPAT_GetStatic4_fnc1",
"MPAT_GetStatic4_fnc2",
"MPAT_GetStatic4_fnc3",
"MPAT_GetStatic4_fnc4",
"MPAT_Const4_fn00",
"MPAT_GetField4_fni1",
"MPAT_GetField4_fni2",
"MPAT_GetField4_fni3",
"MPAT_GetField4_fni4",
"MPAT_Handle_fi" };
ByteArrayOutputStream baos = new ByteArrayOutputStream(80);
byte[] ba = new byte[80];
String s = null;
int ierr = 0;
for (int icount=0; icount < 15; icount++) {
if (pFlag >= 1) {
baos.reset();
try {
for (int i=0; i<ba.length; i++) ba[i]=(byte)' ';
for (int i=0; i<label[icount].length(); i++)
ba[i]=(byte)label[icount].charAt(i);
baos.write(ba,0,27);
}
catch (IndexOutOfBoundsException e) {
}
try {
for (int i=0; i<ba.length; i++) ba[i]=(byte)' ';
baos.write(ba,0,3);
s = Long.toString(myIters[icount]);
for (int i=0; i<s.length(); i++)
ba[i]=(byte)s.charAt(i);
baos.write(ba,0,7);
}
catch (IndexOutOfBoundsException e) {
}
inline003.goldChecker.print(baos.toString());
inline003.goldChecker.println();
}
if (myIters[icount] != ITERS) ierr=1;
}
return ierr;
}
public static void main( String args[] ) {
int ierr=0;
inline003 myInline_f = new inline003();
if (args.length > 0 && args[0].equals("-help")) {
inline003.goldChecker.println("usage: java inline003 [-print]");
inline003.goldChecker.check();
return;
}
pFlag = 1;
if (args.length > 0 && args[0].equals("-print"))
pFlag = 2;
for (int ii=0; ii<15; ii++) myIters[ii]=ITERS;
if (pFlag==2) inline003.goldChecker.println("inline003");
/* Give the JIT an initial look at all the methods */
myInline_f.runFinals();
ierr = inline003.result();
if (ierr == 0) {
inline003.goldChecker.println("PASSED.");
}
else {
inline003.goldChecker.println("FAILED. (ierr = " + ierr + ")");
}
inline003.goldChecker.check();
}
}