summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/android/net/ip/IpReachabilityMonitor.java7
-rw-r--r--tests/unit/src/android/net/ip/IpReachabilityMonitorTest.kt6
-rw-r--r--tests/unit/src/android/net/netlink/NetlinkTestUtils.kt2
3 files changed, 11 insertions, 4 deletions
diff --git a/src/android/net/ip/IpReachabilityMonitor.java b/src/android/net/ip/IpReachabilityMonitor.java
index e1d4548..db928d6 100644
--- a/src/android/net/ip/IpReachabilityMonitor.java
+++ b/src/android/net/ip/IpReachabilityMonitor.java
@@ -187,7 +187,7 @@ public class IpReachabilityMonitor {
private final Dependencies mDependencies;
private final boolean mUsingMultinetworkPolicyTracker;
private final ConnectivityManager mCm;
- private final IpConnectivityLog mMetricsLog = new IpConnectivityLog();
+ private final IpConnectivityLog mMetricsLog;
private final Context mContext;
private final INetd mNetd;
private LinkProperties mLinkProperties = new LinkProperties();
@@ -201,13 +201,13 @@ public class IpReachabilityMonitor {
Context context, InterfaceParams ifParams, Handler h, SharedLog log, Callback callback,
boolean usingMultinetworkPolicyTracker, final INetd netd) {
this(context, ifParams, h, log, callback, usingMultinetworkPolicyTracker,
- Dependencies.makeDefault(context, ifParams.name), netd);
+ Dependencies.makeDefault(context, ifParams.name), new IpConnectivityLog(), netd);
}
@VisibleForTesting
IpReachabilityMonitor(Context context, InterfaceParams ifParams, Handler h, SharedLog log,
Callback callback, boolean usingMultinetworkPolicyTracker, Dependencies dependencies,
- final INetd netd) {
+ final IpConnectivityLog metricsLog, final INetd netd) {
if (ifParams == null) throw new IllegalArgumentException("null InterfaceParams");
mContext = context;
@@ -217,6 +217,7 @@ public class IpReachabilityMonitor {
mUsingMultinetworkPolicyTracker = usingMultinetworkPolicyTracker;
mCm = context.getSystemService(ConnectivityManager.class);
mDependencies = dependencies;
+ mMetricsLog = metricsLog;
mNetd = netd;
Preconditions.checkNotNull(mNetd);
Preconditions.checkArgument(!TextUtils.isEmpty(mInterfaceParams.name));
diff --git a/tests/unit/src/android/net/ip/IpReachabilityMonitorTest.kt b/tests/unit/src/android/net/ip/IpReachabilityMonitorTest.kt
index ac50651..d9a97b2 100644
--- a/tests/unit/src/android/net/ip/IpReachabilityMonitorTest.kt
+++ b/tests/unit/src/android/net/ip/IpReachabilityMonitorTest.kt
@@ -22,6 +22,7 @@ import android.net.IpPrefix
import android.net.LinkAddress
import android.net.LinkProperties
import android.net.RouteInfo
+import android.net.metrics.IpConnectivityLog
import android.net.netlink.StructNdMsg.NUD_FAILED
import android.net.netlink.StructNdMsg.NUD_STALE
import android.net.netlink.makeNewNeighMessage
@@ -35,6 +36,7 @@ import android.system.ErrnoException
import android.system.OsConstants.EAGAIN
import androidx.test.filters.SmallTest
import androidx.test.runner.AndroidJUnit4
+import com.android.testutils.waitForIdle
import org.junit.After
import org.junit.Before
import org.junit.Test
@@ -102,6 +104,7 @@ class IpReachabilityMonitorTest {
private val context = mock(Context::class.java)
private val netd = mock(INetd::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 handler by lazy { Handler(handlerThread.looper) }
@@ -181,6 +184,7 @@ class IpReachabilityMonitorTest {
callback,
false /* useMultinetworkPolicyTracker */,
dependencies,
+ metricsLog,
netd))
}
reachabilityMonitor = monitorFuture.get(TEST_TIMEOUT_MS, TimeUnit.MILLISECONDS)
@@ -190,6 +194,8 @@ class IpReachabilityMonitorTest {
@After
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()
handlerThread.quitSafely()
}
diff --git a/tests/unit/src/android/net/netlink/NetlinkTestUtils.kt b/tests/unit/src/android/net/netlink/NetlinkTestUtils.kt
index 6655e96..1bc3ab0 100644
--- a/tests/unit/src/android/net/netlink/NetlinkTestUtils.kt
+++ b/tests/unit/src/android/net/netlink/NetlinkTestUtils.kt
@@ -74,7 +74,7 @@ private fun makeNeighborMessage(
(if (neighAddr is Inet6Address) "1400" else "0800") +
"0100" + // type (1 == NDA_DST, for neighbor messages)
// IP address:
- encodeToString(neighAddr.address, false /* upperCase */) +
+ encodeToString(neighAddr.address) +
// -- struct nlattr: NDA_LLADDR --
"0a00" + // length = 10
"0200" + // type (2 == NDA_LLADDR, for neighbor messages)