Make the MTU tests more realistic.
Currently, the MTU tests work on networks that have not yet been connected. This is not very realistic because most MTU changes (like most LinkProperties changes in general) happen after the network has connected. Change these tests to use connected networks instead. To avoid losing coverage for setting the MTU before the network is connected, add a test just for that. Bug: 143158421 Test: test-only change Change-Id: I7f808249722924a0b1253e402c5580bb104afd8e
This commit is contained in:
@@ -17570,18 +17570,77 @@ public class ConnectivityServiceTest {
|
||||
});
|
||||
}
|
||||
|
||||
private void verifyMtuSetOnWifiInterface(int mtu) throws Exception {
|
||||
verify(mMockNetd, times(1)).interfaceSetMtu(WIFI_IFNAME, mtu);
|
||||
}
|
||||
|
||||
private void verifyMtuNeverSetOnWifiInterface() throws Exception {
|
||||
verify(mMockNetd, never()).interfaceSetMtu(eq(WIFI_IFNAME), anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSendLinkPropertiesSetInterfaceMtu() throws Exception {
|
||||
final int mtu = 1327;
|
||||
public void testSendLinkPropertiesSetInterfaceMtuBeforeConnect() throws Exception {
|
||||
final int mtu = 1281;
|
||||
LinkProperties lp = new LinkProperties();
|
||||
lp.setInterfaceName(WIFI_IFNAME);
|
||||
lp.setMtu(mtu);
|
||||
|
||||
mWiFiAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
|
||||
mWiFiAgent.sendLinkProperties(lp);
|
||||
|
||||
waitForIdle();
|
||||
verify(mMockNetd).interfaceSetMtu(eq(WIFI_IFNAME), eq(mtu));
|
||||
verifyMtuSetOnWifiInterface(mtu);
|
||||
reset(mMockNetd);
|
||||
|
||||
mWiFiAgent.connect(false /* validated */);
|
||||
// The MTU is always (re-)applied when the network connects.
|
||||
verifyMtuSetOnWifiInterface(mtu);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSendLinkPropertiesUpdateInterfaceMtuBeforeConnect() throws Exception {
|
||||
final int mtu = 1327;
|
||||
LinkProperties lp = new LinkProperties();
|
||||
lp.setInterfaceName(WIFI_IFNAME);
|
||||
lp.setMtu(mtu);
|
||||
|
||||
// Registering an agent with an MTU doesn't set the MTU...
|
||||
mWiFiAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, lp);
|
||||
waitForIdle();
|
||||
verifyMtuNeverSetOnWifiInterface();
|
||||
reset(mMockNetd);
|
||||
|
||||
// ... but prevents future updates with the same MTU from setting the MTU.
|
||||
mWiFiAgent.sendLinkProperties(lp);
|
||||
waitForIdle();
|
||||
verifyMtuNeverSetOnWifiInterface();
|
||||
|
||||
// Updating with a different MTU does work.
|
||||
lp.setMtu(mtu + 1);
|
||||
mWiFiAgent.sendLinkProperties(lp);
|
||||
waitForIdle();
|
||||
verifyMtuSetOnWifiInterface(mtu + 1);
|
||||
reset(mMockNetd);
|
||||
|
||||
mWiFiAgent.connect(false /* validated */);
|
||||
// The MTU is always (re-)applied when the network connects.
|
||||
verifyMtuSetOnWifiInterface(mtu + 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSendLinkPropertiesUpdateInterfaceMtuAfterConnect() throws Exception {
|
||||
final int mtu = 1327;
|
||||
LinkProperties lp = new LinkProperties();
|
||||
lp.setInterfaceName(WIFI_IFNAME);
|
||||
lp.setMtu(mtu);
|
||||
|
||||
mWiFiAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
|
||||
mWiFiAgent.connect(false /* validated */);
|
||||
verifyMtuNeverSetOnWifiInterface();
|
||||
|
||||
mWiFiAgent.sendLinkProperties(lp);
|
||||
waitForIdle();
|
||||
// The MTU is always (re-)applied when the network connects.
|
||||
verifyMtuSetOnWifiInterface(mtu);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -17592,14 +17651,15 @@ public class ConnectivityServiceTest {
|
||||
lp.setMtu(mtu);
|
||||
|
||||
mWiFiAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, lp);
|
||||
mWiFiAgent.connect(false /* validated */);
|
||||
verifyMtuSetOnWifiInterface(mtu);
|
||||
reset(mMockNetd);
|
||||
|
||||
LinkProperties lp2 = new LinkProperties(lp);
|
||||
lp2.setMtu(mtu2);
|
||||
|
||||
mWiFiAgent.sendLinkProperties(lp2);
|
||||
|
||||
waitForIdle();
|
||||
verify(mMockNetd).interfaceSetMtu(eq(WIFI_IFNAME), eq(mtu2));
|
||||
verifyMtuSetOnWifiInterface(mtu2);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -17610,10 +17670,13 @@ public class ConnectivityServiceTest {
|
||||
lp.setMtu(mtu);
|
||||
|
||||
mWiFiAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, lp);
|
||||
mWiFiAgent.sendLinkProperties(new LinkProperties(lp));
|
||||
mWiFiAgent.connect(false /* validated */);
|
||||
verifyMtuSetOnWifiInterface(mtu);
|
||||
reset(mMockNetd);
|
||||
|
||||
mWiFiAgent.sendLinkProperties(new LinkProperties(lp));
|
||||
waitForIdle();
|
||||
verify(mMockNetd, never()).interfaceSetMtu(eq(WIFI_IFNAME), anyInt());
|
||||
verifyMtuNeverSetOnWifiInterface();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -17624,15 +17687,15 @@ public class ConnectivityServiceTest {
|
||||
lp.setMtu(mtu);
|
||||
|
||||
mWiFiAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, lp);
|
||||
mWiFiAgent.connect(false /* validated */);
|
||||
verifyMtuSetOnWifiInterface(mtu);
|
||||
reset(mMockNetd);
|
||||
|
||||
LinkProperties lp2 = new LinkProperties();
|
||||
assertNull(lp2.getInterfaceName());
|
||||
lp2.setMtu(mtu);
|
||||
|
||||
LinkProperties lp2 = new LinkProperties(lp);
|
||||
lp2.setInterfaceName(null);
|
||||
mWiFiAgent.sendLinkProperties(new LinkProperties(lp2));
|
||||
|
||||
waitForIdle();
|
||||
verify(mMockNetd, never()).interfaceSetMtu(any(), anyInt());
|
||||
verifyMtuNeverSetOnWifiInterface();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -17643,16 +17706,18 @@ public class ConnectivityServiceTest {
|
||||
lp.setMtu(mtu);
|
||||
|
||||
mWiFiAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, lp);
|
||||
mWiFiAgent.connect(false /* validated */);
|
||||
verifyMtuSetOnWifiInterface(mtu);
|
||||
reset(mMockNetd);
|
||||
|
||||
final String ifaceName2 = WIFI_IFNAME + "_2";
|
||||
LinkProperties lp2 = new LinkProperties();
|
||||
LinkProperties lp2 = new LinkProperties(lp);
|
||||
lp2.setInterfaceName(ifaceName2);
|
||||
lp2.setMtu(mtu);
|
||||
|
||||
mWiFiAgent.sendLinkProperties(new LinkProperties(lp2));
|
||||
|
||||
waitForIdle();
|
||||
verify(mMockNetd).interfaceSetMtu(eq(ifaceName2), eq(mtu));
|
||||
verify(mMockNetd, times(1)).interfaceSetMtu(eq(ifaceName2), eq(mtu));
|
||||
verifyMtuNeverSetOnWifiInterface();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user