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

Commit db19d349 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN Committed by Automerger Merge Worker
Browse files

Merge "Fix IpReachabilityMonitorTest flakes/Q failures" am: 9f2fc0a8 am:...

Merge "Fix IpReachabilityMonitorTest flakes/Q failures" am: 9f2fc0a8 am: 20ed8bd3 am: 162c7ee3

Change-Id: Ic5fb4b54162dfb5c5a81e7d09113171b2c057aa9
parents b22383a6 162c7ee3
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -187,7 +187,7 @@ public class IpReachabilityMonitor {
    private final Dependencies mDependencies;
    private final Dependencies mDependencies;
    private final boolean mUsingMultinetworkPolicyTracker;
    private final boolean mUsingMultinetworkPolicyTracker;
    private final ConnectivityManager mCm;
    private final ConnectivityManager mCm;
    private final IpConnectivityLog mMetricsLog = new IpConnectivityLog();
    private final IpConnectivityLog mMetricsLog;
    private final Context mContext;
    private final Context mContext;
    private final INetd mNetd;
    private final INetd mNetd;
    private LinkProperties mLinkProperties = new LinkProperties();
    private LinkProperties mLinkProperties = new LinkProperties();
@@ -201,13 +201,13 @@ public class IpReachabilityMonitor {
            Context context, InterfaceParams ifParams, Handler h, SharedLog log, Callback callback,
            Context context, InterfaceParams ifParams, Handler h, SharedLog log, Callback callback,
            boolean usingMultinetworkPolicyTracker, final INetd netd) {
            boolean usingMultinetworkPolicyTracker, final INetd netd) {
        this(context, ifParams, h, log, callback, usingMultinetworkPolicyTracker,
        this(context, ifParams, h, log, callback, usingMultinetworkPolicyTracker,
                Dependencies.makeDefault(context, ifParams.name), netd);
                Dependencies.makeDefault(context, ifParams.name), new IpConnectivityLog(), netd);
    }
    }


    @VisibleForTesting
    @VisibleForTesting
    IpReachabilityMonitor(Context context, InterfaceParams ifParams, Handler h, SharedLog log,
    IpReachabilityMonitor(Context context, InterfaceParams ifParams, Handler h, SharedLog log,
            Callback callback, boolean usingMultinetworkPolicyTracker, Dependencies dependencies,
            Callback callback, boolean usingMultinetworkPolicyTracker, Dependencies dependencies,
            final INetd netd) {
            final IpConnectivityLog metricsLog, final INetd netd) {
        if (ifParams == null) throw new IllegalArgumentException("null InterfaceParams");
        if (ifParams == null) throw new IllegalArgumentException("null InterfaceParams");


        mContext = context;
        mContext = context;
@@ -217,6 +217,7 @@ public class IpReachabilityMonitor {
        mUsingMultinetworkPolicyTracker = usingMultinetworkPolicyTracker;
        mUsingMultinetworkPolicyTracker = usingMultinetworkPolicyTracker;
        mCm = context.getSystemService(ConnectivityManager.class);
        mCm = context.getSystemService(ConnectivityManager.class);
        mDependencies = dependencies;
        mDependencies = dependencies;
        mMetricsLog = metricsLog;
        mNetd = netd;
        mNetd = netd;
        Preconditions.checkNotNull(mNetd);
        Preconditions.checkNotNull(mNetd);
        Preconditions.checkArgument(!TextUtils.isEmpty(mInterfaceParams.name));
        Preconditions.checkArgument(!TextUtils.isEmpty(mInterfaceParams.name));
+6 −0
Original line number Original line Diff line number Diff line
@@ -22,6 +22,7 @@ import android.net.IpPrefix
import android.net.LinkAddress
import android.net.LinkAddress
import android.net.LinkProperties
import android.net.LinkProperties
import android.net.RouteInfo
import android.net.RouteInfo
import android.net.metrics.IpConnectivityLog
import android.net.netlink.StructNdMsg.NUD_FAILED
import android.net.netlink.StructNdMsg.NUD_FAILED
import android.net.netlink.StructNdMsg.NUD_STALE
import android.net.netlink.StructNdMsg.NUD_STALE
import android.net.netlink.makeNewNeighMessage
import android.net.netlink.makeNewNeighMessage
@@ -35,6 +36,7 @@ import android.system.ErrnoException
import android.system.OsConstants.EAGAIN
import android.system.OsConstants.EAGAIN
import androidx.test.filters.SmallTest
import androidx.test.filters.SmallTest
import androidx.test.runner.AndroidJUnit4
import androidx.test.runner.AndroidJUnit4
import com.android.testutils.waitForIdle
import org.junit.After
import org.junit.After
import org.junit.Before
import org.junit.Before
import org.junit.Test
import org.junit.Test
@@ -101,6 +103,7 @@ class IpReachabilityMonitorTest {
    private val context = mock(Context::class.java)
    private val context = mock(Context::class.java)
    private val netd = mock(INetd::class.java)
    private val netd = mock(INetd::class.java)
    private val fd = mock(FileDescriptor::class.java)
    private val fd = mock(FileDescriptor::class.java)
    private val metricsLog = mock(IpConnectivityLog::class.java)


    private val handlerThread = HandlerThread(IpReachabilityMonitorTest::class.simpleName)
    private val handlerThread = HandlerThread(IpReachabilityMonitorTest::class.simpleName)
    private val handler by lazy { Handler(handlerThread.looper) }
    private val handler by lazy { Handler(handlerThread.looper) }
@@ -180,6 +183,7 @@ class IpReachabilityMonitorTest {
                    callback,
                    callback,
                    false /* useMultinetworkPolicyTracker */,
                    false /* useMultinetworkPolicyTracker */,
                    dependencies,
                    dependencies,
                    metricsLog,
                    netd))
                    netd))
        }
        }
        reachabilityMonitor = monitorFuture.get(TEST_TIMEOUT_MS, TimeUnit.MILLISECONDS)
        reachabilityMonitor = monitorFuture.get(TEST_TIMEOUT_MS, TimeUnit.MILLISECONDS)
@@ -189,6 +193,8 @@ class IpReachabilityMonitorTest {


    @After
    @After
    fun tearDown() {
    fun tearDown() {
        // Ensure the handler thread is not accessing the fd while changing its mock
        handlerThread.waitForIdle(TEST_TIMEOUT_MS)
        doReturn(false).`when`(fd).valid()
        doReturn(false).`when`(fd).valid()
        handlerThread.quitSafely()
        handlerThread.quitSafely()
    }
    }
+1 −1
Original line number Original line Diff line number Diff line
@@ -74,7 +74,7 @@ private fun makeNeighborMessage(
    (if (neighAddr is Inet6Address) "1400" else "0800") +
    (if (neighAddr is Inet6Address) "1400" else "0800") +
    "0100" +             // type (1 == NDA_DST, for neighbor messages)
    "0100" +             // type (1 == NDA_DST, for neighbor messages)
                         // IP address:
                         // IP address:
    encodeToString(neighAddr.address, false /* upperCase */) +
    encodeToString(neighAddr.address) +
    // -- struct nlattr: NDA_LLADDR --
    // -- struct nlattr: NDA_LLADDR --
    "0a00" +             // length = 10
    "0a00" +             // length = 10
    "0200" +             // type (2 == NDA_LLADDR, for neighbor messages)
    "0200" +             // type (2 == NDA_LLADDR, for neighbor messages)