Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e7bb6167 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Test conflict notification work when using cached address" am:...

Merge "Test conflict notification work when using cached address" am: b7aee190 am: 3420af35 am: f2c04799 am: 37738b53

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1459889

Change-Id: I237e8e8c4b83d12be2dfce30919dc71b3c16656c
parents 02e40de6 37738b53
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -194,17 +194,16 @@ public final class PrivateAddressCoordinatorTest {

    @Test
    public void testRequestLastDownstreamAddress() throws Exception {
        final int fakeHotspotSubAddr = 0x2b05;
        final IpPrefix predefinedPrefix = new IpPrefix("192.168.43.0/24");
        final int fakeHotspotSubAddr = 0x2b05; // 43.5
        when(mPrivateAddressCoordinator.getRandomInt()).thenReturn(fakeHotspotSubAddr);
        final LinkAddress hotspotAddress = mPrivateAddressCoordinator.requestDownstreamAddress(
                mHotspotIpServer, true /* useLastAddress */);
        assertEquals("Wrong wifi prefix: ", predefinedPrefix, asIpPrefix(hotspotAddress));
        assertEquals("Wrong wifi prefix: ", new LinkAddress("192.168.43.5/24"), hotspotAddress);
        when(mHotspotIpServer.getAddress()).thenReturn(hotspotAddress);

        final LinkAddress usbAddress = mPrivateAddressCoordinator.requestDownstreamAddress(
                mUsbIpServer, true /* useLastAddress */);
        assertNotEquals(predefinedPrefix, asIpPrefix(usbAddress));
        assertEquals("Wrong wifi prefix: ", new LinkAddress("192.168.45.5/24"), usbAddress);

        mPrivateAddressCoordinator.releaseDownstream(mHotspotIpServer);
        mPrivateAddressCoordinator.releaseDownstream(mUsbIpServer);
@@ -218,6 +217,18 @@ public final class PrivateAddressCoordinatorTest {
        final LinkAddress newUsbAddress = mPrivateAddressCoordinator.requestDownstreamAddress(
                mUsbIpServer, true /* useLastAddress */);
        assertEquals(usbAddress, newUsbAddress);

        // BUG: the code should detect a conflict, but it doesn't.
        // Regression introduced in r.android.com/168169687.
        // Ensure conflict notification works when using cached address.
        when(mHotspotIpServer.getAddress()).thenReturn(newHotspotAddress);
        when(mUsbIpServer.getAddress()).thenReturn(usbAddress);
        final UpstreamNetworkState wifiUpstream = buildUpstreamNetworkState(mWifiNetwork,
                new LinkAddress("192.168.88.23/16"), null,
                makeNetworkCapabilities(TRANSPORT_WIFI));
        mPrivateAddressCoordinator.updateUpstreamPrefix(wifiUpstream);
        verify(mHotspotIpServer, never()).sendMessage(IpServer.CMD_NOTIFY_PREFIX_CONFLICT);
        verify(mUsbIpServer, never()).sendMessage(IpServer.CMD_NOTIFY_PREFIX_CONFLICT);
    }

    private UpstreamNetworkState buildUpstreamNetworkState(final Network network,