Merge "ConnectivityServiceTest: fix testAvoidBadWifiSettings"
This commit is contained in:
committed by
Android (Google) Code Review
commit
cdbd2408d8
@@ -90,6 +90,7 @@ import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.function.BooleanSupplier;
|
||||
|
||||
/**
|
||||
* Tests for {@link ConnectivityService}.
|
||||
@@ -623,7 +624,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
}
|
||||
|
||||
private class WrappedAvoidBadWifiTracker extends AvoidBadWifiTracker {
|
||||
public boolean configRestrictsAvoidBadWifi;
|
||||
public volatile boolean configRestrictsAvoidBadWifi;
|
||||
|
||||
public WrappedAvoidBadWifiTracker(Context c, Handler h, Runnable r) {
|
||||
super(c, h, r);
|
||||
@@ -2166,7 +2167,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
tracker.reevaluate();
|
||||
mService.waitForIdle();
|
||||
String msg = String.format("config=false, setting=%s", values[i]);
|
||||
assertTrue(msg, mService.avoidBadWifi());
|
||||
assertEventuallyTrue(() -> mService.avoidBadWifi(), 50);
|
||||
assertFalse(msg, tracker.shouldNotifyWifiUnvalidated());
|
||||
}
|
||||
|
||||
@@ -2175,19 +2176,19 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
Settings.Global.putInt(cr, settingName, 0);
|
||||
tracker.reevaluate();
|
||||
mService.waitForIdle();
|
||||
assertFalse(mService.avoidBadWifi());
|
||||
assertEventuallyTrue(() -> !mService.avoidBadWifi(), 50);
|
||||
assertFalse(tracker.shouldNotifyWifiUnvalidated());
|
||||
|
||||
Settings.Global.putInt(cr, settingName, 1);
|
||||
tracker.reevaluate();
|
||||
mService.waitForIdle();
|
||||
assertTrue(mService.avoidBadWifi());
|
||||
assertEventuallyTrue(() -> mService.avoidBadWifi(), 50);
|
||||
assertFalse(tracker.shouldNotifyWifiUnvalidated());
|
||||
|
||||
Settings.Global.putString(cr, settingName, null);
|
||||
tracker.reevaluate();
|
||||
mService.waitForIdle();
|
||||
assertFalse(mService.avoidBadWifi());
|
||||
assertEventuallyTrue(() -> !mService.avoidBadWifi(), 50);
|
||||
assertTrue(tracker.shouldNotifyWifiUnvalidated());
|
||||
}
|
||||
|
||||
@@ -2404,6 +2405,17 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
networkCallback.assertNoCallback();
|
||||
}
|
||||
|
||||
public void assertEventuallyTrue(BooleanSupplier fn, long maxWaitingTimeMs) throws Exception {
|
||||
long start = SystemClock.elapsedRealtime();
|
||||
while (SystemClock.elapsedRealtime() <= start + maxWaitingTimeMs) {
|
||||
if (fn.getAsBoolean()) {
|
||||
return;
|
||||
}
|
||||
Thread.sleep(10);
|
||||
}
|
||||
assertTrue(fn.getAsBoolean());
|
||||
}
|
||||
|
||||
private static class TestKeepaliveCallback extends PacketKeepaliveCallback {
|
||||
|
||||
public static enum CallbackType { ON_STARTED, ON_STOPPED, ON_ERROR };
|
||||
|
||||
Reference in New Issue
Block a user