Add unit tests checking MTU of interfaces are set.
Unit tests covering the different possible cases of calls to updateMtu.
Bug: 246398088
Test: atest ConnectivityServiceTest
Change-Id: Iced44c00e9dbe944c3a31bbf1da88f8077e4379a
diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
index 67cc7bd..33f9d84 100755
--- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
@@ -17034,4 +17034,90 @@
verify(mTetheringManager).getTetherableWifiRegexs();
});
}
+
+ @Test
+ public void testSendLinkPropertiesSetInterfaceMtu() throws Exception {
+ final int mtu = 1327;
+ LinkProperties lp = new LinkProperties();
+ lp.setInterfaceName(WIFI_IFNAME);
+ lp.setMtu(mtu);
+
+ mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
+ mWiFiNetworkAgent.sendLinkProperties(lp);
+
+ waitForIdle();
+ verify(mMockNetd).interfaceSetMtu(eq(WIFI_IFNAME), eq(mtu));
+ }
+
+ @Test
+ public void testSendLinkPropertiesSetInterfaceMtu_DifferentMtu() throws Exception {
+ final int mtu = 1328, mtu2 = 1500;
+ LinkProperties lp = new LinkProperties();
+ lp.setInterfaceName(WIFI_IFNAME);
+ lp.setMtu(mtu);
+
+ mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, lp);
+
+ LinkProperties lp2 = new LinkProperties(lp);
+ lp2.setMtu(mtu2);
+
+ mWiFiNetworkAgent.sendLinkProperties(lp2);
+
+ waitForIdle();
+ verify(mMockNetd).interfaceSetMtu(eq(WIFI_IFNAME), eq(mtu2));
+ }
+
+ @Test
+ public void testSendLinkPropertiesSetInterfaceMtu_IdenticalMtuAndIface() throws Exception {
+ final int mtu = 1329;
+ LinkProperties lp = new LinkProperties();
+ lp.setInterfaceName(WIFI_IFNAME);
+ lp.setMtu(mtu);
+
+ mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, lp);
+ mWiFiNetworkAgent.sendLinkProperties(new LinkProperties(lp));
+
+ waitForIdle();
+ verify(mMockNetd, never()).interfaceSetMtu(eq(WIFI_IFNAME), anyInt());
+ }
+
+ @Test
+ public void testSendLinkPropertiesSetInterfaceMtu_IdenticalMtuAndNullIface() throws Exception {
+ final int mtu = 1330;
+ LinkProperties lp = new LinkProperties();
+ lp.setInterfaceName(WIFI_IFNAME);
+ lp.setMtu(mtu);
+
+ mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, lp);
+
+ LinkProperties lp2 = new LinkProperties();
+ assertNull(lp2.getInterfaceName());
+ lp2.setMtu(mtu);
+
+ mWiFiNetworkAgent.sendLinkProperties(new LinkProperties(lp2));
+
+ waitForIdle();
+ verify(mMockNetd, never()).interfaceSetMtu(any(), anyInt());
+ }
+
+ @Test
+ public void testSendLinkPropertiesSetInterfaceMtu_IdenticalMtuDiffIface() throws Exception {
+ final int mtu = 1331;
+ LinkProperties lp = new LinkProperties();
+ lp.setInterfaceName(WIFI_IFNAME);
+ lp.setMtu(mtu);
+
+ mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, lp);
+
+ final String ifaceName2 = WIFI_IFNAME + "_2";
+ LinkProperties lp2 = new LinkProperties();
+ lp2.setInterfaceName(ifaceName2);
+ lp2.setMtu(mtu);
+
+ mWiFiNetworkAgent.sendLinkProperties(new LinkProperties(lp2));
+
+ waitForIdle();
+ // TODO(b/246398088): the MTU should be set on the new interface.
+ verify(mMockNetd, never()).interfaceSetMtu(eq(ifaceName2), eq(mtu));
+ }
}