From 7530899eb8f364b48d7bc1afdc4ac1a553791f70 Mon Sep 17 00:00:00 2001 From: Etan Cohen Date: Thu, 12 Apr 2018 16:13:29 -0700 Subject: [PATCH] [RTT] Increase CTS coverage Increase CTS coverage by utilizing additional methods. Bug: 77915947 Test: atest WifiRttTest Change-Id: Ibc560aafb317fb27fd969b8899cc49c5cd7a979f --- .../android/net/wifi/rtt/cts/WifiRttTest.java | 42 +++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) 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 5e8ae1602d..8c59a57b54 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 @@ -84,6 +84,11 @@ public class WifiRttTest extends TestBase { int[] distanceMms = new int[NUM_OF_RTT_ITERATIONS]; int[] distanceStdDevMms = new int[NUM_OF_RTT_ITERATIONS]; int[] rssis = new int[NUM_OF_RTT_ITERATIONS]; + int[] numAttempted = new int[NUM_OF_RTT_ITERATIONS]; + int[] numSuccessful = new int[NUM_OF_RTT_ITERATIONS]; + long[] timestampsMs = new long[NUM_OF_RTT_ITERATIONS]; + byte[] lastLci = null; + byte[] lastLcr = null; for (int i = 0; i < NUM_OF_RTT_ITERATIONS; ++i) { ResultCallback callback = new ResultCallback(); mWifiRttManager.startRanging(request, mExecutor, callback); @@ -98,6 +103,9 @@ public class WifiRttTest extends TestBase { RangingResult result = currentResults.get(0); assertTrue("Wi-Fi RTT results: invalid result (wrong BSSID) entry on iteration " + i, result.getMacAddress().toString().equals(testAp.BSSID)); + assertEquals( + "Wi-Fi RTT results: invalid result (non-null PeerHandle) entry on iteration " + + i, null, result.getPeerHandle()); allResults.add(result); int status = result.getStatus(); @@ -118,6 +126,20 @@ public class WifiRttTest extends TestBase { distanceMms[i - numFailures] = result.getDistanceMm(); distanceStdDevMms[i - numFailures] = result.getDistanceStdDevMm(); rssis[i - numFailures] = result.getRssi(); + numAttempted[i - numFailures] = result.getNumAttemptedMeasurements(); + numSuccessful[i - numFailures] = result.getNumSuccessfulMeasurements(); + timestampsMs[i - numFailures] = result.getRangingTimestampMillis(); + + byte[] currentLci = result.getLci(); + byte[] currentLcr = result.getLcr(); + if (i - numFailures > 0) { + assertTrue("Wi-Fi RTT results: invalid result (LCI mismatch) on iteration " + i, + Arrays.equals(currentLci, lastLci)); + assertTrue("Wi-Fi RTT results: invalid result (LCR mismatch) on iteration " + i, + Arrays.equals(currentLcr, lastLcr)); + } + lastLci = currentLci; + lastLcr = currentLcr; } else { numFailures++; } @@ -133,6 +155,12 @@ public class WifiRttTest extends TestBase { ResultType.NEUTRAL, ResultUnit.NONE); reportLog.addValues("rssi_dbm", Arrays.copyOf(rssis, numGoodResults), ResultType.NEUTRAL, ResultUnit.NONE); + reportLog.addValues("num_attempted", Arrays.copyOf(numAttempted, numGoodResults), + ResultType.NEUTRAL, ResultUnit.NONE); + reportLog.addValues("num_successful", Arrays.copyOf(numSuccessful, numGoodResults), + ResultType.NEUTRAL, ResultUnit.NONE); + reportLog.addValues("timestamps", Arrays.copyOf(timestampsMs, numGoodResults), + ResultType.NEUTRAL, ResultUnit.NONE); reportLog.submit(); // Analyze results @@ -156,13 +184,21 @@ public class WifiRttTest extends TestBase { return; } + ScanResult dummy = new ScanResult(); + dummy.BSSID = "00:01:02:03:04:05"; + RangingRequest.Builder builder = new RangingRequest.Builder(); - for (int i = 0; i < RangingRequest.getMaxPeers() + 1; ++i) { - ScanResult dummy = new ScanResult(); - dummy.BSSID = "00:01:02:03:04:05"; + for (int i = 0; i < RangingRequest.getMaxPeers() - 2; ++i) { builder.addAccessPoint(dummy); } + List scanResults = new ArrayList<>(); + scanResults.add(dummy); + scanResults.add(dummy); + scanResults.add(dummy); + + builder.addAccessPoints(scanResults); + try { mWifiRttManager.startRanging(builder.build(), mExecutor, new ResultCallback()); } catch (IllegalArgumentException e) {