Merge "Add unit tests checking MTU of interfaces are set." am: edbf34a182 am: 320207fcf1 am: 2321fd3918

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2335546

Change-Id: Ib1d929c1ac8213857fa8ecf070f9aa94b582acf0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
index 07d3d95..16f7039 100755
--- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
@@ -17072,4 +17072,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));
+    }
 }