From bdb1e75ef795edc27e96831490e077c7bab15a0d Mon Sep 17 00:00:00 2001 From: Etan Cohen Date: Wed, 2 Jan 2019 11:27:07 -0800 Subject: [PATCH] [AWARE] Test "instant failure" on Aware data-path requests Remove ConnectivityRequest timeout and let the framework trigger the onUnavailable callback (which it should since the specified peer does not exist and so no response would be received to the protocol request). Bug: 31382922 Test: atest SingleDeviceTest Change-Id: I73408fa45d9931fdb5d34f26cf1514050f85db6d --- .../net/wifi/aware/cts/SingleDeviceTest.java | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java b/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java index 61b4f91544..389621e867 100644 --- a/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java +++ b/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java @@ -39,6 +39,7 @@ import android.net.wifi.aware.WifiAwareManager; import android.net.wifi.aware.WifiAwareSession; import android.os.Handler; import android.os.HandlerThread; +import android.os.SystemClock; import android.test.AndroidTestCase; import com.android.compatibility.common.util.SystemUtil; @@ -58,8 +59,8 @@ import java.util.concurrent.TimeUnit; public class SingleDeviceTest extends AndroidTestCase { private static final String TAG = "WifiAwareCtsTests"; - // wait for Wi-Fi Aware to become available - static private final int WAIT_FOR_AWARE_CHANGE_SECS = 10; + // wait for Wi-Fi Aware state changes & network requests callbacks + static private final int WAIT_FOR_AWARE_CHANGE_SECS = 10; // 10 seconds private final Object mLock = new Object(); private final HandlerThread mHandlerThread = new HandlerThread("SingleDeviceTest"); @@ -704,7 +705,7 @@ public class SingleDeviceTest extends AndroidTestCase { /** * Request an Aware data-path (open) as a Responder with an arbitrary peer MAC address. Validate - * that times-out. + * that receive an onUnavailable() callback. */ public void testDataPathOpenOutOfBandFail() { if (!TestUtils.shouldTestWifiAware(getContext())) { @@ -712,28 +713,32 @@ public class SingleDeviceTest extends AndroidTestCase { } MacAddress mac = MacAddress.fromString("00:01:02:03:04:05"); + // 1. initialize Aware: only purpose is to make sure it is available for OOB data-path WifiAwareSession session = attachAndGetSession(); PublishConfig publishConfig = new PublishConfig.Builder().setServiceName( "ValidName").build(); DiscoverySessionCallbackTest discoveryCb = new DiscoverySessionCallbackTest(); - NetworkCallbackTest networkCb = new NetworkCallbackTest(); + session.publish(publishConfig, discoveryCb, mHandler); + assertTrue("Publish started", + discoveryCb.waitForCallback(DiscoverySessionCallbackTest.ON_PUBLISH_STARTED)); - // 1. request an AWARE network + // 2. request an AWARE network + NetworkCallbackTest networkCb = new NetworkCallbackTest(); NetworkRequest nr = new NetworkRequest.Builder().addTransportType( NetworkCapabilities.TRANSPORT_WIFI_AWARE).setNetworkSpecifier( session.createNetworkSpecifierOpen( - WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_RESPONDER, + WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_INITIATOR, mac.toByteArray())).build(); - mConnectivityManager.requestNetwork(nr, networkCb, 2000); - assertTrue("OnUnavailable received", networkCb.waitForOnUnavailable()); + mConnectivityManager.requestNetwork(nr, networkCb); + assertTrue("OnUnavailable not received", networkCb.waitForOnUnavailable()); session.close(); } /** * Request an Aware data-path (encrypted) as a Responder with an arbitrary peer MAC address. - * Validate that times-out. + * Validate that receive an onUnavailable() callback. */ public void testDataPathPassphraseOutOfBandFail() { if (!TestUtils.shouldTestWifiAware(getContext())) { @@ -741,21 +746,25 @@ public class SingleDeviceTest extends AndroidTestCase { } MacAddress mac = MacAddress.fromString("00:01:02:03:04:05"); + // 1. initialize Aware: only purpose is to make sure it is available for OOB data-path WifiAwareSession session = attachAndGetSession(); PublishConfig publishConfig = new PublishConfig.Builder().setServiceName( "ValidName").build(); DiscoverySessionCallbackTest discoveryCb = new DiscoverySessionCallbackTest(); - NetworkCallbackTest networkCb = new NetworkCallbackTest(); + session.publish(publishConfig, discoveryCb, mHandler); + assertTrue("Publish started", + discoveryCb.waitForCallback(DiscoverySessionCallbackTest.ON_PUBLISH_STARTED)); - // 1. request an AWARE network + // 2. request an AWARE network + NetworkCallbackTest networkCb = new NetworkCallbackTest(); NetworkRequest nr = new NetworkRequest.Builder().addTransportType( NetworkCapabilities.TRANSPORT_WIFI_AWARE).setNetworkSpecifier( session.createNetworkSpecifierPassphrase( - WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_RESPONDER, mac.toByteArray(), + WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_INITIATOR, mac.toByteArray(), "abcdefghihk")).build(); - mConnectivityManager.requestNetwork(nr, networkCb, 2000); - assertTrue("OnUnavailable received", networkCb.waitForOnUnavailable()); + mConnectivityManager.requestNetwork(nr, networkCb); + assertTrue("OnUnavailable not received", networkCb.waitForOnUnavailable()); session.close(); }