ethernet: fix receiving NetworkOffer callbacks on stale object
unregisterNetworkOffer() does not execute synchronously, so it is possible that NetworkOffer callbacks are received after the offer was unregistered. Test: atest EthernetManagerTest && atest EthernetNetworkFactoryTest Bug: 171872016 Change-Id: I2c50b01176e4968c31f83148f1831b55f8b06908
This commit is contained in:
@@ -726,4 +726,16 @@ public class EthernetNetworkFactoryTest {
|
||||
triggerOnProvisioningSuccess();
|
||||
verifyRestart(initialIpConfig);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOnNetworkNeededOnStaleNetworkOffer() throws Exception {
|
||||
initEthernetNetworkFactory();
|
||||
createAndVerifyProvisionedInterface(TEST_IFACE);
|
||||
mNetFactory.updateInterfaceLinkState(TEST_IFACE, false, null);
|
||||
verify(mNetworkProvider).unregisterNetworkOffer(mNetworkOfferCallback);
|
||||
// It is possible that even after a network offer is unregistered, CS still sends it
|
||||
// onNetworkNeeded() callbacks.
|
||||
mNetworkOfferCallback.onNetworkNeeded(createDefaultRequest());
|
||||
verify(mIpClient, never()).startProvisioning(any());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user