Split out connectivity-t-pre-jarjar and tests

The pre-jarjar variant is necessary so that service-t can depend on
hidden symbols in framework-t that reference (for example as parameter)
classes that are jarjared.
Without this, when depending on framework-connectivity-tiramisu.impl,
service-connectivity-t would see post-jarjar symbols that do not match
the classnames it uses in its code.

Also split FrameworksNetTestsLib so that the same jarjar rules can be
applied between the tests and the module, avoiding different errors
between FrameworksNetTests and ConnectivityCoverageTests.

Ignore-AOSP-First: Avoiding conflicts; cherry-pick will follow
Bug: 204830222
Test: m
Change-Id: I3d0c081c4a7422e128beee11c0156f01b0377c96
Merged-In: I3d0c081c4a7422e128beee11c0156f01b0377c96
This commit is contained in:
Remi NGUYEN VAN
2022-02-01 23:07:33 +09:00
committed by junyulai
parent 1e86b3af26
commit 2ba9dbe163
4 changed files with 47 additions and 25 deletions

View File

@@ -29,8 +29,8 @@ java_defaults {
// SDK library for connectivity bootclasspath classes that were part of the non-updatable API before // SDK library for connectivity bootclasspath classes that were part of the non-updatable API before
// T, and were moved to the module in T. Other bootclasspath classes in connectivity should go to // T, and were moved to the module in T. Other bootclasspath classes in connectivity should go to
// framework-connectivity. // framework-connectivity.
java_sdk_library { java_defaults {
name: "framework-connectivity-tiramisu", name: "framework-connectivity-tiramisu-defaults",
sdk_version: "module_current", sdk_version: "module_current",
min_sdk_version: "Tiramisu", min_sdk_version: "Tiramisu",
defaults: [ defaults: [
@@ -41,10 +41,6 @@ java_sdk_library {
":framework-connectivity-tiramisu-updatable-sources", ":framework-connectivity-tiramisu-updatable-sources",
":framework-nearby-java-sources", ":framework-nearby-java-sources",
], ],
// Do not add static_libs to this library: put them in framework-connectivity instead.
// The jarjar rules are only so that references to jarjared utils in
// framework-connectivity-pre-jarjar match at runtime.
jarjar_rules: ":connectivity-jarjar-rules",
stub_only_libs: [ stub_only_libs: [
// Use prebuilt framework-connectivity stubs to avoid circular dependencies // Use prebuilt framework-connectivity stubs to avoid circular dependencies
"sdk_module-lib_current_framework-connectivity", "sdk_module-lib_current_framework-connectivity",
@@ -67,6 +63,33 @@ java_sdk_library {
// non-jarjard names of widely-used packages such as com.android.net.module.util. // non-jarjard names of widely-used packages such as com.android.net.module.util.
"framework-connectivity-pre-jarjar", "framework-connectivity-pre-jarjar",
], ],
apex_available: [
"com.android.tethering",
],
}
java_library {
name: "framework-connectivity-tiramisu-pre-jarjar",
defaults: ["framework-connectivity-tiramisu-defaults"],
libs: [
"framework-bluetooth",
"framework-connectivity-pre-jarjar",
],
visibility: ["//packages/modules/Connectivity:__subpackages__"],
}
// SDK library for connectivity bootclasspath classes that were part of the non-updatable API before
// T, and were moved to the module in T. Other bootclasspath classes in connectivity should go to
// framework-connectivity.
java_sdk_library {
name: "framework-connectivity-tiramisu",
defaults: [
"framework-connectivity-tiramisu-defaults",
],
// Do not add static_libs to this library: put them in framework-connectivity instead.
// The jarjar rules are only so that references to jarjared utils in
// framework-connectivity-pre-jarjar match at runtime.
jarjar_rules: ":connectivity-jarjar-rules",
permitted_packages: [ permitted_packages: [
"android.net", "android.net",
"android.net.nsd", "android.net.nsd",
@@ -74,9 +97,6 @@ java_sdk_library {
"com.android.connectivity", "com.android.connectivity",
"com.android.nearby", "com.android.nearby",
], ],
apex_available: [
"com.android.tethering",
],
impl_library_visibility: [ impl_library_visibility: [
"//packages/modules/Connectivity/Tethering/apex", "//packages/modules/Connectivity/Tethering/apex",
// In preparation for future move // In preparation for future move

View File

@@ -37,7 +37,8 @@ java_library {
libs: [ libs: [
"framework-annotations-lib", "framework-annotations-lib",
"framework-connectivity-pre-jarjar", "framework-connectivity-pre-jarjar",
"framework-connectivity-tiramisu.impl", "framework-connectivity-tiramisu-pre-jarjar",
"framework-tethering.stubs.module_lib",
"service-connectivity-pre-jarjar", "service-connectivity-pre-jarjar",
"unsupportedappusage", "unsupportedappusage",
], ],

View File

@@ -88,6 +88,7 @@ android_test {
"libstaticjvmtiagent", "libstaticjvmtiagent",
// For NetworkStackUtils included in NetworkStackBase // For NetworkStackUtils included in NetworkStackBase
"libnetworkstackutilsjni", "libnetworkstackutilsjni",
"libandroid_net_connectivity_com_android_net_module_util_jni",
"libcom_android_networkstack_tethering_util_jni", "libcom_android_networkstack_tethering_util_jni",
// For framework tests // For framework tests
"libservice-connectivity", "libservice-connectivity",

View File

@@ -107,8 +107,8 @@ java_library {
visibility: ["//visibility:private"], visibility: ["//visibility:private"],
} }
android_library { java_defaults {
name: "FrameworksNetTestsLib", name: "FrameworksNetTestsDefaults",
min_sdk_version: "30", min_sdk_version: "30",
defaults: [ defaults: [
"framework-connectivity-test-defaults", "framework-connectivity-test-defaults",
@@ -117,8 +117,6 @@ android_library {
"java/**/*.java", "java/**/*.java",
"java/**/*.kt", "java/**/*.kt",
], ],
exclude_srcs: [":non-connectivity-module-test"],
jarjar_rules: "jarjar-rules.txt",
static_libs: [ static_libs: [
"androidx.test.rules", "androidx.test.rules",
"androidx.test.uiautomator", "androidx.test.uiautomator",
@@ -144,31 +142,33 @@ android_library {
"android.test.mock", "android.test.mock",
"ServiceConnectivityResources", "ServiceConnectivityResources",
], ],
visibility: ["//packages/modules/Connectivity/tests:__subpackages__"],
exclude_kotlinc_generated_files: false, exclude_kotlinc_generated_files: false,
} }
android_library {
name: "FrameworksNetTestsLib",
defaults: [
"FrameworksNetTestsDefaults",
],
exclude_srcs: [":non-connectivity-module-test"],
visibility: ["//packages/modules/Connectivity/tests:__subpackages__"],
}
android_test { android_test {
name: "FrameworksNetTests", name: "FrameworksNetTests",
enabled: enable_frameworks_net_tests, enabled: enable_frameworks_net_tests,
min_sdk_version: "30",
defaults: [ defaults: [
"framework-connectivity-test-defaults", "FrameworksNetTestsDefaults",
"FrameworksNetTests-jni-defaults", "FrameworksNetTests-jni-defaults",
], ],
// this is in addition to FrameworksNetTestsLib. jarjar_rules: ":connectivity-jarjar-rules",
srcs: [":non-connectivity-module-test"],
test_suites: ["device-tests"], test_suites: ["device-tests"],
static_libs: [ static_libs: [
"services.core", "services.core",
"services.net", "services.net",
"FrameworksNetTestsLib",
],
libs: [
"android.test.mock",
"android.test.base",
], ],
jni_libs: [ jni_libs: [
"libservice-connectivity", "libservice-connectivity",
] "libandroid_net_connectivity_com_android_net_module_util_jni",
],
} }