Merge "Fix flaky test: testSetOemNetworkPreferenceForTestPref" am: 4402d99296
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2065429 Change-Id: I0881bae7910a60ec97f094f9755f942786aaaded Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -2176,15 +2176,12 @@ public class ConnectivityManagerTest {
|
|||||||
c -> c instanceof CallbackEntry.Available);
|
c -> c instanceof CallbackEntry.Available);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void waitForAvailable(
|
private void waitForTransport(
|
||||||
@NonNull final TestableNetworkCallback cb, final int expectedTransport) {
|
@NonNull final TestableNetworkCallback cb, final int expectedTransport) {
|
||||||
cb.eventuallyExpect(
|
cb.eventuallyExpect(CallbackEntry.NETWORK_CAPS_UPDATED,
|
||||||
CallbackEntry.AVAILABLE, NETWORK_CALLBACK_TIMEOUT_MS,
|
NETWORK_CALLBACK_TIMEOUT_MS,
|
||||||
entry -> {
|
entry -> ((CallbackEntry.CapabilitiesChanged) entry).getCaps()
|
||||||
final NetworkCapabilities nc = mCm.getNetworkCapabilities(entry.getNetwork());
|
.hasTransport(expectedTransport));
|
||||||
return nc.hasTransport(expectedTransport);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void waitForAvailable(
|
private void waitForAvailable(
|
||||||
@@ -2672,7 +2669,8 @@ public class ConnectivityManagerTest {
|
|||||||
|
|
||||||
// Validate that an unmetered network is used over other networks.
|
// Validate that an unmetered network is used over other networks.
|
||||||
waitForAvailable(defaultCallback, wifiNetwork);
|
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
|
// 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
|
// 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
|
// 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
|
// callback in any case therefore confirm its receipt before continuing to assure the
|
||||||
// system is in the expected state.
|
// system is in the expected state.
|
||||||
waitForAvailable(systemDefaultCallback, TRANSPORT_WIFI);
|
waitForTransport(systemDefaultCallback, TRANSPORT_WIFI);
|
||||||
}, /* cleanup */ () -> {
|
}, /* 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);
|
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);
|
waitForAvailable(defaultCallback);
|
||||||
}, /* cleanup */ () -> {
|
}, /* cleanup */ () -> {
|
||||||
setWifiMeteredStatusAndWait(ssid, oldMeteredValue, false /* waitForValidation */);
|
setWifiMeteredStatusAndWait(ssid, oldMeteredValue, false /* waitForValidation */);
|
||||||
|
|||||||
Reference in New Issue
Block a user