Correct isLegacy metric data
The isLegacy field of Nsd metrics should indicate whether the data was collected from the old backend or not. However, it is currently only dependent on the ENABLE_PLATFORM_MDNS_BACKEND compat change value, which is incorrect. This is because the NsdService always uses the new backend since Android U, regardless of the compat change value. Therefore, the isLegacy data should be obtained from each transaction. Bug: 287546772 Bug: 299880473 Test: atest FrameworksNetTestCases NsdManagerTest Change-Id: I156abd656b90578d710696a69ccf7dfca97a2c9c
This commit is contained in:
@@ -49,7 +49,6 @@ import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertThrows;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.argThat;
|
||||
@@ -227,7 +226,7 @@ public class NsdServiceTest {
|
||||
doReturn(DEFAULT_RUNNING_APP_ACTIVE_IMPORTANCE_CUTOFF).when(mDeps).getDeviceConfigInt(
|
||||
eq(NsdService.MDNS_CONFIG_RUNNING_APP_ACTIVE_IMPORTANCE_CUTOFF), anyInt());
|
||||
doReturn(mAdvertiser).when(mDeps).makeMdnsAdvertiser(any(), any(), any(), any(), any());
|
||||
doReturn(mMetrics).when(mDeps).makeNetworkNsdReportedMetrics(anyBoolean(), anyInt());
|
||||
doReturn(mMetrics).when(mDeps).makeNetworkNsdReportedMetrics(anyInt());
|
||||
doReturn(mClock).when(mDeps).makeClock();
|
||||
doReturn(TEST_TIME_MS).when(mClock).elapsedRealtime();
|
||||
mService = makeService();
|
||||
@@ -412,7 +411,7 @@ public class NsdServiceTest {
|
||||
// this needs to use a timeout
|
||||
verify(discListener, timeout(TIMEOUT_MS)).onDiscoveryStarted(SERVICE_TYPE);
|
||||
final int discId = discIdCaptor.getValue();
|
||||
verify(mMetrics).reportServiceDiscoveryStarted(discId);
|
||||
verify(mMetrics).reportServiceDiscoveryStarted(true /* isLegacy */, discId);
|
||||
|
||||
final DiscoveryInfo discoveryInfo = new DiscoveryInfo(
|
||||
discId,
|
||||
@@ -481,7 +480,7 @@ public class NsdServiceTest {
|
||||
final ArgumentCaptor<NsdServiceInfo> resInfoCaptor =
|
||||
ArgumentCaptor.forClass(NsdServiceInfo.class);
|
||||
verify(resolveListener, timeout(TIMEOUT_MS)).onServiceResolved(resInfoCaptor.capture());
|
||||
verify(mMetrics).reportServiceResolved(getAddrId, 10L /* durationMs */,
|
||||
verify(mMetrics).reportServiceResolved(true /* isLegacy */, getAddrId, 10L /* durationMs */,
|
||||
false /* isServiceFromCache */, 0 /* sentQueryCount */);
|
||||
|
||||
final NsdServiceInfo resolvedService = resInfoCaptor.getValue();
|
||||
@@ -509,7 +508,7 @@ public class NsdServiceTest {
|
||||
// this needs to use a timeout
|
||||
verify(discListener, timeout(TIMEOUT_MS)).onDiscoveryStarted(SERVICE_TYPE);
|
||||
final int discId = discIdCaptor.getValue();
|
||||
verify(mMetrics).reportServiceDiscoveryStarted(discId);
|
||||
verify(mMetrics).reportServiceDiscoveryStarted(true /* isLegacy */, discId);
|
||||
|
||||
final DiscoveryInfo discoveryInfo = new DiscoveryInfo(
|
||||
discId,
|
||||
@@ -559,7 +558,8 @@ public class NsdServiceTest {
|
||||
.onServiceRegistered(registeredInfoCaptor.capture());
|
||||
final NsdServiceInfo registeredInfo = registeredInfoCaptor.getValue();
|
||||
assertEquals(SERVICE_NAME, registeredInfo.getServiceName());
|
||||
verify(mMetrics).reportServiceRegistrationSucceeded(regId, 10L /* durationMs */);
|
||||
verify(mMetrics).reportServiceRegistrationSucceeded(
|
||||
true /* isLegacy */, regId, 10L /* durationMs */);
|
||||
|
||||
// Fail to register service.
|
||||
final RegistrationInfo registrationFailedInfo = new RegistrationInfo(
|
||||
@@ -574,7 +574,8 @@ public class NsdServiceTest {
|
||||
eventListener.onServiceRegistrationStatus(registrationFailedInfo);
|
||||
verify(regListener, timeout(TIMEOUT_MS))
|
||||
.onRegistrationFailed(any(), eq(FAILURE_INTERNAL_ERROR));
|
||||
verify(mMetrics).reportServiceRegistrationFailed(regId, 20L /* durationMs */);
|
||||
verify(mMetrics).reportServiceRegistrationFailed(
|
||||
true /* isLegacy */, regId, 20L /* durationMs */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -590,7 +591,7 @@ public class NsdServiceTest {
|
||||
verify(mMockMDnsM).discover(discIdCaptor.capture(), eq(SERVICE_TYPE), eq(IFACE_IDX_ANY));
|
||||
verify(discListener, timeout(TIMEOUT_MS)).onDiscoveryStarted(SERVICE_TYPE);
|
||||
final int discId = discIdCaptor.getValue();
|
||||
verify(mMetrics).reportServiceDiscoveryStarted(discId);
|
||||
verify(mMetrics).reportServiceDiscoveryStarted(true /* isLegacy */, discId);
|
||||
|
||||
// Fail to discover service.
|
||||
final DiscoveryInfo discoveryFailedInfo = new DiscoveryInfo(
|
||||
@@ -605,7 +606,8 @@ public class NsdServiceTest {
|
||||
eventListener.onServiceDiscoveryStatus(discoveryFailedInfo);
|
||||
verify(discListener, timeout(TIMEOUT_MS))
|
||||
.onStartDiscoveryFailed(SERVICE_TYPE, FAILURE_INTERNAL_ERROR);
|
||||
verify(mMetrics).reportServiceDiscoveryFailed(discId, 10L /* durationMs */);
|
||||
verify(mMetrics).reportServiceDiscoveryFailed(
|
||||
true /* isLegacy */, discId, 10L /* durationMs */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -639,7 +641,8 @@ public class NsdServiceTest {
|
||||
eventListener.onServiceResolutionStatus(resolutionFailedInfo);
|
||||
verify(resolveListener, timeout(TIMEOUT_MS))
|
||||
.onResolveFailed(any(), eq(FAILURE_INTERNAL_ERROR));
|
||||
verify(mMetrics).reportServiceResolutionFailed(resolvId, 10L /* durationMs */);
|
||||
verify(mMetrics).reportServiceResolutionFailed(
|
||||
true /* isLegacy */, resolvId, 10L /* durationMs */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -689,7 +692,8 @@ public class NsdServiceTest {
|
||||
eventListener.onGettingServiceAddressStatus(gettingAddrFailedInfo);
|
||||
verify(resolveListener, timeout(TIMEOUT_MS))
|
||||
.onResolveFailed(any(), eq(FAILURE_INTERNAL_ERROR));
|
||||
verify(mMetrics).reportServiceResolutionFailed(getAddrId, 10L /* durationMs */);
|
||||
verify(mMetrics).reportServiceResolutionFailed(
|
||||
true /* isLegacy */, getAddrId, 10L /* durationMs */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -734,7 +738,8 @@ public class NsdServiceTest {
|
||||
verify(resolveListener, timeout(TIMEOUT_MS)).onResolutionStopped(argThat(ns ->
|
||||
request.getServiceName().equals(ns.getServiceName())
|
||||
&& request.getServiceType().equals(ns.getServiceType())));
|
||||
verify(mMetrics).reportServiceResolutionStop(resolveId, 10L /* durationMs */);
|
||||
verify(mMetrics).reportServiceResolutionStop(
|
||||
true /* isLegacy */, resolveId, 10L /* durationMs */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -805,7 +810,8 @@ public class NsdServiceTest {
|
||||
verify(resolveListener, timeout(TIMEOUT_MS)).onResolutionStopped(argThat(ns ->
|
||||
request.getServiceName().equals(ns.getServiceName())
|
||||
&& request.getServiceType().equals(ns.getServiceType())));
|
||||
verify(mMetrics).reportServiceResolutionStop(getAddrId, 10L /* durationMs */);
|
||||
verify(mMetrics).reportServiceResolutionStop(
|
||||
true /* isLegacy */, getAddrId, 10L /* durationMs */);
|
||||
}
|
||||
|
||||
private void verifyUpdatedServiceInfo(NsdServiceInfo info, String serviceName,
|
||||
@@ -996,7 +1002,7 @@ public class NsdServiceTest {
|
||||
|
||||
final MdnsListener listener = listenerCaptor.getValue();
|
||||
final int discId = listener.mTransactionId;
|
||||
verify(mMetrics).reportServiceDiscoveryStarted(discId);
|
||||
verify(mMetrics).reportServiceDiscoveryStarted(false /* isLegacy */, discId);
|
||||
|
||||
// Callbacks for query sent.
|
||||
listener.onDiscoveryQuerySent(Collections.emptyList(), 1 /* transactionId */);
|
||||
@@ -1050,9 +1056,9 @@ public class NsdServiceTest {
|
||||
verify(mDiscoveryManager).unregisterListener(eq(serviceTypeWithLocalDomain), any());
|
||||
verify(discListener, timeout(TIMEOUT_MS)).onDiscoveryStopped(SERVICE_TYPE);
|
||||
verify(mSocketProvider, timeout(CLEANUP_DELAY_MS + TIMEOUT_MS)).requestStopWhenInactive();
|
||||
verify(mMetrics).reportServiceDiscoveryStop(discId, 10L /* durationMs */,
|
||||
1 /* foundCallbackCount */, 1 /* lostCallbackCount */, 1 /* servicesCount */,
|
||||
3 /* sentQueryCount */);
|
||||
verify(mMetrics).reportServiceDiscoveryStop(false /* isLegacy */, discId,
|
||||
10L /* durationMs */, 1 /* foundCallbackCount */, 1 /* lostCallbackCount */,
|
||||
1 /* servicesCount */, 3 /* sentQueryCount */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1068,8 +1074,8 @@ public class NsdServiceTest {
|
||||
waitForIdle();
|
||||
verify(discListener, timeout(TIMEOUT_MS))
|
||||
.onStartDiscoveryFailed(invalidServiceType, FAILURE_INTERNAL_ERROR);
|
||||
verify(mMetrics, times(1))
|
||||
.reportServiceDiscoveryFailed(NO_TRANSACTION, 0L /* durationMs */);
|
||||
verify(mMetrics, times(1)).reportServiceDiscoveryFailed(
|
||||
false /* isLegacy */, NO_TRANSACTION, 0L /* durationMs */);
|
||||
|
||||
final String serviceTypeWithLocalDomain = SERVICE_TYPE + ".local";
|
||||
client.discoverServices(
|
||||
@@ -1077,8 +1083,8 @@ public class NsdServiceTest {
|
||||
waitForIdle();
|
||||
verify(discListener, timeout(TIMEOUT_MS))
|
||||
.onStartDiscoveryFailed(serviceTypeWithLocalDomain, FAILURE_INTERNAL_ERROR);
|
||||
verify(mMetrics, times(2))
|
||||
.reportServiceDiscoveryFailed(NO_TRANSACTION, 0L /* durationMs */);
|
||||
verify(mMetrics, times(2)).reportServiceDiscoveryFailed(
|
||||
false /* isLegacy */, NO_TRANSACTION, 0L /* durationMs */);
|
||||
|
||||
final String serviceTypeWithoutTcpOrUdpEnding = "_test._com";
|
||||
client.discoverServices(
|
||||
@@ -1086,8 +1092,8 @@ public class NsdServiceTest {
|
||||
waitForIdle();
|
||||
verify(discListener, timeout(TIMEOUT_MS))
|
||||
.onStartDiscoveryFailed(serviceTypeWithoutTcpOrUdpEnding, FAILURE_INTERNAL_ERROR);
|
||||
verify(mMetrics, times(3))
|
||||
.reportServiceDiscoveryFailed(NO_TRANSACTION, 0L /* durationMs */);
|
||||
verify(mMetrics, times(3)).reportServiceDiscoveryFailed(
|
||||
false /* isLegacy */, NO_TRANSACTION, 0L /* durationMs */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1164,8 +1170,8 @@ public class NsdServiceTest {
|
||||
final ArgumentCaptor<NsdServiceInfo> infoCaptor =
|
||||
ArgumentCaptor.forClass(NsdServiceInfo.class);
|
||||
verify(resolveListener, timeout(TIMEOUT_MS)).onServiceResolved(infoCaptor.capture());
|
||||
verify(mMetrics).reportServiceResolved(listener.mTransactionId, 10 /* durationMs */,
|
||||
true /* isServiceFromCache */, 0 /* sendQueryCount */);
|
||||
verify(mMetrics).reportServiceResolved(false /* isLegacy */, listener.mTransactionId,
|
||||
10 /* durationMs */, true /* isServiceFromCache */, 0 /* sendQueryCount */);
|
||||
|
||||
final NsdServiceInfo info = infoCaptor.getValue();
|
||||
assertEquals(SERVICE_NAME, info.getServiceName());
|
||||
@@ -1309,7 +1315,8 @@ public class NsdServiceTest {
|
||||
|
||||
verify(regListener, timeout(TIMEOUT_MS)).onServiceRegistered(argThat(info -> matches(info,
|
||||
new NsdServiceInfo(regInfo.getServiceName(), null))));
|
||||
verify(mMetrics).reportServiceRegistrationSucceeded(regId, 10L /* durationMs */);
|
||||
verify(mMetrics).reportServiceRegistrationSucceeded(
|
||||
false /* isLegacy */, regId, 10L /* durationMs */);
|
||||
|
||||
final MdnsAdvertiser.AdvertiserMetrics metrics = new MdnsAdvertiser.AdvertiserMetrics(
|
||||
50 /* repliedRequestCount */, 100 /* sentPacketCount */,
|
||||
@@ -1322,8 +1329,8 @@ public class NsdServiceTest {
|
||||
verify(regListener, timeout(TIMEOUT_MS)).onServiceUnregistered(
|
||||
argThat(info -> matches(info, regInfo)));
|
||||
verify(mSocketProvider, timeout(TIMEOUT_MS)).requestStopWhenInactive();
|
||||
verify(mMetrics).reportServiceUnregistration(regId, 100L /* durationMs */,
|
||||
50 /* repliedRequestCount */, 100 /* sentPacketCount */,
|
||||
verify(mMetrics).reportServiceUnregistration(false /* isLegacy */, regId,
|
||||
100L /* durationMs */, 50 /* repliedRequestCount */, 100 /* sentPacketCount */,
|
||||
3 /* conflictDuringProbingCount */, 2 /* conflictAfterProbingCount */);
|
||||
}
|
||||
|
||||
@@ -1350,7 +1357,8 @@ public class NsdServiceTest {
|
||||
|
||||
verify(regListener, timeout(TIMEOUT_MS)).onRegistrationFailed(
|
||||
argThat(info -> matches(info, regInfo)), eq(FAILURE_INTERNAL_ERROR));
|
||||
verify(mMetrics).reportServiceRegistrationFailed(NO_TRANSACTION, 0L /* durationMs */);
|
||||
verify(mMetrics).reportServiceRegistrationFailed(
|
||||
false /* isLegacy */, NO_TRANSACTION, 0L /* durationMs */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1386,7 +1394,8 @@ public class NsdServiceTest {
|
||||
|
||||
verify(regListener, timeout(TIMEOUT_MS)).onServiceRegistered(
|
||||
argThat(info -> matches(info, new NsdServiceInfo(regInfo.getServiceName(), null))));
|
||||
verify(mMetrics).reportServiceRegistrationSucceeded(regId, 10L /* durationMs */);
|
||||
verify(mMetrics).reportServiceRegistrationSucceeded(
|
||||
false /* isLegacy */, regId, 10L /* durationMs */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1426,7 +1435,8 @@ public class NsdServiceTest {
|
||||
request.getServiceName().equals(ns.getServiceName())
|
||||
&& request.getServiceType().equals(ns.getServiceType())));
|
||||
verify(mSocketProvider, timeout(CLEANUP_DELAY_MS + TIMEOUT_MS)).requestStopWhenInactive();
|
||||
verify(mMetrics).reportServiceResolutionStop(listener.mTransactionId, 10L /* durationMs */);
|
||||
verify(mMetrics).reportServiceResolutionStop(
|
||||
false /* isLegacy */, listener.mTransactionId, 10L /* durationMs */);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user