From 3912c80e9993c2fb92230d9ac09b6c91282c0c17 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Tue, 16 Mar 2021 01:31:07 +0000 Subject: [PATCH] Add framework-connectivity-test-defaults The defaults follow the same pattern as framework-wifi-test-defaults to allow unit tests to build against hidden API in Connectivity. (clean cherry-pick of history in downstream branch) Bug: 171540887 Test: m Merged-In: I3c2563d4ae4e3715d0c6270344ba8f7ef067872f Change-Id: Ia8531f672820fcc8968f98494903e486c4e42652 --- framework/Android.bp | 11 ++++++++++- test/Android.bp | 38 ++++++++++++++++++++++++++++++++++++++ tests/common/Android.bp | 6 +++++- tests/unit/Android.bp | 6 ++++-- 4 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 test/Android.bp 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",