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
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 @@
@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;