blob: 509e881a8bf4ebfb56a04a6a0227601175c2dd78 [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",
Taras Antoshchuk30d41e52021-08-02 18:06:35 +020039 "platform-compat-test-rules",
Remi NGUYEN VAN31022d62021-05-11 13:37:06 +000040 "platform-test-annotations",
41 ],
42 libs: [
43 "android.test.base.stubs",
44 ],
45}
Remi NGUYEN VAN679a8e02021-05-14 07:24:53 +000046
markchiene59f5e32022-04-02 00:45:53 +080047// Combine Connectivity, NetworkStack and Tethering jarjar rules for coverage target.
48// The jarjar files are simply concatenated in the order specified in srcs.
49// jarjar stops at the first matching rule, so order of concatenation affects the output.
50genrule {
51 name: "ConnectivityCoverageJarJarRules",
52 srcs: [
53 "tethering-jni-jarjar-rules.txt",
54 ":connectivity-jarjar-rules",
55 ":TetheringTestsJarJarRules",
56 ":NetworkStackJarJarRules",
57 ],
58 out: ["jarjar-rules-connectivity-coverage.txt"],
59 // Concat files with a line break in the middle
60 cmd: "for src in $(in); do cat $${src}; echo; done > $(out)",
61 visibility: ["//visibility:private"],
62}
63
Remi NGUYEN VAN8ea5ee62021-06-28 18:48:43 +090064android_library {
65 name: "ConnectivityCoverageTestsLib",
66 min_sdk_version: "30",
67 static_libs: [
68 "FrameworksNetTestsLib",
69 "NetdStaticLibTestsLib",
70 "NetworkStaticLibTestsLib",
markchiene59f5e32022-04-02 00:45:53 +080071 "NetworkStackTestsLib",
72 "TetheringTestsLatestSdkLib",
73 "TetheringIntegrationTestsLatestSdkLib",
Remi NGUYEN VAN8ea5ee62021-06-28 18:48:43 +090074 ],
markchiene59f5e32022-04-02 00:45:53 +080075 jarjar_rules: ":ConnectivityCoverageJarJarRules",
Remi NGUYEN VAN8ea5ee62021-06-28 18:48:43 +090076 manifest: "AndroidManifest_coverage.xml",
77 visibility: ["//visibility:private"],
78}
79
Remi NGUYEN VANfe20e132021-06-07 13:10:49 +090080android_test {
81 name: "ConnectivityCoverageTests",
82 // Tethering started on SDK 30
83 min_sdk_version: "30",
Chiachang Wang76df50c2021-12-22 17:47:26 +080084 target_sdk_version: "31",
Kimberly Kreiderc5b3f342021-10-20 18:16:59 +000085 test_suites: ["general-tests", "mts-tethering"],
Remi NGUYEN VANfe20e132021-06-07 13:10:49 +090086 defaults: [
87 "framework-connectivity-test-defaults",
88 "FrameworksNetTests-jni-defaults",
89 "libnetworkstackutilsjni_deps",
90 ],
91 manifest: "AndroidManifest_coverage.xml",
92 test_config: "AndroidTest_Coverage.xml",
93 static_libs: [
94 // Added first so all tests use extended mockito, instead of all tests using regular mockito
95 // (some tests would fail).
96 // TODO: consider removing extended mockito usage in tests that use it, for performance
97 "mockito-target-extended-minus-junit4",
Remi NGUYEN VANfe20e132021-06-07 13:10:49 +090098 "modules-utils-native-coverage-listener",
Remi NGUYEN VAN8ea5ee62021-06-28 18:48:43 +090099 "ConnectivityCoverageTestsLib",
Remi NGUYEN VANfe20e132021-06-07 13:10:49 +0900100 ],
101 jni_libs: [
102 // For mockito extended
103 "libdexmakerjvmtiagent",
104 "libstaticjvmtiagent",
105 // For NetworkStackUtils included in NetworkStackBase
106 "libnetworkstackutilsjni",
Remi NGUYEN VAN2ba9dbe2022-02-01 23:07:33 +0900107 "libandroid_net_connectivity_com_android_net_module_util_jni",
markchienf967b112021-11-09 16:56:23 +0800108 "libcom_android_networkstack_tethering_util_jni",
Remi NGUYEN VANfe20e132021-06-07 13:10:49 +0900109 // For framework tests
110 "libservice-connectivity",
111 ],
112 libs: [
113 // Although not required to compile the static libs together, the "libs" used to build each
114 // of the common static test libs are necessary for R8 to avoid "Missing class" warnings and
115 // incorrect optimizations
116 "framework-tethering.impl",
117 "framework-wifi.stubs.module_lib",
118 ],
119 compile_multilib: "both",
120}
121
Remi NGUYEN VAN679a8e02021-05-14 07:24:53 +0000122// defaults for tests that need to build against framework-connectivity's @hide APIs
123// Only usable from targets that have visibility on framework-connectivity.impl.
124// Instead of using this, consider avoiding to depend on hidden connectivity APIs in
125// tests.
126java_defaults {
127 name: "framework-connectivity-test-defaults",
128 sdk_version: "core_platform", // tests can use @CorePlatformApi's
129 libs: [
130 // order matters: classes in framework-connectivity are resolved before framework,
131 // meaning @hide APIs in framework-connectivity are resolved before @SystemApi
132 // stubs in framework
133 "framework-connectivity.impl",
paulhu537f7202022-02-08 21:25:28 +0800134 "framework-connectivity-t.impl",
markchien2fbd3e72021-08-17 23:59:09 +0800135 "framework-tethering.impl",
Remi NGUYEN VAN679a8e02021-05-14 07:24:53 +0000136 "framework",
137
138 // if sdk_version="" this gets automatically included, but here we need to add manually.
139 "framework-res",
140 ],
141}
Lorenzo Colittida0c43e2022-01-14 11:13:15 +0900142
Lorenzo Colittibe53da12022-01-18 00:27:59 +0900143// Defaults for tests that want to run in mainline-presubmit.
144// Not widely used because many of our tests have AndroidTest.xml files and
Lorenzo Colittida0c43e2022-01-14 11:13:15 +0900145// use the mainline-param config-descriptor metadata in AndroidTest.xml.
Lorenzo Colittibe53da12022-01-18 00:27:59 +0900146
147// test_mainline_modules is an array of strings. Each element in the array is a list of modules
148// separated by "+". The modules in this list must be in alphabetical order.
149// See SuiteModuleLoader.java.
150// TODO: why are the modules separated by + instead of being separate entries in the array?
151mainline_presubmit_modules = [
152 "CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex",
153]
154
Lorenzo Colittida0c43e2022-01-14 11:13:15 +0900155cc_defaults {
156 name: "connectivity-mainline-presubmit-cc-defaults",
Lorenzo Colittibe53da12022-01-18 00:27:59 +0900157 test_mainline_modules: mainline_presubmit_modules,
158}
159
160java_defaults {
161 name: "connectivity-mainline-presubmit-java-defaults",
162 test_mainline_modules: mainline_presubmit_modules,
Lorenzo Colittida0c43e2022-01-14 11:13:15 +0900163}