1//######################################################################## 2// Build FrameworksNetTests package 3//######################################################################## 4package { 5 // See: http://go/android-license-faq 6 // A large-scale-change added 'default_applicable_licenses' to import 7 // all of the 'license_kinds' from "Android-Apache-2.0" 8 // to get the below license kinds: 9 // SPDX-license-identifier-Apache-2.0 10 default_applicable_licenses: ["Android-Apache-2.0"], 11} 12 13// Whether to enable the FrameworksNetTests. Set to false in the branches that might have older 14// frameworks/base since FrameworksNetTests includes the test for classes that are not in 15// connectivity module. 16enable_frameworks_net_tests = true 17// Placeholder 18// This is a placeholder comment to minimize merge conflicts, as enable_frameworks_net_tests 19// may have different values depending on the branch 20// Placeholder 21 22java_defaults { 23 name: "FrameworksNetTests-jni-defaults", 24 jni_libs: [ 25 "ld-android", 26 "libandroid_net_frameworktests_util_jni", 27 "libbase", 28 "libbinder", 29 "libc++", 30 "libcrypto", 31 "libcutils", 32 "libdl_android", 33 "libhidl-gen-utils", 34 "libhidlbase", 35 "libjsoncpp", 36 "liblog", 37 "liblzma", 38 "libnativehelper", 39 "libnetdutils", 40 "libnetworkstats", 41 "libnetworkstatsfactorytestjni", 42 "libpackagelistparser", 43 "libpcre2", 44 "libselinux", 45 "libtinyxml2", 46 "libui", 47 "libunwindstack", 48 "libutils", 49 "libutilscallstack", 50 "libvndksupport", 51 "libziparchive", 52 "libz", 53 "netd_aidl_interface-V5-cpp", 54 ], 55} 56 57filegroup { 58 name: "non-connectivity-module-test", 59 srcs: [ 60 "java/android/net/Ikev2VpnProfileTest.java", 61 "java/android/net/IpMemoryStoreTest.java", 62 "java/android/net/TelephonyNetworkSpecifierTest.java", 63 "java/android/net/VpnManagerTest.java", 64 "java/android/net/ipmemorystore/*.java", 65 "java/android/net/netstats/NetworkStatsDataMigrationUtilsTest.kt", 66 "java/com/android/internal/net/NetworkUtilsInternalTest.java", 67 "java/com/android/internal/net/VpnProfileTest.java", 68 "java/com/android/server/VpnManagerServiceTest.java", 69 "java/com/android/server/connectivity/IpConnectivityEventBuilderTest.java", 70 "java/com/android/server/connectivity/IpConnectivityMetricsTest.java", 71 "java/com/android/server/connectivity/MetricsTestUtil.java", 72 "java/com/android/server/connectivity/MultipathPolicyTrackerTest.java", 73 "java/com/android/server/connectivity/NetdEventListenerServiceTest.java", 74 "java/com/android/server/connectivity/VpnTest.java", 75 "java/com/android/server/net/ipmemorystore/*.java", 76 ] 77} 78 79// Subset of services-core used to by ConnectivityService tests to test VPN realistically. 80// This is stripped by jarjar (see rules below) from other unrelated classes, so tests do not 81// include most classes from services-core, which are unrelated and cause wrong code coverage 82// calculations. 83java_library { 84 name: "services.core-vpn", 85 static_libs: ["services.core"], 86 jarjar_rules: "vpn-jarjar-rules.txt", 87 visibility: ["//visibility:private"], 88} 89 90java_defaults { 91 name: "FrameworksNetTestsDefaults", 92 min_sdk_version: "30", 93 defaults: [ 94 "framework-connectivity-internal-test-defaults", 95 ], 96 srcs: [ 97 "java/**/*.java", 98 "java/**/*.kt", 99 ], 100 static_libs: [ 101 "androidx.test.rules", 102 "androidx.test.uiautomator_uiautomator", 103 "bouncycastle-repackaged-unbundled", 104 "core-tests-support", 105 "FrameworksNetCommonTests", 106 "frameworks-base-testutils", 107 "frameworks-net-integration-testutils", 108 "framework-protos", 109 "mockito-target-minus-junit4", 110 "net-tests-utils", 111 "net-utils-services-common", 112 "platform-compat-test-rules", 113 "platform-test-annotations", 114 "service-connectivity-pre-jarjar", 115 "service-connectivity-tiramisu-pre-jarjar", 116 "services.core-vpn", 117 "testables", 118 "cts-net-utils" 119 ], 120 libs: [ 121 "android.net.ipsec.ike.stubs.module_lib", 122 "android.test.runner", 123 "android.test.base", 124 "android.test.mock", 125 "ServiceConnectivityResources", 126 ], 127 exclude_kotlinc_generated_files: false, 128} 129 130android_library { 131 name: "FrameworksNetTestsLib", 132 defaults: [ 133 "FrameworksNetTestsDefaults", 134 ], 135 exclude_srcs: [":non-connectivity-module-test"], 136 visibility: ["//packages/modules/Connectivity/tests:__subpackages__"], 137} 138 139genrule { 140 name: "frameworks-net-tests-jarjar-rules", 141 defaults: ["jarjar-rules-combine-defaults"], 142 srcs: [ 143 ":frameworks-net-tests-lib-jarjar-gen", 144 // This is necessary because the tests use framework-connectivity-internal-test-defaults, 145 // which require the user to use connectivity jarjar rules. 146 ":connectivity-jarjar-rules", 147 ], 148 out: ["frameworks-net-tests-jarjar-rules.txt"], 149 visibility: ["//packages/modules/Connectivity/tests:__subpackages__"], 150} 151 152java_genrule { 153 name: "frameworks-net-tests-lib-jarjar-gen", 154 tool_files: [ 155 ":FrameworksNetTestsLib{.jar}", 156 "jarjar-excludes.txt", 157 ], 158 tools: [ 159 "jarjar-rules-generator", 160 ], 161 out: ["frameworks-net-tests-lib-jarjar-rules.txt"], 162 cmd: "$(location jarjar-rules-generator) " + 163 "$(location :FrameworksNetTestsLib{.jar}) " + 164 "--prefix android.net.connectivity " + 165 "--excludes $(location jarjar-excludes.txt) " + 166 "--output $(out)", 167 visibility: ["//visibility:private"], 168} 169 170android_test { 171 name: "FrameworksNetTests", 172 enabled: enable_frameworks_net_tests, 173 defaults: [ 174 "FrameworksNetTestsDefaults", 175 "FrameworksNetTests-jni-defaults", 176 ], 177 jarjar_rules: ":frameworks-net-tests-jarjar-rules", 178 test_suites: ["device-tests"], 179 static_libs: [ 180 "services.core", 181 "services.net", 182 ], 183 jni_libs: [ 184 "libandroid_net_connectivity_com_android_net_module_util_jni", 185 "libservice-connectivity", 186 ], 187} 188