summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2012-12-17 10:04:08 -0800
committerElliott Hughes <enh@google.com>2012-12-17 10:04:08 -0800
commit09bc5a2ec106dd1be73b07967f7db056f8194ae8 (patch)
treeb28fe01956cfc34f758149a20e9fb659802bfaed /test
parent4c5b265e66bebf890b6f9e53cddeb512774b1613 (diff)
downloadart-09bc5a2ec106dd1be73b07967f7db056f8194ae8.zip
art-09bc5a2ec106dd1be73b07967f7db056f8194ae8.tar.gz
art-09bc5a2ec106dd1be73b07967f7db056f8194ae8.tar.bz2
Add a run-test test for annotation classes missing at run time.
Bug: http://code.google.com/p/android/issues/detail?id=39854 Change-Id: I526847ecd07438efb4529d6667153c5ebbeea974
Diffstat (limited to 'test')
-rw-r--r--test/004-annotations/build27
-rw-r--r--test/004-annotations/src/android/test/anno/MissingAnnotation.java8
-rw-r--r--test/004-annotations/src/android/test/anno/SimplyNoted.java6
3 files changed, 41 insertions, 0 deletions
diff --git a/test/004-annotations/build b/test/004-annotations/build
new file mode 100644
index 0000000..1690213
--- /dev/null
+++ b/test/004-annotations/build
@@ -0,0 +1,27 @@
+#!/bin/bash
+#
+# 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.
+
+# Stop if something fails.
+set -e
+
+mkdir classes
+
+# android.test.anno.MissingAnnotation is available at compile time...
+${JAVAC} -d classes `find src -name '*.java'`
+
+# ...but not at run time.
+rm classes/android/test/anno/MissingAnnotation.class
+${DX} -JXmx256m --debug --dex --output=$TEST_NAME.jar classes
diff --git a/test/004-annotations/src/android/test/anno/MissingAnnotation.java b/test/004-annotations/src/android/test/anno/MissingAnnotation.java
new file mode 100644
index 0000000..56da15a
--- /dev/null
+++ b/test/004-annotations/src/android/test/anno/MissingAnnotation.java
@@ -0,0 +1,8 @@
+package android.test.anno;
+
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@Retention(RUNTIME) public @interface MissingAnnotation {
+}
+
diff --git a/test/004-annotations/src/android/test/anno/SimplyNoted.java b/test/004-annotations/src/android/test/anno/SimplyNoted.java
index 95a3d24..b757465 100644
--- a/test/004-annotations/src/android/test/anno/SimplyNoted.java
+++ b/test/004-annotations/src/android/test/anno/SimplyNoted.java
@@ -3,24 +3,30 @@ package android.test.anno;
@AnnoSimpleType
@AnnoSimpleType2
@AnnoSimpleTypeInvis
+@MissingAnnotation
public class SimplyNoted {
@AnnoSimpleField
+ @MissingAnnotation
public int mFoo;
@AnnoSimpleField
+ @MissingAnnotation
public static int mOneFoo;
@AnnoSimpleConstructor
+ @MissingAnnotation
SimplyNoted() {
mFoo = 0;
}
@AnnoSimpleConstructor
+ @MissingAnnotation
SimplyNoted(@AnnoSimpleParameter int xyzzy) {
mFoo = xyzzy;
}
@AnnoSimpleMethod
+ @MissingAnnotation
public int foo() {
@AnnoSimpleLocalVariable
int bar = 5;