diff options
Diffstat (limited to 'jack-tests/tests/com/android/jack/switchstatement/test006')
-rw-r--r-- | jack-tests/tests/com/android/jack/switchstatement/test006/dx/Tests.java | 64 | ||||
-rw-r--r-- | jack-tests/tests/com/android/jack/switchstatement/test006/jack/Switch.java | 65 |
2 files changed, 129 insertions, 0 deletions
diff --git a/jack-tests/tests/com/android/jack/switchstatement/test006/dx/Tests.java b/jack-tests/tests/com/android/jack/switchstatement/test006/dx/Tests.java new file mode 100644 index 0000000..60e0aee --- /dev/null +++ b/jack-tests/tests/com/android/jack/switchstatement/test006/dx/Tests.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2012 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. + */ + +package com.android.jack.switchstatement.test006.dx; + +import com.android.jack.switchstatement.test006.jack.Switch; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +/** + * Tests about switches. + */ +public class Tests { + + @Test + public void test1() { + Assert.assertEquals(3, Switch.switch001(new Switch.A())); + try { + Switch.switch001(null); + Assert.fail(); + } catch (NullPointerException npe) { + // It is ok + } + } + + @Test + public void test2() { + try { + Switch.switch002(); + Assert.fail(); + } catch (ExceptionInInitializerError npe) { + // It is ok + } + } + + public void test3() { + try { + Switch.switch003(new Switch.A()); + Assert.fail(); + } catch (ExceptionInInitializerError npe) { + // It is ok + } + } + + public void test4() { + Assert.assertEquals(1, Switch.switch004(0)) ; + } + +} diff --git a/jack-tests/tests/com/android/jack/switchstatement/test006/jack/Switch.java b/jack-tests/tests/com/android/jack/switchstatement/test006/jack/Switch.java new file mode 100644 index 0000000..83251db --- /dev/null +++ b/jack-tests/tests/com/android/jack/switchstatement/test006/jack/Switch.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2012 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. + */ + +package com.android.jack.switchstatement.test006.jack; + +public class Switch { + + public static class A { + public int value; + } + + public static class B { + public static int value; + static { + int i = 0; + if (i != 1) { + throw new NullPointerException(); + } + } + } + + public static int switch001(A a) { + switch (a.value) { + default: + return 3; + } + } + + public static int switch002() { + switch (B.value) { + default: + return 3; + } + } + + @SuppressWarnings({"boxing", "cast"}) + public static int switch003(A a) { + switch ((Integer) a.value) { + default: + return 3; + } + } + + public static int switch004(int i) { + int [] array = {1, 2}; + switch (array[i++]) { + default: + return i; + } + } + +} |