1 /* 2 * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 package org.graalvm.compiler.jtt.optimize; 24 25 import org.junit.Before; 26 import org.junit.Test; 27 28 import org.graalvm.compiler.jtt.JTTTest; 29 30 /* 31 * Tests calls to the array copy method. 32 */ 33 public class ArrayCopy04 extends JTTTest { 34 35 public static byte[] array = new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 36 public static byte[] array0 = new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 37 static { 38 // Ensure System is resolved 39 System.arraycopy(array, 0, array, 0, array.length); 40 } 41 42 @Before 43 public void setUp() { 44 System.currentTimeMillis(); 45 for (int i = 0; i < array.length; i++) { 46 array[i] = array0[i]; 47 } 48 } 49 50 public static byte[] test(int srcPos, int destPos, int length) { 51 System.arraycopy(array, srcPos, array, destPos, length); 52 return array; 53 } 54 55 @Test 56 public void run0() throws Throwable { 57 runTest("test", 0, 0, 0); 58 } 59 60 @Test 61 public void run1() throws Throwable { 62 runTest("test", 0, 0, -1); 63 } 64 65 @Test 66 public void run2() throws Throwable { 67 runTest("test", -1, 0, 0); 68 } 69 70 @Test 71 public void run3() throws Throwable { 72 runTest("test", 0, -1, 0); 73 } 74 75 @Test 76 public void run4() throws Throwable { 77 runTest("test", 0, 0, 2); 78 } 79 80 @Test 81 public void run5() throws Throwable { 82 runTest("test", 0, 1, 11); 83 } 84 85 @Test 86 public void run6() throws Throwable { 87 runTest("test", 1, 0, 11); 88 } 89 90 @Test 91 public void run7() throws Throwable { 92 runTest("test", 1, 1, -1); 93 } 94 95 @Test 96 public void run8() throws Throwable { 97 runTest("test", 0, 1, 2); 98 } 99 100 @Test 101 public void run9() throws Throwable { 102 runTest("test", 1, 0, 2); 103 } 104 105 @Test 106 public void run10() throws Throwable { 107 runTest("test", 1, 1, 2); 108 } 109 110 @Test 111 public void run11() throws Throwable { 112 runTest("test", 0, 0, 6); 113 } 114 115 @Test 116 public void run12() throws Throwable { 117 runTest("test", 0, 1, 5); 118 } 119 120 @Test 121 public void run13() throws Throwable { 122 runTest("test", 1, 0, 5); 123 } 124 125 @Test 126 public void run14() throws Throwable { 127 runTest("test", 1, 1, 5); 128 } 129 130 @Test 131 public void run15() throws Throwable { 132 runTest("test", 0, 0, 11); 133 } 134 135 @Test 136 public void run16() throws Throwable { 137 runTest("test", 0, 1, 10); 138 } 139 140 @Test 141 public void run17() throws Throwable { 142 runTest("test", 1, 0, 10); 143 } 144 }