001/*
002 * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
003 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004 *
005 * This code is free software; you can redistribute it and/or modify it
006 * under the terms of the GNU General Public License version 2 only, as
007 * published by the Free Software Foundation.
008 *
009 * This code is distributed in the hope that it will be useful, but WITHOUT
010 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
011 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
012 * version 2 for more details (a copy is included in the LICENSE file that
013 * accompanied this code).
014 *
015 * You should have received a copy of the GNU General Public License version
016 * 2 along with this work; if not, write to the Free Software Foundation,
017 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
018 *
019 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
020 * or visit www.oracle.com if you need additional information or have any
021 * questions.
022 */
023package com.oracle.graal.jtt.bytecode;
024
025import org.junit.*;
026
027import com.oracle.graal.jtt.*;
028
029/*
030 */
031public class BC_arraylength extends JTTTest {
032
033    static byte[] array0 = {1, 2};
034    static char[] array1 = {'a', 'b', 'c', 'd'};
035    static short[] array2 = {1, 2, 3, 4, 5, 6};
036    static int[] array3 = {1, 2, 3};
037    static long[] array4 = {1L, 2L, 3L, 4L};
038    static float[] array5 = {0.1f, 0.2f};
039    static double[] array6 = {0.1, 0.2, 0.3, 0.4};
040    static Object[] array7 = new Object[5];
041    static boolean[] array8 = {false, true, false};
042
043    public static int testByte(byte[] arg) {
044        return arg.length;
045    }
046
047    public static int testChar(char[] arg) {
048        return arg.length;
049    }
050
051    public static int testShort(short[] arg) {
052        return arg.length;
053    }
054
055    public static int testInt(int[] arg) {
056        return arg.length;
057    }
058
059    public static int testLong(long[] arg) {
060        return arg.length;
061    }
062
063    public static int testFloat(float[] arg) {
064        return arg.length;
065    }
066
067    public static int testDouble(double[] arg) {
068        return arg.length;
069    }
070
071    public static int testObject(Object[] arg) {
072        return arg.length;
073    }
074
075    public static int testBoolean(boolean[] arg) {
076        return arg.length;
077    }
078
079    @Test
080    public void run0() throws Throwable {
081        runTest("testByte", array0);
082    }
083
084    @Test
085    public void run1() throws Throwable {
086        runTest("testChar", array1);
087    }
088
089    @Test
090    public void run2() throws Throwable {
091        runTest("testShort", array2);
092    }
093
094    @Test
095    public void run3() throws Throwable {
096        runTest("testInt", array3);
097    }
098
099    @Test
100    public void run4() throws Throwable {
101        runTest("testLong", array4);
102    }
103
104    @Test
105    public void run5() throws Throwable {
106        runTest("testFloat", array5);
107    }
108
109    @Test
110    public void run6() throws Throwable {
111        runTest("testDouble", array6);
112    }
113
114    @Test
115    public void run7() throws Throwable {
116        runTest("testObject", new Object[]{array7});
117    }
118
119    @Test
120    public void run8() throws Throwable {
121        runTest("testBoolean", array8);
122    }
123
124}