1 /*
2 * Copyright (c) 2016 Red Hat, Inc. and/or its affiliates.
3 *
4 * This code is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License version 2 only, as
6 * published by the Free Software Foundation.
7 *
8 * This code is distributed in the hope that it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
11 * version 2 for more details (a copy is included in the LICENSE file that
12 * accompanied this code).
13 *
14 * You should have received a copy of the GNU General Public License version
15 * 2 along with this work; if not, write to the Free Software Foundation,
16 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17 *
18 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
19 * or visit www.oracle.com if you need additional information or have any
20 * questions.
21 *
22 */
23
24 import java.util.Arrays;
25
26 public class ShenandoahJNICritical {
27 static {
28 System.loadLibrary("ShenandoahJNICritical");
29 }
30
31 private static final int NUM_RUNS = 10000;
32 private static final int ARRAY_SIZE=10000;
33 private static int[] a;
34 private static int[] b;
35 private static native void copyAtoB(int[] a, int[] b);
36
37 public static void main(String[] args) {
38 a = new int[ARRAY_SIZE];
39 b = new int[ARRAY_SIZE];
40 for (int i = 0; i < NUM_RUNS; i++) {
41 test();
42 }
43 }
44
45 private static void test() {
46 int[] a1 = new int[ARRAY_SIZE];
47 int[] b1 = new int[ARRAY_SIZE];
48 fillArray(a);
49 copyAtoB(a, b);
50 copyAtoB(a1, b1); // Don't optimize out garbage arrays.
51 if (! Arrays.equals(a, b)) {
52 throw new RuntimeException("arrays not equal");
53 }
54 }
55
56 private static void fillArray(int[] array) {
57 for (int i = 0; i < ARRAY_SIZE; i++) {
58 int val = (int) (Math.random() * Integer.MAX_VALUE);
59 array[i] = val;
60 }
61 }
62 }
|
1 /*
2 * Copyright (c) 2016, 2017, Red Hat, Inc. All rights reserved.
3 *
4 * This code is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License version 2 only, as
6 * published by the Free Software Foundation.
7 *
8 * This code is distributed in the hope that it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
11 * version 2 for more details (a copy is included in the LICENSE file that
12 * accompanied this code).
13 *
14 * You should have received a copy of the GNU General Public License version
15 * 2 along with this work; if not, write to the Free Software Foundation,
16 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17 *
18 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
19 * or visit www.oracle.com if you need additional information or have any
20 * questions.
21 *
22 */
23
24 import java.util.Arrays;
25
26 public class TestJNICritical {
27 static {
28 System.loadLibrary("TestJNICritical");
29 }
30
31 private static final int NUM_RUNS = 10000;
32 private static final int ARRAY_SIZE = 10000;
33 private static int[] a;
34 private static int[] b;
35
36 private static native void copyAtoB(int[] a, int[] b);
37
38 public static void main(String[] args) {
39 a = new int[ARRAY_SIZE];
40 b = new int[ARRAY_SIZE];
41 for (int i = 0; i < NUM_RUNS; i++) {
42 test();
43 }
44 }
45
46 private static void test() {
47 int[] a1 = new int[ARRAY_SIZE];
48 int[] b1 = new int[ARRAY_SIZE];
49 fillArray(a);
50 copyAtoB(a, b);
51 copyAtoB(a1, b1); // Don't optimize out garbage arrays.
52 if (!Arrays.equals(a, b)) {
53 throw new RuntimeException("arrays not equal");
54 }
55 }
56
57 private static void fillArray(int[] array) {
58 for (int i = 0; i < ARRAY_SIZE; i++) {
59 int val = (int) (Math.random() * Integer.MAX_VALUE);
60 array[i] = val;
61 }
62 }
63 }
|