Switch android.test and junit classes to use UnsupportedAppUsage
The UnsupportedAppUsage annotations could not be added directly to the java files in src/ as they have to be built against the current api which does not include the annotation. Instead this uses the same technique as used for libcore/ojluni files and adds the annotations to stub files (in hiddenapi/src) which are built as part of the android.test.base-hiddenapi target. That target is added to a special whitelist in build/soong/java/config/config.go which causes the hiddenapi information to be extracted from the target. Also, updates the preupload check to prevent anymore entries being added to the config/hiddenapi-greylist.txt for android.test or junit classes. Bug: 73711752 Test: m cts-hiddenapi_flags-csv and check that it contained the correct entries even though they had been removed from config/hiddenapi-greylist.txt Change-Id: Ifaf15d2751f54cb03f8402b866a0ee4da7acc4d2
This commit is contained in:
parent
3e15c9f9ba
commit
997fa46197
@ -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;-><init>()V
|
||||
Landroid/util/XmlPullAttributes;-><init>(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;-><init>(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;
|
||||
|
29
test-base/hiddenapi/Android.bp
Normal file
29
test-base/hiddenapi/Android.bp
Normal file
@ -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 <x>-hiddenapi provide hiddenapi information for
|
||||
// module <x> that is on the bootclasspath.
|
||||
java_library {
|
||||
name: "android.test.base-hiddenapi",
|
||||
compile_dex: true,
|
||||
|
||||
srcs: ["src/**/*.java"],
|
||||
|
||||
libs: ["android.test.base"],
|
||||
}
|
46
test-base/hiddenapi/src/android/test/AndroidTestCase.java
Normal file
46
test-base/hiddenapi/src/android/test/AndroidTestCase.java
Normal file
@ -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!");
|
||||
}
|
||||
}
|
@ -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!");
|
||||
}
|
||||
}
|
46
test-base/hiddenapi/src/junit/framework/TestCase.java
Normal file
46
test-base/hiddenapi/src/junit/framework/TestCase.java
Normal file
@ -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!");
|
||||
}
|
||||
}
|
58
test-base/hiddenapi/src/junit/framework/TestSuite.java
Normal file
58
test-base/hiddenapi/src/junit/framework/TestSuite.java
Normal file
@ -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!");
|
||||
}
|
||||
}
|
@ -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 \
|
||||
|
Loading…
x
Reference in New Issue
Block a user