From 385c26af012501eb435cf678e044d95f49487b11 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Fri, 25 Nov 2022 18:38:46 +0900 Subject: [PATCH] Ensure Wifi eventually becomes default testSetOemNetworkPreferenceForTestOnlyPref may fail if Wifi is connected but not validated when it starts, because wifi may not be the system default network, so the first system default callbacks may be for a different network. Use eventuallyExpect to ensure the test waits for wifi to become default. This will not work in configurations where wifi never becomes default (if the device has a validated Ethernet network for example), but this change at leastaddresses the flake in device configurations where it will. Bug: 260275298 Test: atest Change-Id: I9034e923b2b5b38d1e38ec072abac9ee7e208fe2 --- .../cts/net/src/android/net/cts/ConnectivityManagerTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java index 7985dc4a7c..692580810f 100644 --- a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java +++ b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java @@ -2708,6 +2708,7 @@ public class ConnectivityManagerTest { // Cannot use @IgnoreUpTo(Build.VERSION_CODES.R) because this test also requires API 31 // shims, and @IgnoreUpTo does not check that. assumeTrue(TestUtils.shouldTestSApis()); + assumeTrue(mPackageManager.hasSystemFeature(FEATURE_WIFI)); final TestNetworkTracker tnt = callWithShellPermissionIdentity( () -> initTestNetwork(mContext, TEST_LINKADDR, NETWORK_CALLBACK_TIMEOUT_MS)); @@ -2721,7 +2722,8 @@ public class ConnectivityManagerTest { OemNetworkPreferences.OEM_NETWORK_PREFERENCE_TEST_ONLY); registerTestOemNetworkPreferenceCallbacks(defaultCallback, systemDefaultCallback); waitForAvailable(defaultCallback, tnt.getNetwork()); - waitForAvailable(systemDefaultCallback, wifiNetwork); + systemDefaultCallback.eventuallyExpect(CallbackEntry.AVAILABLE, + NETWORK_CALLBACK_TIMEOUT_MS, cb -> wifiNetwork.equals(cb.getNetwork())); }, /* cleanup */ () -> { runWithShellPermissionIdentity(tnt::teardown); defaultCallback.expect(CallbackEntry.LOST, tnt, NETWORK_CALLBACK_TIMEOUT_MS);