diff options
author | Remi NGUYEN VAN <reminv@google.com> | 2020-04-30 07:34:55 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-04-30 07:34:55 +0000 |
commit | 2bfc0b3738fb4d4f08bfd50975c5b772f125fed2 (patch) | |
tree | e34d4c30c4e8b053ef2f9aa5b94801bee2329e62 /src | |
parent | 812baf3e3a5bd0a7cfdaf4b96c8ae190a36b7d30 (diff) | |
parent | 675274fa929f64ce47392da3fcefc2f52f75523b (diff) |
Merge changes I9d38c696,I8da6a8f4 into rvc-dev
* changes:
Fix IpReachabilityMonitorTest flakes/Q failures
Add tests for IpReachabilityMonitor
Diffstat (limited to 'src')
-rw-r--r-- | src/android/net/ip/IpReachabilityMonitor.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/android/net/ip/IpReachabilityMonitor.java b/src/android/net/ip/IpReachabilityMonitor.java index 17b1f3c..db928d6 100644 --- a/src/android/net/ip/IpReachabilityMonitor.java +++ b/src/android/net/ip/IpReachabilityMonitor.java @@ -27,6 +27,7 @@ import android.net.INetd; import android.net.LinkProperties; import android.net.RouteInfo; import android.net.ip.IpNeighborMonitor.NeighborEvent; +import android.net.ip.IpNeighborMonitor.NeighborEventConsumer; import android.net.metrics.IpConnectivityLog; import android.net.metrics.IpReachabilityEvent; import android.net.netlink.StructNdMsg; @@ -154,11 +155,12 @@ public class IpReachabilityMonitor { } /** - * Encapsulates IpReachabilityMonitor depencencies on systems that hinder unit testing. + * Encapsulates IpReachabilityMonitor dependencies on systems that hinder unit testing. * TODO: consider also wrapping MultinetworkPolicyTracker in this interface. */ interface Dependencies { void acquireWakeLock(long durationMs); + IpNeighborMonitor makeIpNeighborMonitor(Handler h, SharedLog log, NeighborEventConsumer cb); static Dependencies makeDefault(Context context, String iface) { final String lockName = TAG + "." + iface; @@ -169,6 +171,11 @@ public class IpReachabilityMonitor { public void acquireWakeLock(long durationMs) { lock.acquire(durationMs); } + + public IpNeighborMonitor makeIpNeighborMonitor(Handler h, SharedLog log, + NeighborEventConsumer cb) { + return new IpNeighborMonitor(h, log, cb); + } }; } } @@ -180,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(); @@ -194,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; @@ -210,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)); @@ -223,7 +231,7 @@ public class IpReachabilityMonitor { } setNeighbourParametersForSteadyState(); - mIpNeighborMonitor = new IpNeighborMonitor(h, mLog, + mIpNeighborMonitor = mDependencies.makeIpNeighborMonitor(h, mLog, (NeighborEvent event) -> { if (mInterfaceParams.index != event.ifindex) return; if (!mNeighborWatchList.containsKey(event.ip)) return; |