annotate test/compiler/6863420/Test.java @ 4155:394404b2d9bd

Removed strict requirement for GRAAL environment variable. It only needs to be set now if the graal directory is not in the directory hierarchy of GraalVM JDK.
author Doug Simon <doug.simon@oracle.com>
date Wed, 21 Dec 2011 11:25:27 +0100
parents c18cbe5936b8
children f67065f02409
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
894
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
1 /*
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
2 * Copyright 2009 D.E. Shaw. All Rights Reserved.
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
4 *
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
7 * published by the Free Software Foundation.
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
8 *
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
13 * accompanied this code).
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
14 *
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
18 *
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 894
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 894
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 894
diff changeset
21 * questions.
894
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
22 *
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
23 */
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
24
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
25 /**
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
26 * @test
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
27 * @bug 6863420
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
28 * @summary os::javaTimeNanos() go backward on Solaris x86
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
29 *
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
30 * @run main/othervm Test
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
31 */
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
32
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
33 public class Test {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
34 static long value = 0;
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
35 static boolean got_backward_time = false;
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
36
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
37 public static void main(String args[]) {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
38 final int count = 100000;
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
39
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
40 for (int numThreads = 1; numThreads <= 32; numThreads++) {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
41 final int numRuns = 1;
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
42 for (int t=1; t <= numRuns; t++) {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
43 final int curRun = t;
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
44
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
45 System.out.println("Spawning " + numThreads + " threads");
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
46 final Thread threads[] = new Thread[numThreads];
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
47 for (int i = 0; i < threads.length; i++) {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
48 Runnable thread =
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
49 new Runnable() {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
50 public void run() {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
51 for (long l = 0; l < 100000; l++) {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
52 final long start = System.nanoTime();
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
53 if (value == 12345678) {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
54 System.out.println("Wow!");
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
55 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
56 final long end = System.nanoTime();
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
57 final long time = end - start;
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
58 value += time;
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
59 if (time < 0) {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
60 System.out.println(
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
61 "Backwards: " +
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
62 "start=" + start + " " +
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
63 "end=" + end + " " +
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
64 "time= " + time
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
65 );
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
66 got_backward_time = true;
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
67 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
68 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
69 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
70 };
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
71 threads[i] = new Thread(thread, "Thread" + i);
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
72 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
73 for (int i = 0; i < threads.length; i++) {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
74 threads[i].start();
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
75 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
76 for (int i = 0; i < threads.length; i++) {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
77 try {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
78 threads[i].join();
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
79 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
80 catch (InterruptedException e) {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
81 continue;
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
82 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
83 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
84 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
85 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
86
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
87 if (got_backward_time) {
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
88 System.exit(97);
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
89 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
90 }
665be97e8704 6863420: os::javaTimeNanos() go backward on Solaris x86
kvn
parents:
diff changeset
91 }