diff --git a/thread/tests/cts/src/android/net/thread/cts/ThreadNetworkControllerTest.java b/thread/tests/cts/src/android/net/thread/cts/ThreadNetworkControllerTest.java index 0591c8709e..9a81388c7f 100644 --- a/thread/tests/cts/src/android/net/thread/cts/ThreadNetworkControllerTest.java +++ b/thread/tests/cts/src/android/net/thread/cts/ThreadNetworkControllerTest.java @@ -864,11 +864,12 @@ public class ThreadNetworkControllerTest { @Test public void meshcopService_threadDisabled_notDiscovered() throws Exception { setUpTestNetwork(); - CompletableFuture serviceLostFuture = new CompletableFuture<>(); NsdManager.DiscoveryListener listener = discoverForServiceLost(MESHCOP_SERVICE_TYPE, serviceLostFuture); + setEnabledAndWait(mController, false); + try { serviceLostFuture.get(SERVICE_LOST_TIMEOUT_MILLIS, MILLISECONDS); } catch (InterruptedException | ExecutionException | TimeoutException ignored) { @@ -877,7 +878,6 @@ public class ThreadNetworkControllerTest { } finally { mNsdManager.stopServiceDiscovery(listener); } - assertThrows( TimeoutException.class, () -> discoverService(MESHCOP_SERVICE_TYPE, SERVICE_LOST_TIMEOUT_MILLIS)); @@ -1112,7 +1112,12 @@ public class ThreadNetworkControllerTest { serviceInfoFuture.complete(serviceInfo); } }; - mNsdManager.discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD, listener); + mNsdManager.discoverServices( + serviceType, + NsdManager.PROTOCOL_DNS_SD, + mTestNetworkTracker.getNetwork(), + mExecutor, + listener); try { serviceInfoFuture.get(timeoutMilliseconds, MILLISECONDS); } finally { @@ -1131,7 +1136,12 @@ public class ThreadNetworkControllerTest { serviceInfoFuture.complete(serviceInfo); } }; - mNsdManager.discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD, listener); + mNsdManager.discoverServices( + serviceType, + NsdManager.PROTOCOL_DNS_SD, + mTestNetworkTracker.getNetwork(), + mExecutor, + listener); return listener; } diff --git a/thread/tests/utils/src/android/net/thread/utils/TapTestNetworkTracker.java b/thread/tests/utils/src/android/net/thread/utils/TapTestNetworkTracker.java index 43f177df06..b586a19ab7 100644 --- a/thread/tests/utils/src/android/net/thread/utils/TapTestNetworkTracker.java +++ b/thread/tests/utils/src/android/net/thread/utils/TapTestNetworkTracker.java @@ -62,6 +62,7 @@ public final class TapTestNetworkTracker { private final Looper mLooper; private TestNetworkInterface mInterface; private TestableNetworkAgent mAgent; + private Network mNetwork; private final TestableNetworkCallback mNetworkCallback; private final ConnectivityManager mConnectivityManager; @@ -91,6 +92,11 @@ public final class TapTestNetworkTracker { return mInterface.getInterfaceName(); } + /** Returns the {@link android.net.Network} of the test network. */ + public Network getNetwork() { + return mNetwork; + } + private void setUpTestNetwork() throws Exception { mInterface = mContext.getSystemService(TestNetworkManager.class).createTapInterface(); @@ -105,13 +111,13 @@ public final class TapTestNetworkTracker { newNetworkCapabilities(), lp, new NetworkAgentConfig.Builder().build()); - final Network network = mAgent.register(); + mNetwork = mAgent.register(); mAgent.markConnected(); PollingCheck.check( "No usable address on interface", TIMEOUT.toMillis(), - () -> hasUsableAddress(network, getInterfaceName())); + () -> hasUsableAddress(mNetwork, getInterfaceName())); lp.setLinkAddresses(makeLinkAddresses()); mAgent.sendLinkProperties(lp);