Fix --annotation-allowed-classes-file, and start using it
Also add some presubmit tests as a smoke test.
Bug: 292141694
Test: run-all-tests.sh
Test: atest --no-bazel-mode CtsUtilTestCasesRavenwood
Change-Id: I30569313b764dfa30db9c2c5627050da4a6a1d67
diff --git a/ravenwood/Android.bp b/ravenwood/Android.bp
index 5c9bf18..ec12d21 100644
--- a/ravenwood/Android.bp
+++ b/ravenwood/Android.bp
@@ -16,15 +16,6 @@
visibility: ["//visibility:public"],
}
-// File that contains the standard command line arguments to hoststubgen.
-filegroup {
- name: "ravenwood-standard-options",
- srcs: [
- "ravenwood-standard-options.txt",
- ],
- visibility: ["//visibility:public"],
-}
-
java_library {
name: "ravenwood-annotations-lib",
srcs: [":ravenwood-annotations"],
diff --git a/ravenwood/TEST_MAPPING b/ravenwood/TEST_MAPPING
new file mode 100644
index 0000000..72eb665
--- /dev/null
+++ b/ravenwood/TEST_MAPPING
@@ -0,0 +1,7 @@
+{
+ "presubmit": [
+ // Let's only run this one as a smoke test.
+ // TODO: Enable it once the infra knows how to run it.
+ // { "name": "CtsUtilTestCasesRavenwood" }
+ ]
+}
diff --git a/ravenwood/framework-minus-apex-ravenwood-policies.txt b/ravenwood/framework-minus-apex-ravenwood-policies.txt
new file mode 100644
index 0000000..48c0a2d
--- /dev/null
+++ b/ravenwood/framework-minus-apex-ravenwood-policies.txt
@@ -0,0 +1,115 @@
+# Ravenwood "policy" file for framework-minus-apex.
+
+# Collections
+class android.util.ArrayMap stubclass
+class android.util.ArraySet stubclass
+class android.util.LongSparseArray stubclass
+class android.util.SparseArrayMap stubclass
+class android.util.SparseArray stubclass
+class android.util.SparseBooleanArray stubclass
+class android.util.SparseIntArray stubclass
+class android.util.SparseLongArray stubclass
+class android.util.ContainerHelpers stubclass
+class android.util.EmptyArray stubclass
+class android.util.MapCollections stubclass
+
+# Logging
+class android.util.Log stubclass
+class android.util.Log !com.android.hoststubgen.nativesubstitution.Log_host
+class android.util.LogPrinter stubclass
+
+# String Manipulation
+class android.util.Printer stubclass
+class android.util.PrintStreamPrinter stubclass
+class android.util.PrintWriterPrinter stubclass
+class android.util.StringBuilderPrinter stubclass
+
+# Properties
+class android.util.Property stubclass
+class android.util.FloatProperty stubclass
+class android.util.IntProperty stubclass
+class android.util.NoSuchPropertyException stubclass
+class android.util.ReflectiveProperty stubclass
+
+# Exceptions
+class android.util.AndroidException stubclass
+class android.util.AndroidRuntimeException stubclass
+
+# JSON
+class android.util.JsonReader stubclass
+class android.util.JsonWriter stubclass
+class android.util.MalformedJsonException stubclass
+
+# Base64
+class android.util.Base64 stubclass
+class android.util.Base64DataException stubclass
+class android.util.Base64InputStream stubclass
+class android.util.Base64OutputStream stubclass
+
+# Data Holders
+class android.util.MutableFloat stubclass
+class android.util.MutableShort stubclass
+class android.util.MutableBoolean stubclass
+class android.util.MutableByte stubclass
+class android.util.MutableChar stubclass
+class android.util.MutableDouble stubclass
+class android.util.Pair stubclass
+class android.util.Range stubclass
+class android.util.Rational stubclass
+class android.util.Size stubclass
+class android.util.SizeF stubclass
+
+# Proto
+class android.util.proto.EncodedBuffer stubclass
+class android.util.proto.ProtoInputStream stubclass
+class android.util.proto.ProtoOutputStream stubclass
+class android.util.proto.ProtoParseException stubclass
+class android.util.proto.ProtoStream stubclass
+class android.util.proto.ProtoUtils stubclass
+class android.util.proto.WireTypeMismatchException stubclass
+
+# Misc
+class android.util.Dumpable stubclass
+class android.util.DebugUtils stubclass
+class android.util.MathUtils stubclass
+class android.util.Patterns stubclass
+class android.util.UtilConfig stubclass
+
+# Internals
+class com.android.internal.util.ArrayUtils stubclass
+ method newUnpaddedByteArray (I)[B @newUnpaddedByteArray$ravenwood
+ method newUnpaddedCharArray (I)[C @newUnpaddedCharArray$ravenwood
+ method newUnpaddedIntArray (I)[I @newUnpaddedIntArray$ravenwood
+ method newUnpaddedBooleanArray (I)[Z @newUnpaddedBooleanArray$ravenwood
+ method newUnpaddedLongArray (I)[J @newUnpaddedLongArray$ravenwood
+ method newUnpaddedFloatArray (I)[F @newUnpaddedFloatArray$ravenwood
+ method newUnpaddedObjectArray (I)[Ljava/lang/Object; @newUnpaddedObjectArray$ravenwood
+ method newUnpaddedArray (Ljava/lang/Class;I)[Ljava/lang/Object; @newUnpaddedArray$ravenwood
+
+class com.android.internal.util.GrowingArrayUtils stubclass
+class com.android.internal.util.LineBreakBufferedWriter stubclass
+class com.android.internal.util.Preconditions stubclass
+class com.android.internal.util.StringPool stubclass
+
+# Parcel
+class android.os.Parcel stubclass
+ method writeException (Ljava/lang/Exception;)V @writeException$ravenwood
+ method writeNoException ()V @writeNoException$ravenwood
+class android.os.Parcel !com.android.hoststubgen.nativesubstitution.Parcel_host
+
+class android.os.Parcelable stubclass
+class android.os.ParcelFormatException stubclass
+class android.os.BadParcelableException stubclass
+class android.os.BadTypeParcelableException stubclass
+
+# Binder: just enough to construct, no further functionality
+class android.os.Binder stub
+ method <init> ()V stub
+ method <init> (Ljava/lang/String;)V stub
+ method isDirectlyHandlingTransaction ()Z stub
+ method isDirectlyHandlingTransactionNative ()Z @isDirectlyHandlingTransactionNative$ravenwood
+ method getNativeBBinderHolder ()J @getNativeBBinderHolder$ravenwood
+
+# Containers
+class android.os.BaseBundle stubclass
+class android.os.Bundle stubclass
diff --git a/ravenwood/ravenwood-annotation-allowed-classes.txt b/ravenwood/ravenwood-annotation-allowed-classes.txt
new file mode 100644
index 0000000..0811f90
--- /dev/null
+++ b/ravenwood/ravenwood-annotation-allowed-classes.txt
@@ -0,0 +1,2 @@
+# Only classes listed here can use the Ravenwood annotations.
+