From f250c51a2105d6ae845dfeb2673502e142ad6ab4 Mon Sep 17 00:00:00 2001 From: Paul Hu Date: Sun, 23 Mar 2025 15:49:49 +0000 Subject: [PATCH] Add Checks for mDNS Unregistration and Discovery Stop Operations mDNS service unregistration and discovery stop should only occur if the mDNS service has registered or started discovery. Therefore, a check is added to ignore unregistration or stop requests if registration or discovery has not been executed. Test: atest CtsConnectivityMultiDevicesTestCases Change-Id: If7becd5a89a45da977141e8f9767a8ed85d9ba1b --- .../cts/multidevices/snippet/MdnsMultiDevicesSnippet.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/cts/multidevices/snippet/MdnsMultiDevicesSnippet.kt b/tests/cts/multidevices/snippet/MdnsMultiDevicesSnippet.kt index 1b288df95a..1ed54a8ab3 100644 --- a/tests/cts/multidevices/snippet/MdnsMultiDevicesSnippet.kt +++ b/tests/cts/multidevices/snippet/MdnsMultiDevicesSnippet.kt @@ -20,6 +20,7 @@ import android.net.nsd.NsdManager import android.net.nsd.NsdServiceInfo import androidx.test.platform.app.InstrumentationRegistry import com.android.testutils.NsdDiscoveryRecord +import com.android.testutils.NsdDiscoveryRecord.DiscoveryEvent.DiscoveryStarted import com.android.testutils.NsdDiscoveryRecord.DiscoveryEvent.DiscoveryStopped import com.android.testutils.NsdRegistrationRecord import com.android.testutils.NsdRegistrationRecord.RegistrationEvent.ServiceRegistered @@ -58,6 +59,10 @@ class MdnsMultiDevicesSnippet : Snippet { @Rpc(description = "Unregister a mDns service") fun unregisterMDnsService() { + if (!(registrationRecord.poll(timeoutMs = 0, pos = 0) is ServiceRegistered)) { + // Ignore unregistration if the service has not registered + return + } nsdManager.unregisterService(registrationRecord) registrationRecord.expectCallback() } @@ -86,6 +91,10 @@ class MdnsMultiDevicesSnippet : Snippet { @Rpc(description = "Stop discovery") fun stopMDnsServiceDiscovery() { + if (!(discoveryRecord.poll(timeoutMs = 0, pos = 0) is DiscoveryStarted)) { + // Ignore discovery stop if discovery has not started + return + } nsdManager.stopServiceDiscovery(discoveryRecord) discoveryRecord.expectCallbackEventually() }