Merge "Remove NsdShim as it is not required" into main
This commit is contained in:
@@ -80,8 +80,6 @@ import com.android.compatibility.common.util.PropertyUtil
|
|||||||
import com.android.modules.utils.build.SdkLevel.isAtLeastU
|
import com.android.modules.utils.build.SdkLevel.isAtLeastU
|
||||||
import com.android.net.module.util.ArrayTrackRecord
|
import com.android.net.module.util.ArrayTrackRecord
|
||||||
import com.android.net.module.util.TrackRecord
|
import com.android.net.module.util.TrackRecord
|
||||||
import com.android.networkstack.apishim.NsdShimImpl
|
|
||||||
import com.android.networkstack.apishim.common.NsdShim
|
|
||||||
import com.android.testutils.ConnectivityModuleTest
|
import com.android.testutils.ConnectivityModuleTest
|
||||||
import com.android.testutils.DevSdkIgnoreRule
|
import com.android.testutils.DevSdkIgnoreRule
|
||||||
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo
|
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo
|
||||||
@@ -133,8 +131,6 @@ private const val REGISTRATION_TIMEOUT_MS = 10_000L
|
|||||||
private const val DBG = false
|
private const val DBG = false
|
||||||
private const val TEST_PORT = 12345
|
private const val TEST_PORT = 12345
|
||||||
|
|
||||||
private val nsdShim = NsdShimImpl.newInstance()
|
|
||||||
|
|
||||||
@AppModeFull(reason = "Socket cannot bind in instant app mode")
|
@AppModeFull(reason = "Socket cannot bind in instant app mode")
|
||||||
@RunWith(DevSdkIgnoreRunner::class)
|
@RunWith(DevSdkIgnoreRunner::class)
|
||||||
@SmallTest
|
@SmallTest
|
||||||
@@ -293,7 +289,7 @@ class NsdManagerTest {
|
|||||||
val serviceFound = expectCallbackEventually<ServiceFound> {
|
val serviceFound = expectCallbackEventually<ServiceFound> {
|
||||||
it.serviceInfo.serviceName == serviceName &&
|
it.serviceInfo.serviceName == serviceName &&
|
||||||
(expectedNetwork == null ||
|
(expectedNetwork == null ||
|
||||||
expectedNetwork == nsdShim.getNetwork(it.serviceInfo))
|
expectedNetwork == it.serviceInfo.network)
|
||||||
}.serviceInfo
|
}.serviceInfo
|
||||||
// Discovered service types have a dot at the end
|
// Discovered service types have a dot at the end
|
||||||
assertEquals("$serviceType.", serviceFound.serviceType)
|
assertEquals("$serviceType.", serviceFound.serviceType)
|
||||||
@@ -331,7 +327,7 @@ class NsdManagerTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class NsdServiceInfoCallbackRecord : NsdShim.ServiceInfoCallbackShim,
|
private class NsdServiceInfoCallbackRecord : NsdManager.ServiceInfoCallback,
|
||||||
NsdRecord<NsdServiceInfoCallbackRecord.ServiceInfoCallbackEvent>() {
|
NsdRecord<NsdServiceInfoCallbackRecord.ServiceInfoCallbackEvent>() {
|
||||||
sealed class ServiceInfoCallbackEvent : NsdEvent {
|
sealed class ServiceInfoCallbackEvent : NsdEvent {
|
||||||
data class RegisterCallbackFailed(val errorCode: Int) : ServiceInfoCallbackEvent()
|
data class RegisterCallbackFailed(val errorCode: Int) : ServiceInfoCallbackEvent()
|
||||||
@@ -361,13 +357,11 @@ class NsdManagerTest {
|
|||||||
fun setUp() {
|
fun setUp() {
|
||||||
handlerThread.start()
|
handlerThread.start()
|
||||||
|
|
||||||
if (TestUtils.shouldTestTApis()) {
|
|
||||||
runAsShell(MANAGE_TEST_NETWORKS) {
|
runAsShell(MANAGE_TEST_NETWORKS) {
|
||||||
testNetwork1 = createTestNetwork()
|
testNetwork1 = createTestNetwork()
|
||||||
testNetwork2 = createTestNetwork()
|
testNetwork2 = createTestNetwork()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private fun createTestNetwork(): TestTapNetwork {
|
private fun createTestNetwork(): TestTapNetwork {
|
||||||
val tnm = context.getSystemService(TestNetworkManager::class.java)
|
val tnm = context.getSystemService(TestNetworkManager::class.java)
|
||||||
@@ -450,13 +444,11 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
@After
|
@After
|
||||||
fun tearDown() {
|
fun tearDown() {
|
||||||
if (TestUtils.shouldTestTApis()) {
|
|
||||||
runAsShell(MANAGE_TEST_NETWORKS) {
|
runAsShell(MANAGE_TEST_NETWORKS) {
|
||||||
// Avoid throwing here if initializing failed in setUp
|
// Avoid throwing here if initializing failed in setUp
|
||||||
if (this::testNetwork1.isInitialized) testNetwork1.close(cm)
|
if (this::testNetwork1.isInitialized) testNetwork1.close(cm)
|
||||||
if (this::testNetwork2.isInitialized) testNetwork2.close(cm)
|
if (this::testNetwork2.isInitialized) testNetwork2.close(cm)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
handlerThread.waitForIdle(TIMEOUT_MS)
|
handlerThread.waitForIdle(TIMEOUT_MS)
|
||||||
handlerThread.quitSafely()
|
handlerThread.quitSafely()
|
||||||
handlerThread.join()
|
handlerThread.join()
|
||||||
@@ -601,9 +593,6 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testNsdManager_DiscoverOnNetwork() {
|
fun testNsdManager_DiscoverOnNetwork() {
|
||||||
// This test requires shims supporting T+ APIs (discovering on specific network)
|
|
||||||
assumeTrue(TestUtils.shouldTestTApis())
|
|
||||||
|
|
||||||
val si = NsdServiceInfo()
|
val si = NsdServiceInfo()
|
||||||
si.serviceType = serviceType
|
si.serviceType = serviceType
|
||||||
si.serviceName = this.serviceName
|
si.serviceName = this.serviceName
|
||||||
@@ -614,19 +603,19 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
tryTest {
|
tryTest {
|
||||||
val discoveryRecord = NsdDiscoveryRecord()
|
val discoveryRecord = NsdDiscoveryRecord()
|
||||||
nsdShim.discoverServices(nsdManager, serviceType, NsdManager.PROTOCOL_DNS_SD,
|
nsdManager.discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD,
|
||||||
testNetwork1.network, Executor { it.run() }, discoveryRecord)
|
testNetwork1.network, Executor { it.run() }, discoveryRecord)
|
||||||
|
|
||||||
val foundInfo = discoveryRecord.waitForServiceDiscovered(
|
val foundInfo = discoveryRecord.waitForServiceDiscovered(
|
||||||
serviceName, serviceType, testNetwork1.network)
|
serviceName, serviceType, testNetwork1.network)
|
||||||
assertEquals(testNetwork1.network, nsdShim.getNetwork(foundInfo))
|
assertEquals(testNetwork1.network, foundInfo.network)
|
||||||
|
|
||||||
// Rewind to ensure the service is not found on the other interface
|
// Rewind to ensure the service is not found on the other interface
|
||||||
discoveryRecord.nextEvents.rewind(0)
|
discoveryRecord.nextEvents.rewind(0)
|
||||||
assertNull(discoveryRecord.nextEvents.poll(timeoutMs = 100L) {
|
assertNull(discoveryRecord.nextEvents.poll(timeoutMs = 100L) {
|
||||||
it is ServiceFound &&
|
it is ServiceFound &&
|
||||||
it.serviceInfo.serviceName == registeredInfo.serviceName &&
|
it.serviceInfo.serviceName == registeredInfo.serviceName &&
|
||||||
nsdShim.getNetwork(it.serviceInfo) != testNetwork1.network
|
it.serviceInfo.network != testNetwork1.network
|
||||||
}, "The service should not be found on this network")
|
}, "The service should not be found on this network")
|
||||||
} cleanup {
|
} cleanup {
|
||||||
nsdManager.unregisterService(registrationRecord)
|
nsdManager.unregisterService(registrationRecord)
|
||||||
@@ -635,9 +624,6 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testNsdManager_DiscoverWithNetworkRequest() {
|
fun testNsdManager_DiscoverWithNetworkRequest() {
|
||||||
// This test requires shims supporting T+ APIs (discovering on network request)
|
|
||||||
assumeTrue(TestUtils.shouldTestTApis())
|
|
||||||
|
|
||||||
val si = NsdServiceInfo()
|
val si = NsdServiceInfo()
|
||||||
si.serviceType = serviceType
|
si.serviceType = serviceType
|
||||||
si.serviceName = this.serviceName
|
si.serviceName = this.serviceName
|
||||||
@@ -652,7 +638,7 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
tryTest {
|
tryTest {
|
||||||
val specifier = TestNetworkSpecifier(testNetwork1.iface.interfaceName)
|
val specifier = TestNetworkSpecifier(testNetwork1.iface.interfaceName)
|
||||||
nsdShim.discoverServices(nsdManager, serviceType, NsdManager.PROTOCOL_DNS_SD,
|
nsdManager.discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD,
|
||||||
NetworkRequest.Builder()
|
NetworkRequest.Builder()
|
||||||
.removeCapability(NET_CAPABILITY_TRUSTED)
|
.removeCapability(NET_CAPABILITY_TRUSTED)
|
||||||
.addTransportType(TRANSPORT_TEST)
|
.addTransportType(TRANSPORT_TEST)
|
||||||
@@ -667,27 +653,27 @@ class NsdManagerTest {
|
|||||||
assertEquals(registeredInfo1.serviceName, serviceDiscovered.serviceInfo.serviceName)
|
assertEquals(registeredInfo1.serviceName, serviceDiscovered.serviceInfo.serviceName)
|
||||||
// Discovered service types have a dot at the end
|
// Discovered service types have a dot at the end
|
||||||
assertEquals("$serviceType.", serviceDiscovered.serviceInfo.serviceType)
|
assertEquals("$serviceType.", serviceDiscovered.serviceInfo.serviceType)
|
||||||
assertEquals(testNetwork1.network, nsdShim.getNetwork(serviceDiscovered.serviceInfo))
|
assertEquals(testNetwork1.network, serviceDiscovered.serviceInfo.network)
|
||||||
|
|
||||||
// Unregister, then register the service back: it should be lost and found again
|
// Unregister, then register the service back: it should be lost and found again
|
||||||
nsdManager.unregisterService(registrationRecord)
|
nsdManager.unregisterService(registrationRecord)
|
||||||
val serviceLost1 = discoveryRecord.expectCallback<ServiceLost>()
|
val serviceLost1 = discoveryRecord.expectCallback<ServiceLost>()
|
||||||
assertEquals(registeredInfo1.serviceName, serviceLost1.serviceInfo.serviceName)
|
assertEquals(registeredInfo1.serviceName, serviceLost1.serviceInfo.serviceName)
|
||||||
assertEquals(testNetwork1.network, nsdShim.getNetwork(serviceLost1.serviceInfo))
|
assertEquals(testNetwork1.network, serviceLost1.serviceInfo.network)
|
||||||
|
|
||||||
registrationRecord.expectCallback<ServiceUnregistered>()
|
registrationRecord.expectCallback<ServiceUnregistered>()
|
||||||
val registeredInfo2 = registerService(registrationRecord, si, executor)
|
val registeredInfo2 = registerService(registrationRecord, si, executor)
|
||||||
val serviceDiscovered2 = discoveryRecord.expectCallback<ServiceFound>()
|
val serviceDiscovered2 = discoveryRecord.expectCallback<ServiceFound>()
|
||||||
assertEquals(registeredInfo2.serviceName, serviceDiscovered2.serviceInfo.serviceName)
|
assertEquals(registeredInfo2.serviceName, serviceDiscovered2.serviceInfo.serviceName)
|
||||||
assertEquals("$serviceType.", serviceDiscovered2.serviceInfo.serviceType)
|
assertEquals("$serviceType.", serviceDiscovered2.serviceInfo.serviceType)
|
||||||
assertEquals(testNetwork1.network, nsdShim.getNetwork(serviceDiscovered2.serviceInfo))
|
assertEquals(testNetwork1.network, serviceDiscovered2.serviceInfo.network)
|
||||||
|
|
||||||
// Teardown, then bring back up a network on the test interface: the service should
|
// Teardown, then bring back up a network on the test interface: the service should
|
||||||
// go away, then come back
|
// go away, then come back
|
||||||
testNetwork1.agent.unregister()
|
testNetwork1.agent.unregister()
|
||||||
val serviceLost = discoveryRecord.expectCallback<ServiceLost>()
|
val serviceLost = discoveryRecord.expectCallback<ServiceLost>()
|
||||||
assertEquals(registeredInfo2.serviceName, serviceLost.serviceInfo.serviceName)
|
assertEquals(registeredInfo2.serviceName, serviceLost.serviceInfo.serviceName)
|
||||||
assertEquals(testNetwork1.network, nsdShim.getNetwork(serviceLost.serviceInfo))
|
assertEquals(testNetwork1.network, serviceLost.serviceInfo.network)
|
||||||
|
|
||||||
val newAgent = runAsShell(MANAGE_TEST_NETWORKS) {
|
val newAgent = runAsShell(MANAGE_TEST_NETWORKS) {
|
||||||
registerTestNetworkAgent(testNetwork1.iface.interfaceName)
|
registerTestNetworkAgent(testNetwork1.iface.interfaceName)
|
||||||
@@ -696,7 +682,7 @@ class NsdManagerTest {
|
|||||||
val serviceDiscovered3 = discoveryRecord.expectCallback<ServiceFound>()
|
val serviceDiscovered3 = discoveryRecord.expectCallback<ServiceFound>()
|
||||||
assertEquals(registeredInfo2.serviceName, serviceDiscovered3.serviceInfo.serviceName)
|
assertEquals(registeredInfo2.serviceName, serviceDiscovered3.serviceInfo.serviceName)
|
||||||
assertEquals("$serviceType.", serviceDiscovered3.serviceInfo.serviceType)
|
assertEquals("$serviceType.", serviceDiscovered3.serviceInfo.serviceType)
|
||||||
assertEquals(newNetwork, nsdShim.getNetwork(serviceDiscovered3.serviceInfo))
|
assertEquals(newNetwork, serviceDiscovered3.serviceInfo.network)
|
||||||
} cleanupStep {
|
} cleanupStep {
|
||||||
nsdManager.stopServiceDiscovery(discoveryRecord)
|
nsdManager.stopServiceDiscovery(discoveryRecord)
|
||||||
discoveryRecord.expectCallback<DiscoveryStopped>()
|
discoveryRecord.expectCallback<DiscoveryStopped>()
|
||||||
@@ -707,9 +693,6 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testNsdManager_DiscoverWithNetworkRequest_NoMatchingNetwork() {
|
fun testNsdManager_DiscoverWithNetworkRequest_NoMatchingNetwork() {
|
||||||
// This test requires shims supporting T+ APIs (discovering on network request)
|
|
||||||
assumeTrue(TestUtils.shouldTestTApis())
|
|
||||||
|
|
||||||
val si = NsdServiceInfo()
|
val si = NsdServiceInfo()
|
||||||
si.serviceType = serviceType
|
si.serviceType = serviceType
|
||||||
si.serviceName = this.serviceName
|
si.serviceName = this.serviceName
|
||||||
@@ -722,7 +705,7 @@ class NsdManagerTest {
|
|||||||
val specifier = TestNetworkSpecifier(testNetwork1.iface.interfaceName)
|
val specifier = TestNetworkSpecifier(testNetwork1.iface.interfaceName)
|
||||||
|
|
||||||
tryTest {
|
tryTest {
|
||||||
nsdShim.discoverServices(nsdManager, serviceType, NsdManager.PROTOCOL_DNS_SD,
|
nsdManager.discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD,
|
||||||
NetworkRequest.Builder()
|
NetworkRequest.Builder()
|
||||||
.removeCapability(NET_CAPABILITY_TRUSTED)
|
.removeCapability(NET_CAPABILITY_TRUSTED)
|
||||||
.addTransportType(TRANSPORT_TEST)
|
.addTransportType(TRANSPORT_TEST)
|
||||||
@@ -754,9 +737,6 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testNsdManager_ResolveOnNetwork() {
|
fun testNsdManager_ResolveOnNetwork() {
|
||||||
// This test requires shims supporting T+ APIs (NsdServiceInfo.network)
|
|
||||||
assumeTrue(TestUtils.shouldTestTApis())
|
|
||||||
|
|
||||||
val si = NsdServiceInfo()
|
val si = NsdServiceInfo()
|
||||||
si.serviceType = serviceType
|
si.serviceType = serviceType
|
||||||
si.serviceName = this.serviceName
|
si.serviceName = this.serviceName
|
||||||
@@ -772,21 +752,21 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
val foundInfo1 = discoveryRecord.waitForServiceDiscovered(
|
val foundInfo1 = discoveryRecord.waitForServiceDiscovered(
|
||||||
serviceName, serviceType, testNetwork1.network)
|
serviceName, serviceType, testNetwork1.network)
|
||||||
assertEquals(testNetwork1.network, nsdShim.getNetwork(foundInfo1))
|
assertEquals(testNetwork1.network, foundInfo1.network)
|
||||||
// Rewind as the service could be found on each interface in any order
|
// Rewind as the service could be found on each interface in any order
|
||||||
discoveryRecord.nextEvents.rewind(0)
|
discoveryRecord.nextEvents.rewind(0)
|
||||||
val foundInfo2 = discoveryRecord.waitForServiceDiscovered(
|
val foundInfo2 = discoveryRecord.waitForServiceDiscovered(
|
||||||
serviceName, serviceType, testNetwork2.network)
|
serviceName, serviceType, testNetwork2.network)
|
||||||
assertEquals(testNetwork2.network, nsdShim.getNetwork(foundInfo2))
|
assertEquals(testNetwork2.network, foundInfo2.network)
|
||||||
|
|
||||||
nsdShim.resolveService(nsdManager, foundInfo1, Executor { it.run() }, resolveRecord)
|
nsdManager.resolveService(foundInfo1, Executor { it.run() }, resolveRecord)
|
||||||
val cb = resolveRecord.expectCallback<ServiceResolved>()
|
val cb = resolveRecord.expectCallback<ServiceResolved>()
|
||||||
cb.serviceInfo.let {
|
cb.serviceInfo.let {
|
||||||
// Resolved service type has leading dot
|
// Resolved service type has leading dot
|
||||||
assertEquals(".$serviceType", it.serviceType)
|
assertEquals(".$serviceType", it.serviceType)
|
||||||
assertEquals(registeredInfo.serviceName, it.serviceName)
|
assertEquals(registeredInfo.serviceName, it.serviceName)
|
||||||
assertEquals(si.port, it.port)
|
assertEquals(si.port, it.port)
|
||||||
assertEquals(testNetwork1.network, nsdShim.getNetwork(it))
|
assertEquals(testNetwork1.network, it.network)
|
||||||
checkAddressScopeId(testNetwork1.iface, it.hostAddresses)
|
checkAddressScopeId(testNetwork1.iface, it.hostAddresses)
|
||||||
}
|
}
|
||||||
// TODO: check that MDNS packets are sent only on testNetwork1.
|
// TODO: check that MDNS packets are sent only on testNetwork1.
|
||||||
@@ -799,9 +779,6 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testNsdManager_RegisterOnNetwork() {
|
fun testNsdManager_RegisterOnNetwork() {
|
||||||
// This test requires shims supporting T+ APIs (NsdServiceInfo.network)
|
|
||||||
assumeTrue(TestUtils.shouldTestTApis())
|
|
||||||
|
|
||||||
val si = NsdServiceInfo()
|
val si = NsdServiceInfo()
|
||||||
si.serviceType = serviceType
|
si.serviceType = serviceType
|
||||||
si.serviceName = this.serviceName
|
si.serviceName = this.serviceName
|
||||||
@@ -817,27 +794,27 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
tryTest {
|
tryTest {
|
||||||
// Discover service on testNetwork1.
|
// Discover service on testNetwork1.
|
||||||
nsdShim.discoverServices(nsdManager, serviceType, NsdManager.PROTOCOL_DNS_SD,
|
nsdManager.discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD,
|
||||||
testNetwork1.network, Executor { it.run() }, discoveryRecord)
|
testNetwork1.network, Executor { it.run() }, discoveryRecord)
|
||||||
// Expect that service is found on testNetwork1
|
// Expect that service is found on testNetwork1
|
||||||
val foundInfo = discoveryRecord.waitForServiceDiscovered(
|
val foundInfo = discoveryRecord.waitForServiceDiscovered(
|
||||||
serviceName, serviceType, testNetwork1.network)
|
serviceName, serviceType, testNetwork1.network)
|
||||||
assertEquals(testNetwork1.network, nsdShim.getNetwork(foundInfo))
|
assertEquals(testNetwork1.network, foundInfo.network)
|
||||||
|
|
||||||
// Discover service on testNetwork2.
|
// Discover service on testNetwork2.
|
||||||
nsdShim.discoverServices(nsdManager, serviceType, NsdManager.PROTOCOL_DNS_SD,
|
nsdManager.discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD,
|
||||||
testNetwork2.network, Executor { it.run() }, discoveryRecord2)
|
testNetwork2.network, Executor { it.run() }, discoveryRecord2)
|
||||||
// Expect that discovery is started then no other callbacks.
|
// Expect that discovery is started then no other callbacks.
|
||||||
discoveryRecord2.expectCallback<DiscoveryStarted>()
|
discoveryRecord2.expectCallback<DiscoveryStarted>()
|
||||||
discoveryRecord2.assertNoCallback()
|
discoveryRecord2.assertNoCallback()
|
||||||
|
|
||||||
// Discover service on all networks (not specify any network).
|
// Discover service on all networks (not specify any network).
|
||||||
nsdShim.discoverServices(nsdManager, serviceType, NsdManager.PROTOCOL_DNS_SD,
|
nsdManager.discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD,
|
||||||
null as Network? /* network */, Executor { it.run() }, discoveryRecord3)
|
null as Network? /* network */, Executor { it.run() }, discoveryRecord3)
|
||||||
// Expect that service is found on testNetwork1
|
// Expect that service is found on testNetwork1
|
||||||
val foundInfo3 = discoveryRecord3.waitForServiceDiscovered(
|
val foundInfo3 = discoveryRecord3.waitForServiceDiscovered(
|
||||||
serviceName, serviceType, testNetwork1.network)
|
serviceName, serviceType, testNetwork1.network)
|
||||||
assertEquals(testNetwork1.network, nsdShim.getNetwork(foundInfo3))
|
assertEquals(testNetwork1.network, foundInfo3.network)
|
||||||
} cleanupStep {
|
} cleanupStep {
|
||||||
nsdManager.stopServiceDiscovery(discoveryRecord2)
|
nsdManager.stopServiceDiscovery(discoveryRecord2)
|
||||||
discoveryRecord2.expectCallback<DiscoveryStopped>()
|
discoveryRecord2.expectCallback<DiscoveryStopped>()
|
||||||
@@ -970,9 +947,6 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testStopServiceResolution() {
|
fun testStopServiceResolution() {
|
||||||
// This test requires shims supporting U+ APIs (NsdManager.stopServiceResolution)
|
|
||||||
assumeTrue(TestUtils.shouldTestUApis())
|
|
||||||
|
|
||||||
val si = NsdServiceInfo()
|
val si = NsdServiceInfo()
|
||||||
si.serviceType = this@NsdManagerTest.serviceType
|
si.serviceType = this@NsdManagerTest.serviceType
|
||||||
si.serviceName = this@NsdManagerTest.serviceName
|
si.serviceName = this@NsdManagerTest.serviceName
|
||||||
@@ -981,8 +955,8 @@ class NsdManagerTest {
|
|||||||
val resolveRecord = NsdResolveRecord()
|
val resolveRecord = NsdResolveRecord()
|
||||||
// Try to resolve an unknown service then stop it immediately.
|
// Try to resolve an unknown service then stop it immediately.
|
||||||
// Expected ResolutionStopped callback.
|
// Expected ResolutionStopped callback.
|
||||||
nsdShim.resolveService(nsdManager, si, { it.run() }, resolveRecord)
|
nsdManager.resolveService(si, { it.run() }, resolveRecord)
|
||||||
nsdShim.stopServiceResolution(nsdManager, resolveRecord)
|
nsdManager.stopServiceResolution(resolveRecord)
|
||||||
val stoppedCb = resolveRecord.expectCallback<ResolutionStopped>()
|
val stoppedCb = resolveRecord.expectCallback<ResolutionStopped>()
|
||||||
assertEquals(si.serviceName, stoppedCb.serviceInfo.serviceName)
|
assertEquals(si.serviceName, stoppedCb.serviceInfo.serviceName)
|
||||||
assertEquals(si.serviceType, stoppedCb.serviceInfo.serviceType)
|
assertEquals(si.serviceType, stoppedCb.serviceInfo.serviceType)
|
||||||
@@ -990,9 +964,6 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testRegisterServiceInfoCallback() {
|
fun testRegisterServiceInfoCallback() {
|
||||||
// This test requires shims supporting U+ APIs (NsdManager.registerServiceInfoCallback)
|
|
||||||
assumeTrue(TestUtils.shouldTestUApis())
|
|
||||||
|
|
||||||
val lp = cm.getLinkProperties(testNetwork1.network)
|
val lp = cm.getLinkProperties(testNetwork1.network)
|
||||||
assertNotNull(lp)
|
assertNotNull(lp)
|
||||||
val addresses = lp.addresses
|
val addresses = lp.addresses
|
||||||
@@ -1013,13 +984,13 @@ class NsdManagerTest {
|
|||||||
val cbRecord = NsdServiceInfoCallbackRecord()
|
val cbRecord = NsdServiceInfoCallbackRecord()
|
||||||
tryTest {
|
tryTest {
|
||||||
// Discover service on the network.
|
// Discover service on the network.
|
||||||
nsdShim.discoverServices(nsdManager, serviceType, NsdManager.PROTOCOL_DNS_SD,
|
nsdManager.discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD,
|
||||||
testNetwork1.network, Executor { it.run() }, discoveryRecord)
|
testNetwork1.network, Executor { it.run() }, discoveryRecord)
|
||||||
val foundInfo = discoveryRecord.waitForServiceDiscovered(
|
val foundInfo = discoveryRecord.waitForServiceDiscovered(
|
||||||
serviceName, serviceType, testNetwork1.network)
|
serviceName, serviceType, testNetwork1.network)
|
||||||
|
|
||||||
// Register service callback and check the addresses are the same as network addresses
|
// Register service callback and check the addresses are the same as network addresses
|
||||||
nsdShim.registerServiceInfoCallback(nsdManager, foundInfo, { it.run() }, cbRecord)
|
nsdManager.registerServiceInfoCallback(foundInfo, { it.run() }, cbRecord)
|
||||||
val serviceInfoCb = cbRecord.expectCallback<ServiceUpdated>()
|
val serviceInfoCb = cbRecord.expectCallback<ServiceUpdated>()
|
||||||
assertEquals(foundInfo.serviceName, serviceInfoCb.serviceInfo.serviceName)
|
assertEquals(foundInfo.serviceName, serviceInfoCb.serviceInfo.serviceName)
|
||||||
val hostAddresses = serviceInfoCb.serviceInfo.hostAddresses
|
val hostAddresses = serviceInfoCb.serviceInfo.hostAddresses
|
||||||
@@ -1035,7 +1006,7 @@ class NsdManagerTest {
|
|||||||
cbRecord.expectCallback<ServiceUpdatedLost>()
|
cbRecord.expectCallback<ServiceUpdatedLost>()
|
||||||
} cleanupStep {
|
} cleanupStep {
|
||||||
// Cancel subscription and check stop callback received.
|
// Cancel subscription and check stop callback received.
|
||||||
nsdShim.unregisterServiceInfoCallback(nsdManager, cbRecord)
|
nsdManager.unregisterServiceInfoCallback(cbRecord)
|
||||||
cbRecord.expectCallback<UnregisterCallbackSucceeded>()
|
cbRecord.expectCallback<UnregisterCallbackSucceeded>()
|
||||||
} cleanup {
|
} cleanup {
|
||||||
nsdManager.stopServiceDiscovery(discoveryRecord)
|
nsdManager.stopServiceDiscovery(discoveryRecord)
|
||||||
@@ -1045,9 +1016,6 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testStopServiceResolutionFailedCallback() {
|
fun testStopServiceResolutionFailedCallback() {
|
||||||
// This test requires shims supporting U+ APIs (NsdManager.stopServiceResolution)
|
|
||||||
assumeTrue(TestUtils.shouldTestUApis())
|
|
||||||
|
|
||||||
// It's not possible to make ResolutionListener#onStopResolutionFailed callback sending
|
// It's not possible to make ResolutionListener#onStopResolutionFailed callback sending
|
||||||
// because it is only sent in very edge-case scenarios when the legacy implementation is
|
// because it is only sent in very edge-case scenarios when the legacy implementation is
|
||||||
// used, and the legacy implementation is never used in the current AOSP builds. Considering
|
// used, and the legacy implementation is never used in the current AOSP builds. Considering
|
||||||
@@ -1115,7 +1083,7 @@ class NsdManagerTest {
|
|||||||
si: NsdServiceInfo,
|
si: NsdServiceInfo,
|
||||||
executor: Executor = Executor { it.run() }
|
executor: Executor = Executor { it.run() }
|
||||||
): NsdServiceInfo {
|
): NsdServiceInfo {
|
||||||
nsdShim.registerService(nsdManager, si, NsdManager.PROTOCOL_DNS_SD, executor, record)
|
nsdManager.registerService(si, NsdManager.PROTOCOL_DNS_SD, executor, record)
|
||||||
// We may not always get the name that we tried to register;
|
// We may not always get the name that we tried to register;
|
||||||
// This events tells us the name that was registered.
|
// This events tells us the name that was registered.
|
||||||
val cb = record.expectCallback<ServiceRegistered>(REGISTRATION_TIMEOUT_MS)
|
val cb = record.expectCallback<ServiceRegistered>(REGISTRATION_TIMEOUT_MS)
|
||||||
@@ -1124,7 +1092,7 @@ class NsdManagerTest {
|
|||||||
|
|
||||||
private fun resolveService(discoveredInfo: NsdServiceInfo): NsdServiceInfo {
|
private fun resolveService(discoveredInfo: NsdServiceInfo): NsdServiceInfo {
|
||||||
val record = NsdResolveRecord()
|
val record = NsdResolveRecord()
|
||||||
nsdShim.resolveService(nsdManager, discoveredInfo, Executor { it.run() }, record)
|
nsdManager.resolveService(discoveredInfo, Executor { it.run() }, record)
|
||||||
val resolvedCb = record.expectCallback<ServiceResolved>()
|
val resolvedCb = record.expectCallback<ServiceResolved>()
|
||||||
assertEquals(discoveredInfo.serviceName, resolvedCb.serviceInfo.serviceName)
|
assertEquals(discoveredInfo.serviceName, resolvedCb.serviceInfo.serviceName)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user