1// 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 21 default_applicable_licenses: ["Android-Apache-2.0"], 22} 23 24java_library { 25 name: "FrameworksNetCommonTests", 26 defaults: ["framework-connectivity-test-defaults"], 27 srcs: [ 28 "java/**/*.java", 29 "java/**/*.kt", 30 ], 31 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} 45 46// 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 63android_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: ["general-tests", "mts"], 70 defaults: [ 71 "framework-connectivity-test-defaults", 72 "FrameworksNetTests-jni-defaults", 73 "libnetworkstackutilsjni_deps", 74 ], 75 manifest: "AndroidManifest_coverage.xml", 76 test_config: "AndroidTest_Coverage.xml", 77 static_libs: [ 78 // Added first so all tests use extended mockito, instead of all tests using regular mockito 79 // (some tests would fail). 80 // TODO: consider removing extended mockito usage in tests that use it, for performance 81 "mockito-target-extended-minus-junit4", 82 "modules-utils-native-coverage-listener", 83 "ConnectivityCoverageTestsLib", 84 "TetheringCoverageTestsLib", 85 ], 86 jni_libs: [ 87 // For mockito extended 88 "libdexmakerjvmtiagent", 89 "libstaticjvmtiagent", 90 // For NetworkStackUtils included in NetworkStackBase 91 "libnetworkstackutilsjni", 92 "libtetherutilsjni", 93 // For framework tests 94 "libservice-connectivity", 95 ], 96 libs: [ 97 // Although not required to compile the static libs together, the "libs" used to build each 98 // of the common static test libs are necessary for R8 to avoid "Missing class" warnings and 99 // incorrect optimizations 100 "framework-tethering.impl", 101 "framework-wifi.stubs.module_lib", 102 ], 103 compile_multilib: "both", 104} 105 106// defaults for tests that need to build against framework-connectivity's @hide APIs 107// Only usable from targets that have visibility on framework-connectivity.impl. 108// Instead of using this, consider avoiding to depend on hidden connectivity APIs in 109// tests. 110java_defaults { 111 name: "framework-connectivity-test-defaults", 112 sdk_version: "core_platform", // tests can use @CorePlatformApi's 113 libs: [ 114 // order matters: classes in framework-connectivity are resolved before framework, 115 // meaning @hide APIs in framework-connectivity are resolved before @SystemApi 116 // stubs in framework 117 "framework-connectivity.impl", 118 "framework", 119 120 // if sdk_version="" this gets automatically included, but here we need to add manually. 121 "framework-res", 122 ], 123} 124