Report more advertising metrics data

Report more advertising metrics data below when the service is
unregistered.
- Replied request count (sum across interfaces)
- Sent packet count (including announcements and probes)
- Number of conflicts during probing
- Nubmer of conflicts after probing

Bug: 287546772
Test: atest FrameworksNetTestCases NsdManagerTest
Merged-In: I50c54a35dc523422e3a7302c059bbbc38eac5631
Change-Id: I50c54a35dc523422e3a7302c059bbbc38eac5631
This commit is contained in:
Paul Hu
2023-07-14 16:38:25 +08:00
parent a337d95cc4
commit 043bcd4537
15 changed files with 333 additions and 38 deletions

View File

@@ -21,12 +21,15 @@ import android.stats.connectivity.MdnsQueryResult
import android.stats.connectivity.NsdEventType
import com.android.testutils.DevSdkIgnoreRule
import com.android.testutils.DevSdkIgnoreRunner
import java.util.Random
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentCaptor
import org.mockito.Mockito.doReturn
import org.mockito.Mockito.mock
import org.mockito.Mockito.verify
@@ -34,6 +37,12 @@ import org.mockito.Mockito.verify
@DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
class NetworkNsdReportedMetricsTest {
private val deps = mock(NetworkNsdReportedMetrics.Dependencies::class.java)
private val random = mock(Random::class.java)
@Before
fun setUp() {
doReturn(random).`when`(deps).makeRandomGenerator()
}
@Test
fun testReportServiceRegistrationSucceeded() {
@@ -80,8 +89,13 @@ class NetworkNsdReportedMetricsTest {
val clientId = 99
val transactionId = 100
val durationMs = 10L
val repliedRequestsCount = 25
val sentPacketCount = 50
val conflictDuringProbingCount = 2
val conflictAfterProbingCount = 1
val metrics = NetworkNsdReportedMetrics(true /* isLegacy */, clientId, deps)
metrics.reportServiceUnregistration(transactionId, durationMs)
metrics.reportServiceUnregistration(transactionId, durationMs, repliedRequestsCount,
sentPacketCount, conflictDuringProbingCount, conflictAfterProbingCount)
val eventCaptor = ArgumentCaptor.forClass(NetworkNsdReported::class.java)
verify(deps).statsWrite(eventCaptor.capture())
@@ -92,6 +106,10 @@ class NetworkNsdReportedMetricsTest {
assertEquals(NsdEventType.NET_REGISTER, it.type)
assertEquals(MdnsQueryResult.MQR_SERVICE_UNREGISTERED, it.queryResult)
assertEquals(durationMs, it.eventDurationMillisec)
assertEquals(repliedRequestsCount, it.repliedRequestsCount)
assertEquals(sentPacketCount, it.sentPacketCount)
assertEquals(conflictDuringProbingCount, it.conflictDuringProbingCount)
assertEquals(conflictAfterProbingCount, it.conflictAfterProbingCount)
}
}