From d5810f566ff84d36c11c60e9f77ac7ad1ec6c86e Mon Sep 17 00:00:00 2001 From: Roland Levillain Date: Tue, 4 Jul 2017 11:10:06 +0000 Subject: [PATCH] Revert "ConnectivityServiceTest: eliminate remaining sleep()" CL https://android-review.googlesource.com/#/c/420720/ is breaking several internal builds, and CL https://android-review.googlesource.com/#/c/422481/ must be reverted beforehand. This reverts commit 137a0e6d16d43f84f4e95b3ff78f730ff369e2e8. Change-Id: If0b196b6860c4087a05b28770469d7850a76fd37 --- .../server/ConnectivityServiceTest.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index 91fdb233f4..dda2601682 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -2813,17 +2813,19 @@ public class ConnectivityServiceTest extends AndroidTestCase { NetworkRequest nr = new NetworkRequest.Builder().addTransportType( NetworkCapabilities.TRANSPORT_WIFI).build(); final TestNetworkCallback networkCallback = new TestNetworkCallback(); - final int requestTimeoutMs = 50; + final int requestTimeoutMs = 100; mCm.requestNetwork(nr, networkCallback, requestTimeoutMs); mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); mWiFiNetworkAgent.connect(false); - final int assertTimeoutMs = 100; + final int assertTimeoutMs = 150; networkCallback.expectAvailableCallbacks(mWiFiNetworkAgent, false, assertTimeoutMs); + sleepFor(20); mWiFiNetworkAgent.disconnect(); networkCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent); - // Validate that UNAVAILABLE is not called + // pass timeout and validate that UNAVAILABLE is not called + sleepFor(100); networkCallback.assertNoCallback(); } @@ -2850,20 +2852,24 @@ public class ConnectivityServiceTest extends AndroidTestCase { } /** - * Validate that when a network request is unregistered (cancelled), no posterior event can - * trigger the callback. + * Validate that when a network request is unregistered (cancelled) the time-out for that + * request doesn't trigger the onUnavailable() callback. */ @SmallTest - public void testNoCallbackAfterUnregisteredNetworkRequest() { + public void testTimedoutAfterUnregisteredNetworkRequest() { NetworkRequest nr = new NetworkRequest.Builder().addTransportType( NetworkCapabilities.TRANSPORT_WIFI).build(); final TestNetworkCallback networkCallback = new TestNetworkCallback(); final int timeoutMs = 10; - mCm.requestNetwork(nr, networkCallback, timeoutMs); + + // remove request mCm.unregisterNetworkCallback(networkCallback); - // Regardless of the timeout, unregistering the callback in ConnectivityManager ensures - // that this callback will not be called. + + // pass timeout and validate that no callbacks + // Note: doesn't validate that nothing called from CS since even if called the CM already + // unregisters the callback and won't pass it through! + sleepFor(15); networkCallback.assertNoCallback(); // create a network satisfying request - validate that request not triggered @@ -3365,4 +3371,13 @@ public class ConnectivityServiceTest extends AndroidTestCase { assertEquals(String.format("expected array of length %s, but length was %s for %s", expected, length, Arrays.toString(got)), expected, length); } + + /* test utilities */ + // TODO: eliminate all usages of sleepFor and replace by proper timeouts/waitForIdle. + static private void sleepFor(int ms) { + try { + Thread.sleep(ms); + } catch (InterruptedException e) { + } + } }