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 638073b48354658c9339654d7c4049744e16715b.
Change-Id: If0b196b6860c4087a05b28770469d7850a76fd37
diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java
index 91fdb23..dda2601 100644
--- a/tests/net/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java
@@ -2813,17 +2813,19 @@
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 @@
}
/**
- * 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 @@
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) {
+ }
+ }
}