Fix flake in testMobileDataAlwaysOn
The internal structure backing getAllNetworks is updated after invoking lost callbacks, so the test needs to wait for the handler to be idle before calling getAllNetworks. Also avoid assertions in finally clauses, as it causes confusing error messages. Bug: 185081944 Change-Id: I8ad5ab45a3e65b0031672e6f594b1a6d6ad5abcb Test: atest ConnectivityServiceTest
This commit is contained in:
@@ -1167,20 +1167,14 @@ public class ConnectivityServiceTest {
|
||||
assertEquals(count, getMyRequestCount());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void terminate() {
|
||||
super.terminate();
|
||||
// Make sure there are no remaining requests unaccounted for.
|
||||
HandlerUtils.waitForIdle(mHandlerSendingRequests, TIMEOUT_MS);
|
||||
assertNull(mRequestHistory.poll(0, r -> true));
|
||||
}
|
||||
|
||||
// Trigger releasing the request as unfulfillable
|
||||
public void triggerUnfulfillable(NetworkRequest r) {
|
||||
super.releaseRequestAsUnfulfillableByAnyFactory(r);
|
||||
}
|
||||
|
||||
public void assertNoRequestChanged() {
|
||||
// Make sure there are no remaining requests unaccounted for.
|
||||
HandlerUtils.waitForIdle(mHandlerSendingRequests, TIMEOUT_MS);
|
||||
assertNull(mRequestHistory.poll(0, r -> true));
|
||||
}
|
||||
}
|
||||
@@ -3234,6 +3228,7 @@ public class ConnectivityServiceTest {
|
||||
assertTrue(testFactory.getMyStartRequested());
|
||||
|
||||
testFactory.terminate();
|
||||
testFactory.assertNoRequestChanged();
|
||||
if (networkCallback != null) mCm.unregisterNetworkCallback(networkCallback);
|
||||
handlerThread.quit();
|
||||
}
|
||||
@@ -3318,6 +3313,7 @@ public class ConnectivityServiceTest {
|
||||
|
||||
testFactory.setScoreFilter(42);
|
||||
testFactory.terminate();
|
||||
testFactory.assertNoRequestChanged();
|
||||
|
||||
if (i % 2 == 0) {
|
||||
try {
|
||||
@@ -4619,6 +4615,9 @@ public class ConnectivityServiceTest {
|
||||
// and the test factory should see it now that it isn't hopelessly outscored.
|
||||
mCellNetworkAgent.disconnect();
|
||||
cellNetworkCallback.expectCallback(CallbackEntry.LOST, mCellNetworkAgent);
|
||||
// Wait for the network to be removed from internal structures before
|
||||
// calling synchronous getter
|
||||
waitForIdle();
|
||||
assertLength(1, mCm.getAllNetworks());
|
||||
testFactory.expectRequestAdd();
|
||||
testFactory.assertRequestCountEquals(1);
|
||||
@@ -4629,6 +4628,7 @@ public class ConnectivityServiceTest {
|
||||
mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
|
||||
mCellNetworkAgent.connect(true);
|
||||
cellNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||
waitForIdle();
|
||||
assertLength(2, mCm.getAllNetworks());
|
||||
testFactory.expectRequestRemove();
|
||||
testFactory.assertRequestCountEquals(0);
|
||||
@@ -4640,8 +4640,9 @@ public class ConnectivityServiceTest {
|
||||
cellNetworkCallback.expectCallback(CallbackEntry.LOST, mCellNetworkAgent);
|
||||
waitForIdle();
|
||||
assertLength(1, mCm.getAllNetworks());
|
||||
} finally {
|
||||
testFactory.terminate();
|
||||
testFactory.assertNoRequestChanged();
|
||||
} finally {
|
||||
mCm.unregisterNetworkCallback(cellNetworkCallback);
|
||||
handlerThread.quit();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user