Merge "Fix flaky test: testSetOemNetworkPreferenceForTestPref"
This commit is contained in:
@@ -2176,15 +2176,12 @@ public class ConnectivityManagerTest {
|
||||
c -> c instanceof CallbackEntry.Available);
|
||||
}
|
||||
|
||||
private void waitForAvailable(
|
||||
private void waitForTransport(
|
||||
@NonNull final TestableNetworkCallback cb, final int expectedTransport) {
|
||||
cb.eventuallyExpect(
|
||||
CallbackEntry.AVAILABLE, NETWORK_CALLBACK_TIMEOUT_MS,
|
||||
entry -> {
|
||||
final NetworkCapabilities nc = mCm.getNetworkCapabilities(entry.getNetwork());
|
||||
return nc.hasTransport(expectedTransport);
|
||||
}
|
||||
);
|
||||
cb.eventuallyExpect(CallbackEntry.NETWORK_CAPS_UPDATED,
|
||||
NETWORK_CALLBACK_TIMEOUT_MS,
|
||||
entry -> ((CallbackEntry.CapabilitiesChanged) entry).getCaps()
|
||||
.hasTransport(expectedTransport));
|
||||
}
|
||||
|
||||
private void waitForAvailable(
|
||||
@@ -2672,7 +2669,8 @@ public class ConnectivityManagerTest {
|
||||
|
||||
// Validate that an unmetered network is used over other networks.
|
||||
waitForAvailable(defaultCallback, wifiNetwork);
|
||||
waitForAvailable(systemDefaultCallback, wifiNetwork);
|
||||
systemDefaultCallback.eventuallyExpect(CallbackEntry.AVAILABLE,
|
||||
NETWORK_CALLBACK_TIMEOUT_MS, cb -> wifiNetwork.equals(cb.getNetwork()));
|
||||
|
||||
// Validate that when setting unmetered to metered, unmetered is lost and replaced by
|
||||
// the network with the TEST transport. Also wait for validation here, in case there
|
||||
@@ -2684,11 +2682,14 @@ public class ConnectivityManagerTest {
|
||||
// callbacks may be received. Eventually, metered Wi-Fi should be the final available
|
||||
// callback in any case therefore confirm its receipt before continuing to assure the
|
||||
// system is in the expected state.
|
||||
waitForAvailable(systemDefaultCallback, TRANSPORT_WIFI);
|
||||
waitForTransport(systemDefaultCallback, TRANSPORT_WIFI);
|
||||
}, /* cleanup */ () -> {
|
||||
// Validate that removing the test network will fallback to the default network.
|
||||
// Validate that removing the test network will fallback to the default network.
|
||||
runWithShellPermissionIdentity(tnt::teardown);
|
||||
defaultCallback.expect(CallbackEntry.LOST, tnt, NETWORK_CALLBACK_TIMEOUT_MS);
|
||||
// The other callbacks (LP or NC changes) would receive before LOST callback. Use
|
||||
// eventuallyExpect to check callback for avoiding test flake.
|
||||
defaultCallback.eventuallyExpect(CallbackEntry.LOST, NETWORK_CALLBACK_TIMEOUT_MS,
|
||||
lost -> tnt.getNetwork().equals(lost.getNetwork()));
|
||||
waitForAvailable(defaultCallback);
|
||||
}, /* cleanup */ () -> {
|
||||
setWifiMeteredStatusAndWait(ssid, oldMeteredValue, false /* waitForValidation */);
|
||||
|
||||
Reference in New Issue
Block a user