blob: 6b149b6fca8b7e159ee33efb8b173b18974d9f2b [file] [log] [blame]
Remi NGUYEN VAN31022d62021-05-11 13:37:06 +00001//
2// Copyright (C) 2019 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17// Tests in this folder are included both in unit tests and CTS.
18// They must be fast and stable, and exercise public or test APIs.
19package {
20 // See: http://go/android-license-faq
Baligh Uddin36847132021-05-23 16:38:40 +000021 default_applicable_licenses: ["Android-Apache-2.0"],
Remi NGUYEN VAN31022d62021-05-11 13:37:06 +000022}
23
24java_library {
25 name: "FrameworksNetCommonTests",
Remi NGUYEN VAN3912c802021-03-16 01:31:07 +000026 defaults: ["framework-connectivity-test-defaults"],
27 srcs: [
28 "java/**/*.java",
29 "java/**/*.kt",
30 ],
Remi NGUYEN VAN31022d62021-05-11 13:37:06 +000031 static_libs: [
32 "androidx.core_core",
33 "androidx.test.rules",
34 "junit",
35 "mockito-target-minus-junit4",
36 "modules-utils-build",
37 "net-tests-utils",
38 "net-utils-framework-common",
39 "platform-test-annotations",
40 ],
41 libs: [
42 "android.test.base.stubs",
43 ],
44}
Remi NGUYEN VAN679a8e02021-05-14 07:24:53 +000045
Remi NGUYEN VAN8ea5ee62021-06-28 18:48:43 +090046// Connectivity coverage tests combines Tethering and Connectivity tests, each with their
47// respective jarjar rules applied.
48// Some tests may be duplicated (in particular static lib tests), as they need to be run under both
49// jarjared packages to cover both usages.
50android_library {
51 name: "ConnectivityCoverageTestsLib",
52 min_sdk_version: "30",
53 static_libs: [
54 "FrameworksNetTestsLib",
55 "NetdStaticLibTestsLib",
56 "NetworkStaticLibTestsLib",
57 ],
58 jarjar_rules: ":connectivity-jarjar-rules",
59 manifest: "AndroidManifest_coverage.xml",
60 visibility: ["//visibility:private"],
61}
62
Remi NGUYEN VANfe20e132021-06-07 13:10:49 +090063android_test {
64 name: "ConnectivityCoverageTests",
65 // Tethering started on SDK 30
66 min_sdk_version: "30",
67 // TODO: change to 31 as soon as it is available
68 target_sdk_version: "30",
69 test_suites: ["device-tests", "mts"],
Remi NGUYEN VAN8b23feb2021-06-17 16:42:45 +090070 test_mainline_modules: [
71 "CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex",
72 ],
Remi NGUYEN VANfe20e132021-06-07 13:10:49 +090073 defaults: [
74 "framework-connectivity-test-defaults",
75 "FrameworksNetTests-jni-defaults",
76 "libnetworkstackutilsjni_deps",
77 ],
78 manifest: "AndroidManifest_coverage.xml",
79 test_config: "AndroidTest_Coverage.xml",
80 static_libs: [
81 // Added first so all tests use extended mockito, instead of all tests using regular mockito
82 // (some tests would fail).
83 // TODO: consider removing extended mockito usage in tests that use it, for performance
84 "mockito-target-extended-minus-junit4",
Remi NGUYEN VANfe20e132021-06-07 13:10:49 +090085 "modules-utils-native-coverage-listener",
Remi NGUYEN VAN8ea5ee62021-06-28 18:48:43 +090086 "ConnectivityCoverageTestsLib",
87 "TetheringCoverageTestsLib",
Remi NGUYEN VANfe20e132021-06-07 13:10:49 +090088 ],
89 jni_libs: [
90 // For mockito extended
91 "libdexmakerjvmtiagent",
92 "libstaticjvmtiagent",
93 // For NetworkStackUtils included in NetworkStackBase
94 "libnetworkstackutilsjni",
95 "libtetherutilsjni",
96 // For framework tests
97 "libservice-connectivity",
98 ],
99 libs: [
100 // Although not required to compile the static libs together, the "libs" used to build each
101 // of the common static test libs are necessary for R8 to avoid "Missing class" warnings and
102 // incorrect optimizations
103 "framework-tethering.impl",
104 "framework-wifi.stubs.module_lib",
105 ],
106 compile_multilib: "both",
107}
108
Remi NGUYEN VAN679a8e02021-05-14 07:24:53 +0000109// defaults for tests that need to build against framework-connectivity's @hide APIs
110// Only usable from targets that have visibility on framework-connectivity.impl.
111// Instead of using this, consider avoiding to depend on hidden connectivity APIs in
112// tests.
113java_defaults {
114 name: "framework-connectivity-test-defaults",
115 sdk_version: "core_platform", // tests can use @CorePlatformApi's
116 libs: [
117 // order matters: classes in framework-connectivity are resolved before framework,
118 // meaning @hide APIs in framework-connectivity are resolved before @SystemApi
119 // stubs in framework
120 "framework-connectivity.impl",
121 "framework",
122
123 // if sdk_version="" this gets automatically included, but here we need to add manually.
124 "framework-res",
125 ],
126}