diff --git a/framework/Android.bp b/framework/Android.bp index 185e8a5a0e..93ef3bf4ed 100644 --- a/framework/Android.bp +++ b/framework/Android.bp @@ -118,7 +118,16 @@ java_sdk_library { "//packages/modules/Connectivity/service", "//frameworks/base/packages/Connectivity/service", "//frameworks/base", - "//packages/modules/Connectivity/Tethering/tests/unit", + + // Tests using hidden APIs + "//external/sl4a:__subpackages__", + "//frameworks/base/tests/net:__subpackages__", + "//frameworks/libs/net/common/testutils", + "//frameworks/libs/net/common/tests:__subpackages__", + "//frameworks/opt/telephony/tests/telephonytests", + "//packages/modules/Connectivity/Tethering/tests:__subpackages__", + "//packages/modules/Connectivity/tests:__subpackages__", + "//packages/modules/NetworkStack/tests:__subpackages__", ], apex_available: [ "//apex_available:platform", diff --git a/test/Android.bp b/test/Android.bp new file mode 100644 index 0000000000..a6cad2e7fa --- /dev/null +++ b/test/Android.bp @@ -0,0 +1,38 @@ +// +// Copyright (C) 2021 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 { + default_applicable_licenses: ["frameworks_base_license"], +} + +// defaults for tests that need to build against framework-connectivity's @hide APIs +// Only usable from targets that have visibility on framework-connectivity.impl. +// Instead of using this, consider avoiding to depend on hidden connectivity APIs in +// tests. +java_defaults { + name: "framework-connectivity-test-defaults", + sdk_version: "core_platform", // tests can use @CorePlatformApi's + libs: [ + // order matters: classes in framework-connectivity are resolved before framework, + // meaning @hide APIs in framework-connectivity are resolved before @SystemApi + // stubs in framework + "framework-connectivity.impl", + "framework", + + // if sdk_version="" this gets automatically included, but here we need to add manually. + "framework-res", + ], +} diff --git a/tests/common/Android.bp b/tests/common/Android.bp index dc668707d7..3a0f40b48c 100644 --- a/tests/common/Android.bp +++ b/tests/common/Android.bp @@ -23,7 +23,11 @@ package { java_library { name: "FrameworksNetCommonTests", - srcs: ["java/**/*.java", "java/**/*.kt"], + defaults: ["framework-connectivity-test-defaults"], + srcs: [ + "java/**/*.java", + "java/**/*.kt", + ], static_libs: [ "androidx.core_core", "androidx.test.rules", diff --git a/tests/unit/Android.bp b/tests/unit/Android.bp index 9a0c42292f..6c4bb909c9 100644 --- a/tests/unit/Android.bp +++ b/tests/unit/Android.bp @@ -47,12 +47,14 @@ java_defaults { android_test { name: "FrameworksNetTests", - defaults: ["FrameworksNetTests-jni-defaults"], + defaults: [ + "framework-connectivity-test-defaults", + "FrameworksNetTests-jni-defaults", + ], srcs: [ "java/**/*.java", "java/**/*.kt", ], - platform_apis: true, test_suites: ["device-tests"], certificate: "platform", jarjar_rules: "jarjar-rules.txt",