test/compiler/6663621/IVTest.java

Mon, 28 Jul 2014 15:06:38 -0700

author
fzhinkin
date
Mon, 28 Jul 2014 15:06:38 -0700
changeset 6997
dbb05f6d93c4
parent 1907
c18cbe5936b8
child 6876
710a3c8b516e
permissions
-rw-r--r--

8051344: JVM crashed in Compile::start() during method parsing w/ UseRTMDeopt turned on
Summary: call rtm_deopt() only if there were no compilation bailouts before.
Reviewed-by: kvn

never@507 1 /*
trims@1907 2 * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
kamg@612 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
never@507 4 *
kamg@612 5 * This code is free software; you can redistribute it and/or modify it
kamg@612 6 * under the terms of the GNU General Public License version 2 only, as
kamg@612 7 * published by the Free Software Foundation.
never@507 8 *
kamg@612 9 * This code is distributed in the hope that it will be useful, but WITHOUT
kamg@612 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
kamg@612 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
kamg@612 12 * version 2 for more details (a copy is included in the LICENSE file that
kamg@612 13 * accompanied this code).
never@507 14 *
kamg@612 15 * You should have received a copy of the GNU General Public License version
kamg@612 16 * 2 along with this work; if not, write to the Free Software Foundation,
kamg@612 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
never@507 18 *
trims@1907 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
trims@1907 20 * or visit www.oracle.com if you need additional information or have any
trims@1907 21 * questions.
never@507 22 *
never@507 23 */
never@507 24
never@507 25 /**
never@507 26 * @test
never@507 27 * @bug 6663621
never@507 28 * @summary JVM crashes while trying to execute api/java_security/Signature/SignatureTests.html#initSign tests.
never@507 29 */
never@507 30
never@507 31 public class IVTest {
never@507 32 static int paddedSize;
never@507 33
never@507 34 static void padV15(byte[] padded) {
never@507 35 int psSize = padded.length;
never@507 36 int k = 0;
never@507 37 while (psSize-- > 0) {
never@507 38 padded[k++] = (byte)0xff;
never@507 39 }
never@507 40 }
never@507 41
never@507 42 static void padV15_2(int paddedSize) {
never@507 43 byte[] padded = new byte[paddedSize];
never@507 44 int psSize = padded.length;
never@507 45 int k = 0;
never@507 46 while (psSize-- > 0) {
never@507 47 padded[k++] = (byte)0xff;
never@507 48 }
never@507 49 }
never@507 50
never@507 51 static void padV15_3() {
never@507 52 byte[] padded = new byte[paddedSize];
never@507 53 int psSize = padded.length;
never@507 54 int k = 0;
never@507 55 while (psSize-- > 0) {
never@507 56 padded[k++] = (byte)0xff;
never@507 57 }
never@507 58 }
never@507 59
never@507 60 static void padV15_4() {
never@507 61 byte[] padded = new byte[paddedSize];
never@507 62 int psSize = padded.length;
never@507 63 for (int k = 0;psSize > 0; psSize--) {
never@507 64 int i = padded.length - psSize;
never@507 65 padded[i] = (byte)0xff;
never@507 66 }
never@507 67 }
never@507 68
never@507 69 static void padV15_5() {
never@507 70 byte[] padded = new byte[paddedSize];
never@507 71 int psSize = padded.length;
never@507 72 int k = psSize - 1;
never@507 73 for (int i = 0; i < psSize; i++) {
never@507 74 padded[k--] = (byte)0xff;
never@507 75 }
never@507 76 }
never@507 77
never@507 78 public static void main(String argv[]) {
never@507 79 int bounds = 1024;
never@507 80 int lim = 500000;
never@507 81 long start = System.currentTimeMillis();
never@507 82 for (int j = 0; j < lim; j++) {
never@507 83 paddedSize = j % bounds;
never@507 84 padV15(new byte[paddedSize]);
never@507 85 }
never@507 86 long end = System.currentTimeMillis();
never@507 87 System.out.println(end - start);
never@507 88 start = System.currentTimeMillis();
never@507 89 for (int j = 0; j < lim; j++) {
never@507 90 paddedSize = j % bounds;
never@507 91 padV15_2(paddedSize);
never@507 92 }
never@507 93 end = System.currentTimeMillis();
never@507 94 System.out.println(end - start);
never@507 95 start = System.currentTimeMillis();
never@507 96 for (int j = 0; j < lim; j++) {
never@507 97 paddedSize = j % bounds;
never@507 98 padV15_3();
never@507 99 }
never@507 100 end = System.currentTimeMillis();
never@507 101 System.out.println(end - start);
never@507 102 start = System.currentTimeMillis();
never@507 103 for (int j = 0; j < lim; j++) {
never@507 104 paddedSize = j % bounds;
never@507 105 padV15_4();
never@507 106 }
never@507 107 end = System.currentTimeMillis();
never@507 108 System.out.println(end - start);
never@507 109 start = System.currentTimeMillis();
never@507 110 for (int j = 0; j < lim; j++) {
never@507 111 paddedSize = j % bounds;
never@507 112 padV15_5();
never@507 113 }
never@507 114 end = System.currentTimeMillis();
never@507 115 System.out.println(end - start);
never@507 116 }
never@507 117 }

mercurial