Move MdnsResponseDecoder.Clock to MdnsUtils

This is a no-op change. The Clock class is a wrapper that is
used for testing. So move it from MdnsResponseDecoder to
MdnsUtils for subsequence metrics changes.

Bug: 287546772
Test: m
Change-Id: If4c8c0061c76ae26fc78a5ff463a31d57470fba0
This commit is contained in:
Paul Hu
2023-06-16 15:37:08 +00:00
parent 472d72f7da
commit e85479a1eb
6 changed files with 23 additions and 17 deletions

View File

@@ -74,7 +74,7 @@ public class EnqueueMdnsQueryCallable implements Callable<Pair<Integer, List<Str
@NonNull @NonNull
private final List<MdnsResponse> servicesToResolve; private final List<MdnsResponse> servicesToResolve;
@NonNull @NonNull
private final MdnsResponseDecoder.Clock clock; private final MdnsUtils.Clock clock;
private final boolean onlyUseIpv6OnIpv6OnlyNetworks; private final boolean onlyUseIpv6OnIpv6OnlyNetworks;
EnqueueMdnsQueryCallable( EnqueueMdnsQueryCallable(
@@ -88,7 +88,7 @@ public class EnqueueMdnsQueryCallable implements Callable<Pair<Integer, List<Str
boolean onlyUseIpv6OnIpv6OnlyNetworks, boolean onlyUseIpv6OnIpv6OnlyNetworks,
boolean sendDiscoveryQueries, boolean sendDiscoveryQueries,
@NonNull Collection<MdnsResponse> servicesToResolve, @NonNull Collection<MdnsResponse> servicesToResolve,
@NonNull MdnsResponseDecoder.Clock clock) { @NonNull MdnsUtils.Clock clock) {
weakRequestSender = new WeakReference<>(requestSender); weakRequestSender = new WeakReference<>(requestSender);
this.packetWriter = packetWriter; this.packetWriter = packetWriter;
serviceTypeLabels = TextUtils.split(serviceType, "\\."); serviceTypeLabels = TextUtils.split(serviceType, "\\.");

View File

@@ -19,7 +19,6 @@ package com.android.server.connectivity.mdns;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.net.Network; import android.net.Network;
import android.os.SystemClock;
import android.util.ArrayMap; import android.util.ArrayMap;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.Pair; import android.util.Pair;
@@ -40,10 +39,10 @@ public class MdnsResponseDecoder {
private final boolean allowMultipleSrvRecordsPerHost = private final boolean allowMultipleSrvRecordsPerHost =
MdnsConfigs.allowMultipleSrvRecordsPerHost(); MdnsConfigs.allowMultipleSrvRecordsPerHost();
@Nullable private final String[] serviceType; @Nullable private final String[] serviceType;
private final Clock clock; private final MdnsUtils.Clock clock;
/** Constructs a new decoder that will extract responses for the given service type. */ /** Constructs a new decoder that will extract responses for the given service type. */
public MdnsResponseDecoder(@NonNull Clock clock, @Nullable String[] serviceType) { public MdnsResponseDecoder(@NonNull MdnsUtils.Clock clock, @Nullable String[] serviceType) {
this.clock = clock; this.clock = clock;
this.serviceType = serviceType; this.serviceType = serviceType;
} }
@@ -330,10 +329,4 @@ public class MdnsResponseDecoder {
} }
return result == null ? List.of() : result; return result == null ? List.of() : result;
} }
public static class Clock {
public long elapsedRealtime() {
return SystemClock.elapsedRealtime();
}
}
} }

View File

@@ -17,6 +17,7 @@
package com.android.server.connectivity.mdns; package com.android.server.connectivity.mdns;
import static com.android.server.connectivity.mdns.MdnsServiceCache.findMatchedResponse; import static com.android.server.connectivity.mdns.MdnsServiceCache.findMatchedResponse;
import static com.android.server.connectivity.mdns.util.MdnsUtils.Clock;
import static com.android.server.connectivity.mdns.util.MdnsUtils.ensureRunningOnHandlerThread; import static com.android.server.connectivity.mdns.util.MdnsUtils.ensureRunningOnHandlerThread;
import android.annotation.NonNull; import android.annotation.NonNull;
@@ -73,7 +74,7 @@ public class MdnsServiceTypeClient {
new ArrayMap<>(); new ArrayMap<>();
private final boolean removeServiceAfterTtlExpires = private final boolean removeServiceAfterTtlExpires =
MdnsConfigs.removeServiceAfterTtlExpires(); MdnsConfigs.removeServiceAfterTtlExpires();
private final MdnsResponseDecoder.Clock clock; private final Clock clock;
@Nullable private MdnsSearchOptions searchOptions; @Nullable private MdnsSearchOptions searchOptions;
@@ -193,8 +194,8 @@ public class MdnsServiceTypeClient {
@NonNull SharedLog sharedLog, @NonNull SharedLog sharedLog,
@NonNull Looper looper, @NonNull Looper looper,
@NonNull MdnsServiceCache serviceCache) { @NonNull MdnsServiceCache serviceCache) {
this(serviceType, socketClient, executor, new MdnsResponseDecoder.Clock(), socketKey, this(serviceType, socketClient, executor, new Clock(), socketKey, sharedLog, looper,
sharedLog, looper, new Dependencies(), serviceCache); new Dependencies(), serviceCache);
} }
@VisibleForTesting @VisibleForTesting
@@ -202,7 +203,7 @@ public class MdnsServiceTypeClient {
@NonNull String serviceType, @NonNull String serviceType,
@NonNull MdnsSocketClientBase socketClient, @NonNull MdnsSocketClientBase socketClient,
@NonNull ScheduledExecutorService executor, @NonNull ScheduledExecutorService executor,
@NonNull MdnsResponseDecoder.Clock clock, @NonNull Clock clock,
@NonNull SocketKey socketKey, @NonNull SocketKey socketKey,
@NonNull SharedLog sharedLog, @NonNull SharedLog sharedLog,
@NonNull Looper looper, @NonNull Looper looper,

View File

@@ -20,6 +20,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.net.Network; import android.net.Network;
import android.os.Handler; import android.os.Handler;
import android.os.SystemClock;
import android.util.ArraySet; import android.util.ArraySet;
import com.android.server.connectivity.mdns.MdnsConstants; import com.android.server.connectivity.mdns.MdnsConstants;
@@ -173,4 +174,14 @@ public class MdnsUtils {
return mdnsRecord.getTtl() > 0 return mdnsRecord.getTtl() > 0
&& mdnsRecord.getRemainingTTL(now) <= mdnsRecord.getTtl() / 2; && mdnsRecord.getRemainingTTL(now) <= mdnsRecord.getTtl() / 2;
} }
/** A wrapper class of {@link SystemClock} to be mocked in unit tests. */
public static class Clock {
/**
* @see SystemClock#elapsedRealtime
*/
public long elapsedRealtime() {
return SystemClock.elapsedRealtime();
}
}
} }

View File

@@ -18,7 +18,7 @@ package com.android.server.connectivity.mdns;
import static android.net.InetAddresses.parseNumericAddress; import static android.net.InetAddresses.parseNumericAddress;
import static com.android.server.connectivity.mdns.MdnsResponseDecoder.Clock; import static com.android.server.connectivity.mdns.util.MdnsUtils.Clock;
import static com.android.testutils.DevSdkIgnoreRuleKt.SC_V2; import static com.android.testutils.DevSdkIgnoreRuleKt.SC_V2;
import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertArrayEquals;

View File

@@ -53,6 +53,7 @@ import com.android.net.module.util.CollectionUtils;
import com.android.net.module.util.SharedLog; import com.android.net.module.util.SharedLog;
import com.android.server.connectivity.mdns.MdnsServiceInfo.TextEntry; import com.android.server.connectivity.mdns.MdnsServiceInfo.TextEntry;
import com.android.server.connectivity.mdns.MdnsServiceTypeClient.QueryTaskConfig; import com.android.server.connectivity.mdns.MdnsServiceTypeClient.QueryTaskConfig;
import com.android.server.connectivity.mdns.util.MdnsUtils;
import com.android.testutils.DevSdkIgnoreRule; import com.android.testutils.DevSdkIgnoreRule;
import com.android.testutils.DevSdkIgnoreRunner; import com.android.testutils.DevSdkIgnoreRunner;
import com.android.testutils.HandlerUtils; import com.android.testutils.HandlerUtils;
@@ -113,7 +114,7 @@ public class MdnsServiceTypeClientTests {
@Mock @Mock
private Network mockNetwork; private Network mockNetwork;
@Mock @Mock
private MdnsResponseDecoder.Clock mockDecoderClock; private MdnsUtils.Clock mockDecoderClock;
@Mock @Mock
private SharedLog mockSharedLog; private SharedLog mockSharedLog;
@Mock @Mock