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

Commit 83d8f80c authored by Xiao Ma's avatar Xiao Ma Committed by Automerger Merge Worker
Browse files

Revert "Revert "Test IPv6ProvisioningLossParcelable in the...

Revert "Revert "Test IPv6ProvisioningLossParcelable in the NetworkAttributes""" am: 42c643a2 am: 1145cdce am: e26d6ebc

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

Change-Id: If0b8d031b80b9cd8315327211ede0be1a58df44f
parents 676c21cf e26d6ebc
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ package android.net.ipmemorystore;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import android.net.quirks.IPv6ProvisioningLossQuirk;
import android.net.quirks.IPv6ProvisioningLossQuirkParcelable;
import android.os.Parcel;
import android.os.Parcelable;

@@ -46,7 +48,7 @@ public class ParcelableTests {
        builder.setAssignedV4Address((Inet4Address) Inet4Address.getByName("1.2.3.4"));
        // lease will expire in two hours
        builder.setAssignedV4AddressExpiry(System.currentTimeMillis() + 7_200_000);
        // groupHint stays null this time around
        // cluster stays null this time around
        builder.setDnsAddresses(Collections.emptyList());
        builder.setMtu(18);
        in = builder.build();
@@ -69,7 +71,7 @@ public class ParcelableTests {
        // Verify that this test does not miss any new field added later.
        // If any field is added to NetworkAttributes it must be tested here for parceling
        // roundtrip.
        assertEquals(5, Arrays.stream(NetworkAttributes.class.getDeclaredFields())
        assertEquals(6, Arrays.stream(NetworkAttributes.class.getDeclaredFields())
                .filter(f -> !Modifier.isStatic(f.getModifiers())).count());
    }

@@ -104,6 +106,22 @@ public class ParcelableTests {
        assertEquals(in.confidence, out.confidence, 0.01f /* delta */);
    }

    @Test
    public void testIPv6ProvisioningLossQuirkParceling() throws Exception {
        final NetworkAttributes.Builder builder = new NetworkAttributes.Builder();
        final IPv6ProvisioningLossQuirkParcelable parcelable =
                new IPv6ProvisioningLossQuirkParcelable();
        final long expiry = System.currentTimeMillis() + 7_200_000;

        parcelable.detectionCount = 3;
        parcelable.quirkExpiry = expiry; // quirk info will expire in two hours
        builder.setIpv6ProvLossQuirk(IPv6ProvisioningLossQuirk.fromStableParcelable(parcelable));
        final NetworkAttributes in = builder.build();

        final NetworkAttributes out = new NetworkAttributes(parcelingRoundTrip(in.toParcelable()));
        assertEquals(out.ipv6ProvLossQuirk, in.ipv6ProvLossQuirk);
    }

    private <T extends Parcelable> T parcelingRoundTrip(final T in) throws Exception {
        final Parcel p = Parcel.obtain();
        in.writeToParcel(p, /* flags */ 0);
+4 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.server.net.ipmemorystore;
import static org.junit.Assert.assertEquals;

import android.net.ipmemorystore.NetworkAttributes;
import android.net.quirks.IPv6ProvisioningLossQuirk;

import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
@@ -52,6 +53,8 @@ public class NetworkAttributesTest {
        }
        assertEquals(sum, NetworkAttributes.TOTAL_WEIGHT, EPSILON);

        final IPv6ProvisioningLossQuirk ipv6ProvLossQuirk =
                new IPv6ProvisioningLossQuirk(3, System.currentTimeMillis() + 7_200_000);
        // Use directly the constructor with all attributes, and make sure that when compared
        // to itself the score is a clean 1.0f.
        final NetworkAttributes na =
@@ -61,7 +64,7 @@ public class NetworkAttributesTest {
                        "some hint",
                        Arrays.asList(Inet4Address.getByAddress(new byte[] {5, 6, 7, 8}),
                                Inet4Address.getByAddress(new byte[] {9, 0, 1, 2})),
                        98);
                        98, ipv6ProvLossQuirk);
        assertEquals(1.0f, na.getNetworkGroupSamenessConfidence(na), EPSILON);
    }
}