summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/530-instanceof-checkcast/expected.txt0
-rw-r--r--test/530-instanceof-checkcast/info.txt1
-rw-r--r--test/530-instanceof-checkcast/src/Main.java248
3 files changed, 0 insertions, 249 deletions
diff --git a/test/530-instanceof-checkcast/expected.txt b/test/530-instanceof-checkcast/expected.txt
deleted file mode 100644
index e69de29bb2..0000000000
--- a/test/530-instanceof-checkcast/expected.txt
+++ /dev/null
diff --git a/test/530-instanceof-checkcast/info.txt b/test/530-instanceof-checkcast/info.txt
deleted file mode 100644
index 51f68ccf02..0000000000
--- a/test/530-instanceof-checkcast/info.txt
+++ /dev/null
@@ -1 +0,0 @@
-Tests compiler optimizations on instanceof and checkcast.
diff --git a/test/530-instanceof-checkcast/src/Main.java b/test/530-instanceof-checkcast/src/Main.java
deleted file mode 100644
index 5f068f1b09..0000000000
--- a/test/530-instanceof-checkcast/src/Main.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-public class Main {
-
- static Object exactCheck = new ExactCheck();
- static Object abstractCheckImpl = new AbstractCheckImpl();
- static Object interfaceCheckImpl = new InterfaceCheckImpl();
- static Object normalCheck = new NormalCheck();
- static Object regularObject = new Object();
- static Object objectArray = new Object[2];
- static Object intArray = new int[2];
- static Object doubleArray = new double[2];
- static Object exactArray = new ExactCheck[2];
- static Object normalArray = new NormalCheck[2];
-
- static Object field;
-
- public static void main(String[] args) {
- checkInstanceOfNonTryCatch();
- // We also check for a method with try/catch because the compiler then makes a slow
- // path unconditionally save its live registers.
- checkInstanceOfTryCatch();
-
- checkCheckCast();
- }
-
- public static void checkInstanceOfNonTryCatch() {
- check(true, exactCheck instanceof ExactCheck);
- check(false, regularObject instanceof ExactCheck);
-
- check(true, abstractCheckImpl instanceof AbstractCheck);
- check(false, regularObject instanceof AbstractCheck);
-
- check(true, interfaceCheckImpl instanceof InterfaceCheck);
- check(false, regularObject instanceof InterfaceCheck);
-
- check(true, normalCheck instanceof NormalCheck);
- check(true, exactCheck instanceof NormalCheck);
- check(false, regularObject instanceof NormalCheck);
-
- check(false, regularObject instanceof int[]);
- check(false, objectArray instanceof int[]);
- check(true, intArray instanceof int[]);
- check(false, doubleArray instanceof int[]);
-
- check(false, regularObject instanceof ExactCheck[]);
- check(false, objectArray instanceof ExactCheck[]);
- check(false, doubleArray instanceof ExactCheck[]);
- check(true, exactArray instanceof ExactCheck[]);
- check(false, normalArray instanceof ExactCheck[]);
-
- check(false, regularObject instanceof NormalCheck[]);
- check(false, objectArray instanceof NormalCheck[]);
- check(false, doubleArray instanceof NormalCheck[]);
- check(true, exactArray instanceof NormalCheck[]);
- check(true, normalArray instanceof NormalCheck[]);
-
- check(false, regularObject instanceof Object[]);
- check(true, objectArray instanceof Object[]);
- check(false, doubleArray instanceof Object[]);
- check(true, exactArray instanceof Object[]);
- check(true, normalArray instanceof Object[]);
- }
-
- public static void checkInstanceOfTryCatch() {
- try {
- check(true, exactCheck instanceof ExactCheck);
- check(false, regularObject instanceof ExactCheck);
-
- check(true, abstractCheckImpl instanceof AbstractCheck);
- check(false, regularObject instanceof AbstractCheck);
-
- check(true, interfaceCheckImpl instanceof InterfaceCheck);
- check(false, regularObject instanceof InterfaceCheck);
-
- check(true, normalCheck instanceof NormalCheck);
- check(true, exactCheck instanceof NormalCheck);
- check(false, regularObject instanceof NormalCheck);
-
- check(false, regularObject instanceof int[]);
- check(false, objectArray instanceof int[]);
- check(true, intArray instanceof int[]);
- check(false, doubleArray instanceof int[]);
-
- check(false, regularObject instanceof ExactCheck[]);
- check(false, objectArray instanceof ExactCheck[]);
- check(false, doubleArray instanceof ExactCheck[]);
- check(true, exactArray instanceof ExactCheck[]);
- check(false, normalArray instanceof ExactCheck[]);
-
- check(false, regularObject instanceof NormalCheck[]);
- check(false, objectArray instanceof NormalCheck[]);
- check(false, doubleArray instanceof NormalCheck[]);
- check(true, exactArray instanceof NormalCheck[]);
- check(true, normalArray instanceof NormalCheck[]);
-
- check(false, regularObject instanceof Object[]);
- check(true, objectArray instanceof Object[]);
- check(false, doubleArray instanceof Object[]);
- check(true, exactArray instanceof Object[]);
- check(true, normalArray instanceof Object[]);
- } catch (Throwable t) {
- throw new Error("Unreachable");
- }
- }
-
- public static void check(boolean expected, boolean actual) {
- if (actual != expected) {
- throw new Error("Expected " + expected + ", got " + actual);
- }
- }
-
- public static void checkCheckCast() {
- // Exact check.
- field = (ExactCheck)exactCheck;
- try {
- field = (ExactCheck)regularObject;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- // Abstract check.
- field = (AbstractCheck)abstractCheckImpl;
- try {
- field = (AbstractCheck)regularObject;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- // Interface check.
- field = (InterfaceCheck)interfaceCheckImpl;
- try {
- field = (InterfaceCheck)regularObject;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- // Normal check.
- field = (NormalCheck)normalCheck;
- field = (NormalCheck)exactCheck;
- try {
- field = (NormalCheck)regularObject;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- // Primitive array check.
- try {
- field = (int[])regularObject;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- try {
- field = (int[])objectArray;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- field = (int[])intArray;
- try {
- field = (int[])doubleArray;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- // Array with final component type check.
- try {
- field = (ExactCheck[])regularObject;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- try {
- field = (ExactCheck[])objectArray;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- try {
- field = (ExactCheck[])doubleArray;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- field = (ExactCheck[])exactArray;
- try {
- field = (ExactCheck[])normalArray;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- // Array with non final component type check.
- try {
- field = (NormalCheck[])regularObject;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- try {
- field = (NormalCheck[])objectArray;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- try {
- field = (NormalCheck[])doubleArray;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- field = (NormalCheck[])exactArray;
- field = (NormalCheck[])normalArray;
-
- // Object[] check.
- try{
- field = (Object[])regularObject;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- field = (Object[])objectArray;
- try {
- field = (Object[])doubleArray;
- throw new Error("Can't reach here");
- } catch (ClassCastException ignore) {}
-
- field = (Object[])exactArray;
- field = (Object[])normalArray;
- }
-}
-
-class NormalCheck {
-}
-
-final class ExactCheck extends NormalCheck {
-}
-
-abstract class AbstractCheck {
-}
-
-class AbstractCheckImpl extends AbstractCheck {
-}
-
-interface InterfaceCheck {
-}
-
-class InterfaceCheckImpl implements InterfaceCheck {
-}