| // |
| // 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: "31", |
| 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: "31", |
| 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", |
| } |