blob: a2bd1a5e2d01b73198ff7ad31ed25dde32ce6d82 [file] [log] [blame]
//
// Copyright (C) 2020 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: ["Android-Apache-2.0"],
}
java_defaults {
name: "TetheringIntegrationTestsDefaults",
defaults: ["framework-connectivity-test-defaults"],
srcs: [
"src/**/*.java",
"src/**/*.kt",
],
min_sdk_version: "30",
static_libs: [
"NetworkStackApiStableLib",
"androidx.test.rules",
"mockito-target-extended-minus-junit4",
"net-tests-utils",
"testables",
],
libs: [
"android.test.runner",
"android.test.base",
"android.test.mock",
],
jni_libs: [
// For mockito extended
"libdexmakerjvmtiagent",
"libstaticjvmtiagent",
],
}
// Library including tethering integration tests targeting the latest stable SDK.
// Use with NetworkStackJarJarRules.
android_library {
name: "TetheringIntegrationTestsLatestSdkLib",
target_sdk_version: "30",
platform_apis: true,
defaults: ["TetheringIntegrationTestsDefaults"],
visibility: [
"//packages/modules/Connectivity/tests/cts/tethering",
"//packages/modules/Connectivity/tests:__subpackages__",
"//packages/modules/Connectivity/Tethering/tests:__subpackages__",
]
}
// Library including tethering integration tests targeting current development SDK.
// Use with NetworkStackJarJarRules.
android_library {
name: "TetheringIntegrationTestsLib",
target_sdk_version: "current",
platform_apis: true,
defaults: ["TetheringIntegrationTestsDefaults"],
visibility: [
"//packages/modules/Connectivity/tests/cts/tethering",
"//packages/modules/Connectivity/Tethering/tests/mts",
]
}
android_test {
name: "TetheringIntegrationTests",
platform_apis: true,
defaults: ["TetheringIntegrationTestsDefaults"],
test_suites: [
"device-tests",
"mts-tethering",
],
compile_multilib: "both",
jarjar_rules: ":NetworkStackJarJarRules",
}
android_library {
name: "TetheringCoverageTestsLib",
min_sdk_version: "30",
static_libs: [
"NetdStaticLibTestsLib",
"NetworkStaticLibTestsLib",
"NetworkStackTestsLib",
"TetheringTestsLatestSdkLib",
"TetheringIntegrationTestsLatestSdkLib",
],
// Jarjar rules should normally be applied on final artifacts and not intermediate libraries as
// applying different rules on intermediate libraries can cause conflicts when combining them
// (the resulting artifact can end up with multiple incompatible implementations of the same
// classes). But this library is used to combine tethering coverage tests with connectivity
// coverage tests into a single coverage target. The tests need to use the same jarjar rules as
// covered production code for coverage to be calculated properly, so jarjar is applied
// separately on each set of tests.
jarjar_rules: ":TetheringCoverageJarJarRules",
manifest: "AndroidManifest_coverage.xml",
visibility: [
"//packages/modules/Connectivity/tests:__subpackages__"
],
}
// Combine NetworkStack and Tethering jarjar rules for coverage target. The jarjar files are
// simply concatenated in the order specified in srcs.
genrule {
name: "TetheringCoverageJarJarRules",
srcs: [
":TetheringTestsJarJarRules",
":NetworkStackJarJarRules",
],
out: ["jarjar-rules-tethering-coverage.txt"],
cmd: "cat $(in) > $(out)",
visibility: ["//visibility:private"],
}
// Special version of the tethering tests that includes all tests necessary for code coverage
// purposes. This is currently the union of TetheringTests, TetheringIntegrationTests and
// NetworkStackTests.
// TODO: remove in favor of ConnectivityCoverageTests, which includes below tests and more
android_test {
name: "TetheringCoverageTests",
platform_apis: true,
min_sdk_version: "30",
target_sdk_version: "30",
test_suites: ["device-tests", "mts-tethering"],
test_config: "AndroidTest_Coverage.xml",
defaults: ["libnetworkstackutilsjni_deps"],
static_libs: [
"modules-utils-native-coverage-listener",
"TetheringCoverageTestsLib",
],
jni_libs: [
// For mockito extended
"libdexmakerjvmtiagent",
"libstaticjvmtiagent",
// For NetworkStackUtils included in NetworkStackBase
"libnetworkstackutilsjni",
"libcom_android_networkstack_tethering_util_jni",
],
compile_multilib: "both",
manifest: "AndroidManifest_coverage.xml",
}