ConnectivityServiceTest: more informative assert failures

Bug: 62918393
Test: runtest frameworks-net
Change-Id: I90c211dc6d6262475924ecabc2863c47aec5a0b9
This commit is contained in:
Hugo Benichi
2017-06-26 10:06:49 +09:00
parent 0b7642a820
commit a0b7f12eb7

View File

@@ -897,7 +897,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
assertNull(mCm.getActiveNetwork()); assertNull(mCm.getActiveNetwork());
assertNull(mCm.getActiveNetworkForUid(Process.myUid())); assertNull(mCm.getActiveNetworkForUid(Process.myUid()));
// Test getAllNetworks() // Test getAllNetworks()
assertEquals(0, mCm.getAllNetworks().length); assertEmpty(mCm.getAllNetworks());
} }
/** /**
@@ -938,7 +938,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
mCellNetworkAgent.connect(true); mCellNetworkAgent.connect(true);
waitFor(cv); waitFor(cv);
verifyActiveNetwork(TRANSPORT_CELLULAR); verifyActiveNetwork(TRANSPORT_CELLULAR);
assertEquals(2, mCm.getAllNetworks().length); assertLength(2, mCm.getAllNetworks());
assertTrue(mCm.getAllNetworks()[0].equals(mCm.getActiveNetwork()) || assertTrue(mCm.getAllNetworks()[0].equals(mCm.getActiveNetwork()) ||
mCm.getAllNetworks()[1].equals(mCm.getActiveNetwork())); mCm.getAllNetworks()[1].equals(mCm.getActiveNetwork()));
assertTrue(mCm.getAllNetworks()[0].equals(mWiFiNetworkAgent.getNetwork()) || assertTrue(mCm.getAllNetworks()[0].equals(mWiFiNetworkAgent.getNetwork()) ||
@@ -948,7 +948,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
mWiFiNetworkAgent.connect(true); mWiFiNetworkAgent.connect(true);
waitFor(cv); waitFor(cv);
verifyActiveNetwork(TRANSPORT_WIFI); verifyActiveNetwork(TRANSPORT_WIFI);
assertEquals(2, mCm.getAllNetworks().length); assertLength(2, mCm.getAllNetworks());
assertTrue(mCm.getAllNetworks()[0].equals(mCm.getActiveNetwork()) || assertTrue(mCm.getAllNetworks()[0].equals(mCm.getActiveNetwork()) ||
mCm.getAllNetworks()[1].equals(mCm.getActiveNetwork())); mCm.getAllNetworks()[1].equals(mCm.getActiveNetwork()));
assertTrue(mCm.getAllNetworks()[0].equals(mCellNetworkAgent.getNetwork()) || assertTrue(mCm.getAllNetworks()[0].equals(mCellNetworkAgent.getNetwork()) ||
@@ -956,9 +956,9 @@ public class ConnectivityServiceTest extends AndroidTestCase {
// Test cellular linger timeout. // Test cellular linger timeout.
waitFor(mCellNetworkAgent.getDisconnectedCV()); waitFor(mCellNetworkAgent.getDisconnectedCV());
waitForIdle(); waitForIdle();
assertEquals(1, mCm.getAllNetworks().length); assertLength(1, mCm.getAllNetworks());
verifyActiveNetwork(TRANSPORT_WIFI); verifyActiveNetwork(TRANSPORT_WIFI);
assertEquals(1, mCm.getAllNetworks().length); assertLength(1, mCm.getAllNetworks());
assertEquals(mCm.getAllNetworks()[0], mCm.getActiveNetwork()); assertEquals(mCm.getAllNetworks()[0], mCm.getActiveNetwork());
// Test WiFi disconnect. // Test WiFi disconnect.
cv = waitForConnectivityBroadcasts(1); cv = waitForConnectivityBroadcasts(1);
@@ -1898,7 +1898,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
mCellNetworkAgent.connectWithoutInternet(); mCellNetworkAgent.connectWithoutInternet();
waitFor(cv); waitFor(cv);
waitForIdle(); waitForIdle();
assertEquals(0, mCm.getAllNetworks().length); assertEmpty(mCm.getAllNetworks());
verifyNoNetwork(); verifyNoNetwork();
// Test bringing up validated WiFi. // Test bringing up validated WiFi.
@@ -2572,7 +2572,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
assertTrue(testFactory.getMyStartRequested()); assertTrue(testFactory.getMyStartRequested());
// Bring up cell data and check that the factory stops looking. // Bring up cell data and check that the factory stops looking.
assertEquals(1, mCm.getAllNetworks().length); assertLength(1, mCm.getAllNetworks());
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
testFactory.expectAddRequests(2); // Because the cell request changes score twice. testFactory.expectAddRequests(2); // Because the cell request changes score twice.
mCellNetworkAgent.connect(true); mCellNetworkAgent.connect(true);
@@ -2583,7 +2583,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
// Check that cell data stays up. // Check that cell data stays up.
waitForIdle(); waitForIdle();
verifyActiveNetwork(TRANSPORT_WIFI); verifyActiveNetwork(TRANSPORT_WIFI);
assertEquals(2, mCm.getAllNetworks().length); assertLength(2, mCm.getAllNetworks());
// Turn off mobile data always on and expect the request to disappear... // Turn off mobile data always on and expect the request to disappear...
testFactory.expectRemoveRequests(1); testFactory.expectRemoveRequests(1);
@@ -2592,7 +2592,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
// ... and cell data to be torn down. // ... and cell data to be torn down.
cellNetworkCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent); cellNetworkCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
assertEquals(1, mCm.getAllNetworks().length); assertLength(1, mCm.getAllNetworks());
testFactory.unregister(); testFactory.unregister();
mCm.unregisterNetworkCallback(cellNetworkCallback); mCm.unregisterNetworkCallback(cellNetworkCallback);
@@ -3297,7 +3297,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
assertNull(mCm.getActiveNetworkInfo()); assertNull(mCm.getActiveNetworkInfo());
Network[] allNetworks = mCm.getAllNetworks(); Network[] allNetworks = mCm.getAllNetworks();
assertEquals(1, allNetworks.length); assertLength(1, allNetworks);
Network network = allNetworks[0]; Network network = allNetworks[0];
NetworkCapabilities capabilities = mCm.getNetworkCapabilities(network); NetworkCapabilities capabilities = mCm.getNetworkCapabilities(network);
assertTrue(capabilities.hasTransport(TRANSPORT_LOWPAN)); assertTrue(capabilities.hasTransport(TRANSPORT_LOWPAN));
@@ -3315,7 +3315,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
assertNull(mCm.getActiveNetwork()); assertNull(mCm.getActiveNetwork());
// TODO: getAllNetworkInfo is dirty and returns a non-empty array rght from the start // TODO: getAllNetworkInfo is dirty and returns a non-empty array rght from the start
// of this test. Fix it and uncomment the assert below. // of this test. Fix it and uncomment the assert below.
//assertEquals(0, mCm.getAllNetworkInfo().length); //assertEmpty(mCm.getAllNetworkInfo());
// Disconnect lowpan. // Disconnect lowpan.
lowpanNetwork.disconnect(); lowpanNetwork.disconnect();
@@ -3361,6 +3361,17 @@ public class ConnectivityServiceTest extends AndroidTestCase {
} }
} }
private static <T> void assertEmpty(T[] ts) {
int length = ts.length;
assertEquals("expected empty array, but length was " + length, 0, length);
}
private static <T> void assertLength(int expected, T[] got) {
int length = got.length;
assertEquals(String.format("expected array of length %s, but length was %s for %s",
expected, length, Arrays.toString(got)), expected, length);
}
/* test utilities */ /* test utilities */
// TODO: eliminate all usages of sleepFor and replace by proper timeouts/waitForIdle. // TODO: eliminate all usages of sleepFor and replace by proper timeouts/waitForIdle.
static private void sleepFor(int ms) { static private void sleepFor(int ms) {