diff --git a/config/hiddenapi-greylist.txt b/config/hiddenapi-greylist.txt index 4a43616974c9..e9bd735fd919 100644 --- a/config/hiddenapi-greylist.txt +++ b/config/hiddenapi-greylist.txt @@ -1556,9 +1556,6 @@ Landroid/telephony/SmsCbMessage;->getServiceCategory()I Landroid/telephony/SmsCbMessage;->isCmasMessage()Z Landroid/telephony/SmsCbMessage;->isEmergencyMessage()Z Landroid/telephony/TelephonyManager$MultiSimVariants;->values()[Landroid/telephony/TelephonyManager$MultiSimVariants; -Landroid/test/AndroidTestCase;->getTestContext()Landroid/content/Context; -Landroid/test/AndroidTestCase;->setTestContext(Landroid/content/Context;)V -Landroid/test/InstrumentationTestCase;->runMethod(Ljava/lang/reflect/Method;I)V Landroid/util/Singleton;->()V Landroid/util/XmlPullAttributes;->(Lorg/xmlpull/v1/XmlPullParser;)V Landroid/util/XmlPullAttributes;->mParser:Lorg/xmlpull/v1/XmlPullParser; @@ -4596,9 +4593,6 @@ Lgov/nist/javax/sip/address/SipUri;->setParameter(Ljava/lang/String;Ljava/lang/S Lgov/nist/javax/sip/address/SipUri;->setUserParam(Ljava/lang/String;)V Lgov/nist/javax/sip/parser/URLParser;->(Ljava/lang/String;)V Lgov/nist/javax/sip/parser/URLParser;->sipURL(Z)Lgov/nist/javax/sip/address/SipUri; -Ljunit/framework/TestCase;->fName:Ljava/lang/String; -Ljunit/framework/TestSuite;->isPublicTestMethod(Ljava/lang/reflect/Method;)Z -Ljunit/framework/TestSuite;->isTestMethod(Ljava/lang/reflect/Method;)Z Lorg/apache/xalan/extensions/ExpressionContext;->getContextNode()Lorg/w3c/dom/Node; Lorg/apache/xalan/extensions/ExpressionContext;->getErrorListener()Ljavax/xml/transform/ErrorListener; Lorg/apache/xalan/extensions/ExpressionContext;->getVariableOrParam(Lorg/apache/xml/utils/QName;)Lorg/apache/xpath/objects/XObject; diff --git a/test-base/hiddenapi/Android.bp b/test-base/hiddenapi/Android.bp new file mode 100644 index 000000000000..c4e0fab4a1a8 --- /dev/null +++ b/test-base/hiddenapi/Android.bp @@ -0,0 +1,29 @@ +// +// Copyright (C) 2019 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. +// + +// Provided solely to contribute information about which hidden parts of the android.test.base +// library are used by apps. The source files are stubs of the actual files in ../src which use the +// UnsupportedAppUsage annotation to tag those methods that are accessible via the hiddenapi. +// Relies on the convention that modules with name -hiddenapi provide hiddenapi information for +// module that is on the bootclasspath. +java_library { + name: "android.test.base-hiddenapi", + compile_dex: true, + + srcs: ["src/**/*.java"], + + libs: ["android.test.base"], +} diff --git a/test-base/hiddenapi/src/android/test/AndroidTestCase.java b/test-base/hiddenapi/src/android/test/AndroidTestCase.java new file mode 100644 index 000000000000..2b9beb160110 --- /dev/null +++ b/test-base/hiddenapi/src/android/test/AndroidTestCase.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2019 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 android.test; + +import android.annotation.UnsupportedAppUsage; +import android.content.Context; + +import junit.framework.TestCase; + +/** + * @deprecated Stub only + */ +@SuppressWarnings({ "unchecked", "deprecation", "all" }) +@Deprecated +public class AndroidTestCase extends TestCase { + + /** + * Stub only + */ + @UnsupportedAppUsage + public void setTestContext(Context context) { + throw new RuntimeException("Stub!"); + } + + /** + * Stub only + */ + @UnsupportedAppUsage + public Context getTestContext() { + throw new RuntimeException("Stub!"); + } +} diff --git a/test-base/hiddenapi/src/android/test/InstrumentationTestCase.java b/test-base/hiddenapi/src/android/test/InstrumentationTestCase.java new file mode 100644 index 000000000000..139cd18a176c --- /dev/null +++ b/test-base/hiddenapi/src/android/test/InstrumentationTestCase.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2019 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 android.test; + +import android.annotation.UnsupportedAppUsage; + +import junit.framework.TestCase; + +import java.lang.reflect.Method; + +/** + * @deprecated Stub only + */ +@SuppressWarnings({ "unchecked", "deprecation", "all" }) +@Deprecated +public class InstrumentationTestCase extends TestCase { + + /** + * Stub only + */ + @UnsupportedAppUsage + private void runMethod(Method runMethod, int tolerance) throws Throwable { + throw new RuntimeException("Stub!"); + } +} diff --git a/test-base/hiddenapi/src/junit/framework/TestCase.java b/test-base/hiddenapi/src/junit/framework/TestCase.java new file mode 100644 index 000000000000..5a5486108a7a --- /dev/null +++ b/test-base/hiddenapi/src/junit/framework/TestCase.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2019 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 junit.framework; + +import android.annotation.UnsupportedAppUsage; + +/** + * Stub only + */ +@SuppressWarnings({ "unchecked", "deprecation", "all" }) +public abstract class TestCase extends Assert implements Test { + + /** + * the name of the test case + */ + @UnsupportedAppUsage + private String fName; + + /** + * Stub only + */ + public int countTestCases() { + throw new RuntimeException("Stub!"); + } + + /** + * Stub only + */ + public void run(TestResult result) { + throw new RuntimeException("Stub!"); + } +} diff --git a/test-base/hiddenapi/src/junit/framework/TestSuite.java b/test-base/hiddenapi/src/junit/framework/TestSuite.java new file mode 100644 index 000000000000..368c661dbfa4 --- /dev/null +++ b/test-base/hiddenapi/src/junit/framework/TestSuite.java @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2019 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 junit.framework; + +import android.annotation.UnsupportedAppUsage; + +import java.lang.reflect.Method; + +/** + * Stub only + */ +@SuppressWarnings({ "unchecked", "deprecation", "all" }) +public class TestSuite implements Test { + + /** + * Stub only + */ + @UnsupportedAppUsage + private boolean isPublicTestMethod(Method m) { + throw new RuntimeException("Stub!"); + } + + /** + * Stub only + */ + @UnsupportedAppUsage + private boolean isTestMethod(Method m) { + throw new RuntimeException("Stub!"); + } + + /** + * Stub only + */ + public int countTestCases() { + throw new RuntimeException("Stub!"); + } + + /** + * Stub only + */ + public void run(TestResult result) { + throw new RuntimeException("Stub!"); + } +} diff --git a/tools/hiddenapi/exclude.sh b/tools/hiddenapi/exclude.sh index 4ffcf6846947..18c40546fd02 100755 --- a/tools/hiddenapi/exclude.sh +++ b/tools/hiddenapi/exclude.sh @@ -9,6 +9,7 @@ LOCAL_DIR="$( dirname ${BASH_SOURCE} )" LIBCORE_PACKAGES="\ android.icu \ android.system \ + android.test \ com.android.bouncycastle \ com.android.conscrypt \ com.android.i18n.phonenumbers \ @@ -17,6 +18,7 @@ LIBCORE_PACKAGES="\ dalvik \ java \ javax \ + junit \ libcore \ org.apache.harmony \ org.json \