From 2412c13c34f34c37cca33327f837c5e81076d8a5 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 22 Jan 2019 09:47:54 +0900 Subject: 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 --- tests/net/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 882babff4aee..1c264184db4c 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); } -- cgit v1.2.3-59-g8ed1b