From 1ed8affa72dc60f4056fd00cf81eb9f7a9c15f19 Mon Sep 17 00:00:00 2001 From: Aaron Huang Date: Tue, 28 Sep 2021 15:37:49 +0800 Subject: [PATCH] Enable/disable FrameworksNetTests Currently, there are some test for classes that are not in connectivity module. If the platform code has a new change that the test depends on it, then the test cannot verify the behavior since the change does not exist in module branch. This change moves the test for non-module classes out of FrameworksNetTestsLib so that it doesn't go into coverage tests. Then add those tests to FrameworksNetTests and use a variable to enable/disable FrameworksNetTests which could minimize merge conflicts. Bug: 201265286 Test: make FrameworksNetTests Change-Id: Ia9669da2c4d79054710e7f4173bc960e3f77f45a --- tests/deflake/Android.bp | 19 ++++++++++++++ tests/unit/Android.bp | 53 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/tests/deflake/Android.bp b/tests/deflake/Android.bp index 806f805dd3..8205f1cf2f 100644 --- a/tests/deflake/Android.bp +++ b/tests/deflake/Android.bp @@ -19,8 +19,17 @@ package { default_applicable_licenses: ["Android-Apache-2.0"], } +// FrameworksNetDeflakeTest depends on FrameworksNetTests so it should be disabled +// if FrameworksNetTests is disabled. +enable_frameworks_net_deflake_test = true +// Placeholder +// This is a placeholder comment to minimize merge conflicts, as enable_frameworks_net_deflake_test +// may have different values depending on the branch +// Placeholder + java_test_host { name: "FrameworksNetDeflakeTest", + enabled: enable_frameworks_net_deflake_test, srcs: ["src/**/*.kt"], libs: [ "junit", @@ -32,4 +41,14 @@ java_test_host { ], data: [":FrameworksNetTests"], test_suites: ["device-tests"], + // It will get build error if just set enabled to true. It fails with "windows_common" + // depends on some disabled modules that are used by this test and it looks like set + // enable_frameworks_net_deflake_test to true also enables "windows" variant. Thus, + // disable this on target windows. + // TODO: Remove this when b/201754360 is fixed. + target: { + windows: { + enabled: false, + }, + }, } diff --git a/tests/unit/Android.bp b/tests/unit/Android.bp index 7b232559fc..892da098a2 100644 --- a/tests/unit/Android.bp +++ b/tests/unit/Android.bp @@ -6,6 +6,15 @@ package { default_applicable_licenses: ["Android-Apache-2.0"], } +// Whether to enable the FrameworksNetTests. Set to false in the branches that might have older +// frameworks/base since FrameworksNetTests includes the test for classes that are not in +// connectivity module. +enable_frameworks_net_tests = true +// Placeholder +// This is a placeholder comment to minimize merge conflicts, as enable_frameworks_net_tests +// may have different values depending on the branch +// Placeholder + java_defaults { name: "FrameworksNetTests-jni-defaults", jni_libs: [ @@ -44,6 +53,42 @@ java_defaults { ], } +filegroup { + name: "non-connectivity-module-test", + srcs: [ + "java/android/app/usage/*.java", + "java/android/net/Ikev2VpnProfileTest.java", + "java/android/net/IpMemoryStoreTest.java", + "java/android/net/IpSecAlgorithmTest.java", + "java/android/net/IpSecConfigTest.java", + "java/android/net/IpSecManagerTest.java", + "java/android/net/IpSecTransformTest.java", + "java/android/net/KeepalivePacketDataUtilTest.java", + "java/android/net/NetworkIdentityTest.kt", + "java/android/net/NetworkStatsTest.java", + "java/android/net/NetworkStatsHistoryTest.java", + "java/android/net/NetworkTemplateTest.kt", + "java/android/net/TelephonyNetworkSpecifierTest.java", + "java/android/net/VpnManagerTest.java", + "java/android/net/ipmemorystore/*.java", + "java/android/net/nsd/*.java", + "java/com/android/internal/net/NetworkUtilsInternalTest.java", + "java/com/android/internal/net/VpnProfileTest.java", + "java/com/android/server/IpSecServiceParameterizedTest.java", + "java/com/android/server/IpSecServiceRefcountedResourceTest.java", + "java/com/android/server/IpSecServiceTest.java", + "java/com/android/server/NetworkManagementServiceTest.java", + "java/com/android/server/NsdServiceTest.java", + "java/com/android/server/connectivity/IpConnectivityEventBuilderTest.java", + "java/com/android/server/connectivity/IpConnectivityMetricsTest.java", + "java/com/android/server/connectivity/MultipathPolicyTrackerTest.java", + "java/com/android/server/connectivity/NetdEventListenerServiceTest.java", + "java/com/android/server/connectivity/VpnTest.java", + "java/com/android/server/net/ipmemorystore/*.java", + "java/com/android/server/net/NetworkStats*.java", + ] +} + android_library { name: "FrameworksNetTestsLib", min_sdk_version: "30", @@ -54,6 +99,7 @@ android_library { "java/**/*.java", "java/**/*.kt", ], + exclude_srcs: [":non-connectivity-module-test"], jarjar_rules: "jarjar-rules.txt", static_libs: [ "androidx.test.rules", @@ -83,15 +129,22 @@ android_library { android_test { name: "FrameworksNetTests", + enabled: enable_frameworks_net_tests, min_sdk_version: "30", defaults: [ "framework-connectivity-test-defaults", "FrameworksNetTests-jni-defaults", ], + // this is in addition to FrameworksNetTestsLib. + srcs: [":non-connectivity-module-test"], test_suites: ["device-tests"], static_libs: [ "FrameworksNetTestsLib", ], + libs: [ + "android.test.mock", + "android.test.base", + ], jni_libs: [ "libservice-connectivity", ]