From 4433025623d65ae6a87175f4878163802cacc414 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 22 Jan 2019 09:47:54 +0900 Subject: [PATCH] Properly expect all callbacks in testStackedLinkProperties. Currently testStackedLinkProperties accounts for some of the NetworkCallbacks that are fired, but not all of them. The test passes because it only ever expects LinkProperties changed callbacks (and not, e.g., lost callbacks), because it uses waitForIdle(), and because at the end, when the callback is unregistered, it does not call assertNoCallback(). Add the missing callback expectation and expect a LOST callback at the end. Also add an assertNoCallback, even though it's not strictly necessary. Remove all the waitForIdle statements, which are no longer necessary because every assertion happens after waiting for a callback. Making the expectations more precise in a separate CL will help ensure that upcoming changes to this code don't break anything, and will make said changes easier to review. Bug: 65674744 Test: atest FrameworksNetTests Test: ConnectivityServiceTest#testStackedLinkProperties passes 400 times Change-Id: I73cda0dd029a0e6546f7272beedf841ce5a4c0dc --- .../java/com/android/server/ConnectivityServiceTest.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index 882babff4a..1c264184db 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -4775,7 +4775,7 @@ public class ConnectivityServiceTest { // Clat iface up, expect stack link updated. clat.interfaceLinkStateChanged(CLAT_PREFIX + MOBILE_IFNAME, true); - waitForIdle(); + networkCallback.expectCallback(CallbackState.LINK_PROPERTIES, mCellNetworkAgent); List stackedLps = mCm.getLinkProperties(mCellNetworkAgent.getNetwork()) .getStackedLinks(); assertEquals(makeClatLinkProperties(myIpv4), stackedLps.get(0)); @@ -4783,7 +4783,6 @@ public class ConnectivityServiceTest { // Change trivial linkproperties and see if stacked link is preserved. cellLp.addDnsServer(InetAddress.getByName("8.8.8.8")); mCellNetworkAgent.sendLinkProperties(cellLp); - waitForIdle(); networkCallback.expectCallback(CallbackState.LINK_PROPERTIES, mCellNetworkAgent); List stackedLpsAfterChange = @@ -4795,19 +4794,19 @@ public class ConnectivityServiceTest { cellLp.addLinkAddress(myIpv4); cellLp.addRoute(new RouteInfo(myIpv4, null, MOBILE_IFNAME)); mCellNetworkAgent.sendLinkProperties(cellLp); - waitForIdle(); networkCallback.expectCallback(CallbackState.LINK_PROPERTIES, mCellNetworkAgent); verify(mMockNetd, times(1)).clatdStop(MOBILE_IFNAME); // Clat iface removed, expect linkproperties revert to original one clat.interfaceRemoved(CLAT_PREFIX + MOBILE_IFNAME); - waitForIdle(); networkCallback.expectCallback(CallbackState.LINK_PROPERTIES, mCellNetworkAgent); LinkProperties actualLpAfterIpv4 = mCm.getLinkProperties(mCellNetworkAgent.getNetwork()); assertEquals(cellLp, actualLpAfterIpv4); // Clean up mCellNetworkAgent.disconnect(); + networkCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent); + networkCallback.assertNoCallback(); mCm.unregisterNetworkCallback(networkCallback); }