From 01cb32c3321112472f545a1cffccd3c277f70fbb Mon Sep 17 00:00:00 2001 From: Nate Jiang Date: Mon, 23 Mar 2020 11:47:04 -0700 Subject: [PATCH 1/2] Add test for aware rtt Bug: 150977837 Test: atest WifiRttTest Change-Id: If19b8708fd76df7f0be3fb5b338b4c58d7279402 --- .../android/net/wifi/rtt/cts/WifiRttTest.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tests/cts/net/src/android/net/wifi/rtt/cts/WifiRttTest.java b/tests/cts/net/src/android/net/wifi/rtt/cts/WifiRttTest.java index 25a90b55a1..49aa47ec38 100644 --- a/tests/cts/net/src/android/net/wifi/rtt/cts/WifiRttTest.java +++ b/tests/cts/net/src/android/net/wifi/rtt/cts/WifiRttTest.java @@ -18,7 +18,9 @@ package android.net.wifi.rtt.cts; import static org.mockito.Mockito.mock; +import android.net.MacAddress; import android.net.wifi.ScanResult; +import android.net.wifi.aware.PeerHandle; import android.net.wifi.rtt.RangingRequest; import android.net.wifi.rtt.RangingResult; import android.net.wifi.rtt.ResponderLocation; @@ -52,6 +54,9 @@ public class WifiRttTest extends TestBase { // Minimum valid RSSI value private static final int MIN_VALID_RSSI = -100; + // Valid Mac Address + private static final MacAddress MAC = MacAddress.fromString("00:01:02:03:04:05"); + /** * Test Wi-Fi RTT ranging operation: * - Scan for visible APs for the test AP (which is validated to support IEEE 802.11mc) @@ -368,4 +373,36 @@ public class WifiRttTest extends TestBase { assertNotNull("ColocatedBSSID list should be nonNull", responderLocation.getColocatedBssids()); } + + /** + * Verify ranging request with aware peer Mac address and peer handle. + */ + public void testAwareRttWithMacAddress() throws InterruptedException { + RangingRequest request = new RangingRequest.Builder() + .addWifiAwarePeer(MAC).build(); + ResultCallback callback = new ResultCallback(); + mWifiRttManager.startRanging(request, mExecutor, callback); + assertTrue("Wi-Fi RTT results: no callback", + callback.waitForCallback()); + List rangingResults = callback.getResults(); + assertNotNull("Wi-Fi RTT results: null results", rangingResults); + assertEquals(1, rangingResults.size()); + assertEquals(RangingResult.STATUS_FAIL, rangingResults.get(0).getStatus()); + } + + /** + * Verify ranging request with aware peer handle. + */ + public void testAwareRttWithPeerHandle() throws InterruptedException { + PeerHandle peerHandle = mock(PeerHandle.class); + RangingRequest request = new RangingRequest.Builder() + .addWifiAwarePeer(peerHandle).build(); + ResultCallback callback = new ResultCallback(); + mWifiRttManager.startRanging(request, mExecutor, callback); + assertTrue("Wi-Fi RTT results: no callback", + callback.waitForCallback()); + List rangingResults = callback.getResults(); + assertNotNull("Wi-Fi RTT results: null results", rangingResults); + assertEquals("Invalid peerHandle should return 0 result", 0, rangingResults.size()); + } } From 06aec03aba4f3e408f241243db5c6fe6d6e6ad03 Mon Sep 17 00:00:00 2001 From: Nate Jiang Date: Mon, 23 Mar 2020 14:57:59 -0700 Subject: [PATCH 2/2] Add test for WifiAwareNetworkSpecifier and ParcelablePeerHandle Test WifiAwareNetworkSpecifier satisfiedBy API Test ParcelablePeerHandle parcel Bug: 150975738 Bug: 150976784 Test: atest SingleDeviceTest Change-Id: I56f775774557b34935b7781f57c0b6f7b7e4e9b4 --- .../net/wifi/aware/cts/SingleDeviceTest.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) 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 29f091b8b4..8f233244e8 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 @@ -16,7 +16,9 @@ package android.net.wifi.aware.cts; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; +import static org.mockito.Mockito.mock; import android.content.BroadcastReceiver; import android.content.Context; @@ -30,17 +32,21 @@ import android.net.NetworkRequest; import android.net.wifi.WifiManager; import android.net.wifi.aware.AttachCallback; import android.net.wifi.aware.Characteristics; +import android.net.wifi.aware.DiscoverySession; import android.net.wifi.aware.DiscoverySessionCallback; import android.net.wifi.aware.IdentityChangedListener; +import android.net.wifi.aware.ParcelablePeerHandle; import android.net.wifi.aware.PeerHandle; import android.net.wifi.aware.PublishConfig; import android.net.wifi.aware.PublishDiscoverySession; import android.net.wifi.aware.SubscribeConfig; import android.net.wifi.aware.SubscribeDiscoverySession; import android.net.wifi.aware.WifiAwareManager; +import android.net.wifi.aware.WifiAwareNetworkSpecifier; import android.net.wifi.aware.WifiAwareSession; import android.os.Handler; import android.os.HandlerThread; +import android.os.Parcel; import android.platform.test.annotations.AppModeFull; import android.test.AndroidTestCase; @@ -812,6 +818,43 @@ public class SingleDeviceTest extends AndroidTestCase { session.close(); } + /** + * Test WifiAwareNetworkSpecifier. + */ + public void testWifiAwareNetworkSpecifier() { + DiscoverySession session = mock(DiscoverySession.class); + PeerHandle handle = mock(PeerHandle.class); + WifiAwareNetworkSpecifier networkSpecifier = + new WifiAwareNetworkSpecifier.Builder(session, handle).build(); + assertFalse(networkSpecifier.satisfiedBy(null)); + assertTrue(networkSpecifier.satisfiedBy(networkSpecifier)); + + WifiAwareNetworkSpecifier anotherNetworkSpecifier = + new WifiAwareNetworkSpecifier.Builder(session, handle).setPmk(PMK_VALID).build(); + assertFalse(networkSpecifier.satisfiedBy(anotherNetworkSpecifier)); + } + + /** + * Test ParcelablePeerHandle parcel. + */ + public void testParcelablePeerHandle() { + PeerHandle peerHandle = mock(PeerHandle.class); + ParcelablePeerHandle parcelablePeerHandle = new ParcelablePeerHandle(peerHandle); + Parcel parcelW = Parcel.obtain(); + parcelablePeerHandle.writeToParcel(parcelW, 0); + byte[] bytes = parcelW.marshall(); + parcelW.recycle(); + + Parcel parcelR = Parcel.obtain(); + parcelR.unmarshall(bytes, 0, bytes.length); + parcelR.setDataPosition(0); + ParcelablePeerHandle rereadParcelablePeerHandle = + ParcelablePeerHandle.CREATOR.createFromParcel(parcelR); + + assertEquals(parcelablePeerHandle, rereadParcelablePeerHandle); + assertEquals(parcelablePeerHandle.hashCode(), rereadParcelablePeerHandle.hashCode()); + } + // local utilities private WifiAwareSession attachAndGetSession() {