From 0e2dbf31060a898ed4b350c715f99aff6ed9a42f Mon Sep 17 00:00:00 2001 From: Treehugger Robot Date: Thu, 20 May 2021 09:16:46 +0000 Subject: [PATCH 01/10] Update connectivity TEST_MAPPING - Move Tethering TEST_MAPPING up one level to merge with the general Connectivity TEST_MAPPING. This allows running the tethering tests on any connectivity change. - Move TetheringIntegrationTests from postsubmit to presubmit - Add TetheringCoverageTests to mainline-postsubmit, so it can be added to mainline-presubmit later. - Import NetworkStack tests so that they are run on any connectivity change. TetheringIntegrationTests were continuously green in postsubmit. Bug: 187946226 Original-Change: https://android-review.googlesource.com/1713468 Merged-In: Ibf05ad64b02c563930ba0f01eb91331b295fe505 Change-Id: Ibf05ad64b02c563930ba0f01eb91331b295fe505 Test: Treehugger needed to test TEST_MAPPING files --- TEST_MAPPING | 16 +++++++++++++++- Tethering/TEST_MAPPING | 12 ------------ 2 files changed, 15 insertions(+), 13 deletions(-) delete mode 100644 Tethering/TEST_MAPPING diff --git a/TEST_MAPPING b/TEST_MAPPING index 030a4c7ca8..566e8e10f1 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -11,6 +11,12 @@ "exclude-annotation": "com.android.testutils.SkipPresubmit" } ] + }, + { + "name": "TetheringTests" + }, + { + "name": "TetheringIntegrationTests" } ], "mainline-presubmit": [ @@ -24,11 +30,19 @@ ] } ], - // Tests on physical devices with SIM cards: postsubmit only for capacity constraints "mainline-postsubmit": [ + // Tests on physical devices with SIM cards: postsubmit only for capacity constraints { "name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]", "keywords": ["sim"] + }, + { + "name": "TetheringCoverageTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]" + } + ], + "imports": [ + { + "path": "packages/modules/NetworkStack" } ], "imports": [ diff --git a/Tethering/TEST_MAPPING b/Tethering/TEST_MAPPING deleted file mode 100644 index 5617b0c13c..0000000000 --- a/Tethering/TEST_MAPPING +++ /dev/null @@ -1,12 +0,0 @@ -{ - "presubmit": [ - { - "name": "TetheringTests" - } - ], - "postsubmit": [ - { - "name": "TetheringIntegrationTests" - } - ] -} From 8f260383f74d62bcafcd1820acdeefcaf4f3e083 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Tue, 15 Jun 2021 07:17:28 +0000 Subject: [PATCH 02/10] Fix KeepalivePacketDataUtilTest crash on eng build The test causes a Log.wtf to be logged, because it tests a method that should not be used after R. Mock the terrible failure handler to avoid crashes on eng builds. Test: atest KeepalivePacketDataUtilTest Bug: 187935317 Original-Change: https://android-review.googlesource.com/1736261 Merged-In: Ic06a0db7fefb4acf38b66feba9b47e21f9927b1c Change-Id: Ic06a0db7fefb4acf38b66feba9b47e21f9927b1c --- .../android/net/KeepalivePacketDataUtilTest.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tests/unit/java/android/net/KeepalivePacketDataUtilTest.java b/tests/unit/java/android/net/KeepalivePacketDataUtilTest.java index fc739fbfac..bc6dbf21d5 100644 --- a/tests/unit/java/android/net/KeepalivePacketDataUtilTest.java +++ b/tests/unit/java/android/net/KeepalivePacketDataUtilTest.java @@ -24,7 +24,9 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import android.net.util.KeepalivePacketDataUtil; +import android.util.Log; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -38,8 +40,19 @@ public final class KeepalivePacketDataUtilTest { private static final byte[] IPV4_KEEPALIVE_SRC_ADDR = {10, 0, 0, 1}; private static final byte[] IPV4_KEEPALIVE_DST_ADDR = {10, 0, 0, 5}; + private Log.TerribleFailureHandler mOriginalHandler; + @Before - public void setUp() {} + public void setUp() { + // Terrible failures are logged when using deprecated methods on newer platforms + mOriginalHandler = Log.setWtfHandler((tag, what, sys) -> + Log.e(tag, "Terrible failure in test", what)); + } + + @After + public void tearDown() { + Log.setWtfHandler(mOriginalHandler); + } @Test public void testFromTcpKeepaliveStableParcelable() throws Exception { From ad8f23fef42b60b7725bf699e39fd3b230eb90f3 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Wed, 16 Jun 2021 13:34:34 +0000 Subject: [PATCH 03/10] Make tests compatible with mockito-extended This does not change the mockito library to use mockito-extended in FrameworksNetTests, but changes the tests so that they would pass if built against that library. This is useful to run FrameworksNetTests in a common test suite with other tests that use mockito-extended, for example a common connectivity coverage test target. The change includes increasing the test timeout in ConnectivityServiceTest, as mockito-extended can have performance impact (~3 times on hwasan builds). This change does not make tests run slower in the current FrameworksNetTests suite though. Bug: 187935317 Test: atest FrameworksNetTests Original-Change: https://android-review.googlesource.com/1737400 Merged-In: I61fa371e8957037075a2617a014647ff062207c6 Change-Id: I61fa371e8957037075a2617a014647ff062207c6 --- .../android/net/ConnectivityManagerTest.java | 7 +++-- .../java/android/net/nsd/NsdManagerTest.java | 4 +-- .../net/util/MultinetworkPolicyTrackerTest.kt | 5 ++++ .../server/ConnectivityServiceTest.java | 2 +- .../MultipathPolicyTrackerTest.java | 9 ++++-- .../connectivity/PermissionMonitorTest.java | 5 ++++ .../android/server/connectivity/VpnTest.java | 29 ++++++++++--------- 7 files changed, 41 insertions(+), 20 deletions(-) diff --git a/tests/unit/java/android/net/ConnectivityManagerTest.java b/tests/unit/java/android/net/ConnectivityManagerTest.java index c804e10038..b8cd3f68d0 100644 --- a/tests/unit/java/android/net/ConnectivityManagerTest.java +++ b/tests/unit/java/android/net/ConnectivityManagerTest.java @@ -44,6 +44,7 @@ import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.nullable; +import static org.mockito.Mockito.CALLS_REAL_METHODS; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.mock; @@ -215,7 +216,8 @@ public class ConnectivityManagerTest { public void testCallbackRelease() throws Exception { ConnectivityManager manager = new ConnectivityManager(mCtx, mService); NetworkRequest request = makeRequest(1); - NetworkCallback callback = mock(ConnectivityManager.NetworkCallback.class); + NetworkCallback callback = mock(ConnectivityManager.NetworkCallback.class, + CALLS_REAL_METHODS); Handler handler = new Handler(Looper.getMainLooper()); ArgumentCaptor captor = ArgumentCaptor.forClass(Messenger.class); @@ -243,7 +245,8 @@ public class ConnectivityManagerTest { ConnectivityManager manager = new ConnectivityManager(mCtx, mService); NetworkRequest req1 = makeRequest(1); NetworkRequest req2 = makeRequest(2); - NetworkCallback callback = mock(ConnectivityManager.NetworkCallback.class); + NetworkCallback callback = mock(ConnectivityManager.NetworkCallback.class, + CALLS_REAL_METHODS); Handler handler = new Handler(Looper.getMainLooper()); ArgumentCaptor captor = ArgumentCaptor.forClass(Messenger.class); diff --git a/tests/unit/java/android/net/nsd/NsdManagerTest.java b/tests/unit/java/android/net/nsd/NsdManagerTest.java index b0a9b8a553..370179c2b1 100644 --- a/tests/unit/java/android/net/nsd/NsdManagerTest.java +++ b/tests/unit/java/android/net/nsd/NsdManagerTest.java @@ -20,12 +20,12 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; import static org.mockito.Mockito.any; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; import android.content.Context; import android.os.Handler; @@ -66,7 +66,7 @@ public class NsdManagerTest { MockitoAnnotations.initMocks(this); mServiceHandler = spy(MockServiceHandler.create(mContext)); - when(mService.getMessenger()).thenReturn(new Messenger(mServiceHandler)); + doReturn(new Messenger(mServiceHandler)).when(mService).getMessenger(); mManager = makeManager(); } diff --git a/tests/unit/java/android/net/util/MultinetworkPolicyTrackerTest.kt b/tests/unit/java/android/net/util/MultinetworkPolicyTrackerTest.kt index 25aa626657..78c8fa408c 100644 --- a/tests/unit/java/android/net/util/MultinetworkPolicyTrackerTest.kt +++ b/tests/unit/java/android/net/util/MultinetworkPolicyTrackerTest.kt @@ -45,6 +45,7 @@ import org.mockito.ArgumentMatchers.anyInt import org.mockito.ArgumentMatchers.argThat import org.mockito.ArgumentMatchers.eq import org.mockito.Mockito.any +import org.mockito.Mockito.doCallRealMethod import org.mockito.Mockito.doReturn import org.mockito.Mockito.mock import org.mockito.Mockito.times @@ -74,6 +75,10 @@ class MultinetworkPolicyTrackerTest { doReturn(Context.TELEPHONY_SERVICE).`when`(it) .getSystemServiceName(TelephonyManager::class.java) doReturn(telephonyManager).`when`(it).getSystemService(Context.TELEPHONY_SERVICE) + if (it.getSystemService(TelephonyManager::class.java) == null) { + // Test is using mockito extended + doCallRealMethod().`when`(it).getSystemService(TelephonyManager::class.java) + } doReturn(subscriptionManager).`when`(it) .getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE) doReturn(resolver).`when`(it).contentResolver diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java index 2aa95ee22e..acea2863ba 100644 --- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java @@ -393,7 +393,7 @@ import kotlin.reflect.KClass; public class ConnectivityServiceTest { private static final String TAG = "ConnectivityServiceTest"; - private static final int TIMEOUT_MS = 500; + private static final int TIMEOUT_MS = 2_000; // Broadcasts can take a long time to be delivered. The test will not wait for that long unless // there is a failure, so use a long timeout. private static final int BROADCAST_TIMEOUT_MS = 30_000; diff --git a/tests/unit/java/com/android/server/connectivity/MultipathPolicyTrackerTest.java b/tests/unit/java/com/android/server/connectivity/MultipathPolicyTrackerTest.java index 38f6d7f317..4c80f6a21d 100644 --- a/tests/unit/java/com/android/server/connectivity/MultipathPolicyTrackerTest.java +++ b/tests/unit/java/com/android/server/connectivity/MultipathPolicyTrackerTest.java @@ -34,6 +34,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doCallRealMethod; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -114,8 +115,12 @@ public class MultipathPolicyTrackerTest { private boolean mRecurrenceRuleClockMocked; private void mockService(String serviceName, Class serviceClass, T service) { - when(mContext.getSystemServiceName(serviceClass)).thenReturn(serviceName); - when(mContext.getSystemService(serviceName)).thenReturn(service); + doReturn(serviceName).when(mContext).getSystemServiceName(serviceClass); + doReturn(service).when(mContext).getSystemService(serviceName); + if (mContext.getSystemService(serviceClass) == null) { + // Test is using mockito-extended + doCallRealMethod().when(mContext).getSystemService(serviceClass); + } } @Before diff --git a/tests/unit/java/com/android/server/connectivity/PermissionMonitorTest.java b/tests/unit/java/com/android/server/connectivity/PermissionMonitorTest.java index db63495338..6bf6cc5493 100644 --- a/tests/unit/java/com/android/server/connectivity/PermissionMonitorTest.java +++ b/tests/unit/java/com/android/server/connectivity/PermissionMonitorTest.java @@ -51,6 +51,7 @@ import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.doCallRealMethod; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; @@ -139,6 +140,10 @@ public class PermissionMonitorTest { .thenReturn(Context.SYSTEM_CONFIG_SERVICE); when(mContext.getSystemService(Context.SYSTEM_CONFIG_SERVICE)) .thenReturn(mSystemConfigManager); + if (mContext.getSystemService(SystemConfigManager.class) == null) { + // Test is using mockito-extended + doCallRealMethod().when(mContext).getSystemService(SystemConfigManager.class); + } when(mSystemConfigManager.getSystemPermissionUids(anyString())).thenReturn(new int[0]); final Context asUserCtx = mock(Context.class, AdditionalAnswers.delegatesTo(mContext)); doReturn(UserHandle.ALL).when(asUserCtx).getUser(); diff --git a/tests/unit/java/com/android/server/connectivity/VpnTest.java b/tests/unit/java/com/android/server/connectivity/VpnTest.java index b725b826b1..6ff47aea34 100644 --- a/tests/unit/java/com/android/server/connectivity/VpnTest.java +++ b/tests/unit/java/com/android/server/connectivity/VpnTest.java @@ -39,6 +39,7 @@ import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.doCallRealMethod; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.inOrder; @@ -219,19 +220,11 @@ public class VpnTest { when(mContext.getPackageName()).thenReturn(TEST_VPN_PKG); when(mContext.getOpPackageName()).thenReturn(TEST_VPN_PKG); - when(mContext.getSystemServiceName(UserManager.class)) - .thenReturn(Context.USER_SERVICE); - when(mContext.getSystemService(eq(Context.USER_SERVICE))).thenReturn(mUserManager); - when(mContext.getSystemService(eq(Context.APP_OPS_SERVICE))).thenReturn(mAppOps); - when(mContext.getSystemServiceName(NotificationManager.class)) - .thenReturn(Context.NOTIFICATION_SERVICE); - when(mContext.getSystemService(eq(Context.NOTIFICATION_SERVICE))) - .thenReturn(mNotificationManager); - when(mContext.getSystemService(eq(Context.CONNECTIVITY_SERVICE))) - .thenReturn(mConnectivityManager); - when(mContext.getSystemServiceName(eq(ConnectivityManager.class))) - .thenReturn(Context.CONNECTIVITY_SERVICE); - when(mContext.getSystemService(eq(Context.IPSEC_SERVICE))).thenReturn(mIpSecManager); + mockService(UserManager.class, Context.USER_SERVICE, mUserManager); + mockService(AppOpsManager.class, Context.APP_OPS_SERVICE, mAppOps); + mockService(NotificationManager.class, Context.NOTIFICATION_SERVICE, mNotificationManager); + mockService(ConnectivityManager.class, Context.CONNECTIVITY_SERVICE, mConnectivityManager); + mockService(IpSecManager.class, Context.IPSEC_SERVICE, mIpSecManager); when(mContext.getString(R.string.config_customVpnAlwaysOnDisconnectedDialogComponent)) .thenReturn(Resources.getSystem().getString( R.string.config_customVpnAlwaysOnDisconnectedDialogComponent)); @@ -259,6 +252,16 @@ public class VpnTest { .thenReturn(tunnelResp); } + private void mockService(Class clazz, String name, T service) { + doReturn(service).when(mContext).getSystemService(name); + doReturn(name).when(mContext).getSystemServiceName(clazz); + if (mContext.getSystemService(clazz).getClass().equals(Object.class)) { + // Test is using mockito-extended (mContext uses Answers.RETURNS_DEEP_STUBS and returned + // a mock object on a final method) + doCallRealMethod().when(mContext).getSystemService(clazz); + } + } + private Set> rangeSet(Range ... ranges) { final Set> range = new ArraySet<>(); for (Range r : ranges) range.add(r); From 168b3d19f1626d07e2b8cd38418d4ab9759ab3ce Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Mon, 21 Jun 2021 13:36:05 +0000 Subject: [PATCH 04/10] Add connectivity coverage tests The coverage tests will allow measuring code coverage for all Connectivity+Tethering code. This is a combination of the current TetheringCoverageTests, and FrameworksNetTests. Adding min_sdk_version to the test prevents it from using deprecated IoUtils utilities. Replace it with the non-deprecated alternative. Bug: 187935317 Test: atest ConnectivityCoverageTests Original-Change: https://android-review.googlesource.com/1731232 Merged-In: I5366e1cc9cd6ddb41f24718246381cc2b1cc1383 Change-Id: I5366e1cc9cd6ddb41f24718246381cc2b1cc1383 --- Tethering/common/TetheringLib/Android.bp | 1 + Tethering/tests/integration/Android.bp | 4 +- Tethering/tests/unit/Android.bp | 5 ++- tests/common/Android.bp | 47 +++++++++++++++++++++++ tests/common/AndroidManifest_coverage.xml | 29 ++++++++++++++ tests/common/AndroidTest_Coverage.xml | 27 +++++++++++++ tests/unit/Android.bp | 23 ++++++++--- 7 files changed, 127 insertions(+), 9 deletions(-) create mode 100644 tests/common/AndroidManifest_coverage.xml create mode 100644 tests/common/AndroidTest_Coverage.xml diff --git a/Tethering/common/TetheringLib/Android.bp b/Tethering/common/TetheringLib/Android.bp index fce436079b..f65277269f 100644 --- a/Tethering/common/TetheringLib/Android.bp +++ b/Tethering/common/TetheringLib/Android.bp @@ -22,6 +22,7 @@ java_sdk_library { defaults: ["framework-module-defaults"], impl_library_visibility: [ "//packages/modules/Connectivity/Tethering:__subpackages__", + "//packages/modules/Connectivity/tests:__subpackages__", ], srcs: [":framework-tethering-srcs"], diff --git a/Tethering/tests/integration/Android.bp b/Tethering/tests/integration/Android.bp index 351b9f4f5a..e807613ecd 100644 --- a/Tethering/tests/integration/Android.bp +++ b/Tethering/tests/integration/Android.bp @@ -51,7 +51,8 @@ android_library { defaults: ["TetheringIntegrationTestsDefaults"], visibility: [ "//packages/modules/Connectivity/tests/cts/tethering", - "//packages/modules/Connectivity/Tethering/tests/mts", + "//packages/modules/Connectivity/tests:__subpackages__", + "//packages/modules/Connectivity/Tethering/tests:__subpackages__", ] } @@ -104,7 +105,6 @@ android_test { "libnetworkstackutilsjni", "libtetherutilsjni", ], - jarjar_rules: ":TetheringTestsJarJarRules", compile_multilib: "both", manifest: "AndroidManifest_coverage.xml", } diff --git a/Tethering/tests/unit/Android.bp b/Tethering/tests/unit/Android.bp index c6f19d7a16..1233345477 100644 --- a/Tethering/tests/unit/Android.bp +++ b/Tethering/tests/unit/Android.bp @@ -77,6 +77,7 @@ java_defaults { "libstaticjvmtiagent", "libtetherutilsjni", ], + jarjar_rules: ":TetheringTestsJarJarRules", } // Library containing the unit tests. This is used by the coverage test target to pull in the @@ -87,7 +88,8 @@ android_library { defaults: ["TetheringTestsDefaults"], target_sdk_version: "30", visibility: [ - "//packages/modules/Connectivity/Tethering/tests/integration", + "//packages/modules/Connectivity/tests:__subpackages__", + "//packages/modules/Connectivity/Tethering/tests:__subpackages__", ] } @@ -98,7 +100,6 @@ android_test { "device-tests", "mts", ], - jarjar_rules: ":TetheringTestsJarJarRules", defaults: ["TetheringTestsDefaults"], compile_multilib: "both", } diff --git a/tests/common/Android.bp b/tests/common/Android.bp index e8963b9011..28339f116d 100644 --- a/tests/common/Android.bp +++ b/tests/common/Android.bp @@ -43,6 +43,53 @@ java_library { ], } +android_test { + name: "ConnectivityCoverageTests", + // Tethering started on SDK 30 + min_sdk_version: "30", + // TODO: change to 31 as soon as it is available + target_sdk_version: "30", + test_suites: ["device-tests", "mts"], + defaults: [ + "framework-connectivity-test-defaults", + "FrameworksNetTests-jni-defaults", + "libnetworkstackutilsjni_deps", + ], + manifest: "AndroidManifest_coverage.xml", + test_config: "AndroidTest_Coverage.xml", + static_libs: [ + // Added first so all tests use extended mockito, instead of all tests using regular mockito + // (some tests would fail). + // TODO: consider removing extended mockito usage in tests that use it, for performance + "mockito-target-extended-minus-junit4", + "FrameworksNetTestsLib", + "modules-utils-native-coverage-listener", + "NetdStaticLibTestsLib", + "NetworkStaticLibTestsLib", + "NetworkStackTestsLib", + "TetheringTestsLatestSdkLib", + "TetheringIntegrationTestsLatestSdkLib", + ], + jni_libs: [ + // For mockito extended + "libdexmakerjvmtiagent", + "libstaticjvmtiagent", + // For NetworkStackUtils included in NetworkStackBase + "libnetworkstackutilsjni", + "libtetherutilsjni", + // For framework tests + "libservice-connectivity", + ], + libs: [ + // Although not required to compile the static libs together, the "libs" used to build each + // of the common static test libs are necessary for R8 to avoid "Missing class" warnings and + // incorrect optimizations + "framework-tethering.impl", + "framework-wifi.stubs.module_lib", + ], + compile_multilib: "both", +} + // defaults for tests that need to build against framework-connectivity's @hide APIs // Only usable from targets that have visibility on framework-connectivity.impl. // Instead of using this, consider avoiding to depend on hidden connectivity APIs in diff --git a/tests/common/AndroidManifest_coverage.xml b/tests/common/AndroidManifest_coverage.xml new file mode 100644 index 0000000000..8a22792af8 --- /dev/null +++ b/tests/common/AndroidManifest_coverage.xml @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/tests/common/AndroidTest_Coverage.xml b/tests/common/AndroidTest_Coverage.xml new file mode 100644 index 0000000000..577f36a3da --- /dev/null +++ b/tests/common/AndroidTest_Coverage.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/tests/unit/Android.bp b/tests/unit/Android.bp index 98c15db4b4..ffff681ccc 100644 --- a/tests/unit/Android.bp +++ b/tests/unit/Android.bp @@ -49,17 +49,16 @@ java_defaults { ], } -android_test { - name: "FrameworksNetTests", +android_library { + name: "FrameworksNetTestsLib", + min_sdk_version: "30", defaults: [ "framework-connectivity-test-defaults", - "FrameworksNetTests-jni-defaults", ], srcs: [ "java/**/*.java", "java/**/*.kt", ], - test_suites: ["device-tests"], jarjar_rules: "jarjar-rules.txt", static_libs: [ "androidx.test.rules", @@ -83,7 +82,21 @@ android_test { "android.test.mock", "ServiceConnectivityResources", ], + visibility: ["//packages/modules/Connectivity/tests:__subpackages__"], +} + +android_test { + name: "FrameworksNetTests", + min_sdk_version: "30", + defaults: [ + "framework-connectivity-test-defaults", + "FrameworksNetTests-jni-defaults", + ], + test_suites: ["device-tests"], + static_libs: [ + "FrameworksNetTestsLib", + ], jni_libs: [ "libservice-connectivity", - ], + ] } From 1c45a8a623971723f0feceff949ff92eae893bed Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Thu, 24 Jun 2021 06:44:48 +0000 Subject: [PATCH 05/10] Add ConnectivityCoverageTests to postsubmit Add the tests to both postsubmit and mainline-postsubmit. This should allow moving the tests to presubmit in the near future, after they have been verified to pass in postsubmit. Bug: 187935317 Test: treehugger needs to test Original-Change: https://android-review.googlesource.com/1736506 Merged-In: I9a05d6a300c5f777497e867d0456bc59b06eee80 Change-Id: I9a05d6a300c5f777497e867d0456bc59b06eee80 --- TEST_MAPPING | 8 ++++++++ tests/common/Android.bp | 3 +++ 2 files changed, 11 insertions(+) diff --git a/TEST_MAPPING b/TEST_MAPPING index 566e8e10f1..465f7277e6 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -19,6 +19,11 @@ "name": "TetheringIntegrationTests" } ], + "postsubmit": [ + { + "name": "ConnectivityCoverageTests" + } + ], "mainline-presubmit": [ { // TODO: add back the tethering modules when updatable in this branch @@ -38,6 +43,9 @@ }, { "name": "TetheringCoverageTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]" + }, + { + "name": "ConnectivityCoverageTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]" } ], "imports": [ diff --git a/tests/common/Android.bp b/tests/common/Android.bp index 28339f116d..515c00ca6f 100644 --- a/tests/common/Android.bp +++ b/tests/common/Android.bp @@ -50,6 +50,9 @@ android_test { // TODO: change to 31 as soon as it is available target_sdk_version: "30", test_suites: ["device-tests", "mts"], + test_mainline_modules: [ + "CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex", + ], defaults: [ "framework-connectivity-test-defaults", "FrameworksNetTests-jni-defaults", From fb34c5861a1fafaab201c282805bf08f479fe475 Mon Sep 17 00:00:00 2001 From: Treehugger Robot Date: Mon, 28 Jun 2021 06:43:01 +0000 Subject: [PATCH 06/10] Move test_mainline_modules to AndroidTest.xml When an AndroidTest.xml is used, configuration needs to be in the AndroidTest.xml file, not in the Android.bp. This currently causes tests not to be run in TEST_MAPPING as they should be. Test: TH needs to test Bug: 187935317 Original-Change: https://android-review.googlesource.com/1748157 Merged-In: Ie0aca0c64646825175769cd375bcecf65de4b4c8 Change-Id: Ie0aca0c64646825175769cd375bcecf65de4b4c8 --- tests/common/Android.bp | 3 --- tests/common/AndroidTest_Coverage.xml | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/common/Android.bp b/tests/common/Android.bp index 515c00ca6f..28339f116d 100644 --- a/tests/common/Android.bp +++ b/tests/common/Android.bp @@ -50,9 +50,6 @@ android_test { // TODO: change to 31 as soon as it is available target_sdk_version: "30", test_suites: ["device-tests", "mts"], - test_mainline_modules: [ - "CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex", - ], defaults: [ "framework-connectivity-test-defaults", "FrameworksNetTests-jni-defaults", diff --git a/tests/common/AndroidTest_Coverage.xml b/tests/common/AndroidTest_Coverage.xml index 577f36a3da..7c8e710053 100644 --- a/tests/common/AndroidTest_Coverage.xml +++ b/tests/common/AndroidTest_Coverage.xml @@ -18,6 +18,7 @@