From d36b93b07ee7a3f6116cc7ae7a1a1e6b687a9d3c Mon Sep 17 00:00:00 2001 From: Mitchell Wills Date: Mon, 25 Apr 2016 11:17:05 -0700 Subject: Fix another potential crash when dumping WifiScanningService Also make logging in WifiScanningService not static and add some tests to verify some logging behavior. Fixes: 28274869 Change-Id: I879200778dcadb4e67d5a85d42442baf3ceef6c9 --- .../wifi/scanner/WifiScanningServiceTest.java | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'tests') diff --git a/tests/wifitests/src/com/android/server/wifi/scanner/WifiScanningServiceTest.java b/tests/wifitests/src/com/android/server/wifi/scanner/WifiScanningServiceTest.java index 4fe7d53da..30580ab7e 100644 --- a/tests/wifitests/src/com/android/server/wifi/scanner/WifiScanningServiceTest.java +++ b/tests/wifitests/src/com/android/server/wifi/scanner/WifiScanningServiceTest.java @@ -57,9 +57,13 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.internal.matchers.CapturingMatcher; +import java.io.FileDescriptor; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.regex.Pattern; /** * Unit tests for {@link com.android.server.wifi.scanner.WifiScanningServiceImpl}. @@ -276,10 +280,27 @@ public class WifiScanningServiceTest { mLooper.dispatchAll(); } + private String dumpService() { + StringWriter stringWriter = new StringWriter(); + mWifiScanningServiceImpl.dump(new FileDescriptor(), new PrintWriter(stringWriter), + new String[0]); + return stringWriter.toString(); + } + + private void assertDumpContainsRequestLog(String type, int id) { + String serviceDump = dumpService(); + Pattern logLineRegex = Pattern.compile("^.+" + type + ": ClientInfo\\[uid=\\d+\\],Id=" + + id + ".*$", Pattern.MULTILINE); + assertTrue("dump did not contain log with type=" + type + ", id=" + id + + " for scan request: " + serviceDump + "\n", + logLineRegex.matcher(serviceDump).find()); + } + @Test public void construct() throws Exception { verifyNoMoreInteractions(mWifiScannerImpl, mWifiScannerImpl, mWifiScannerImplFactory, mBatteryStats); + dumpService(); // make sure this succeeds } @Test @@ -308,6 +329,7 @@ public class WifiScanningServiceTest { sendBackgroundScanRequest(controlChannel, 192, generateValidScanSettings(), null); mLooper.dispatchAll(); verifySuccessfulResponse(order, handler, 192); + assertDumpContainsRequestLog("addBackgroundScanRequest", 192); } @Test @@ -349,6 +371,8 @@ public class WifiScanningServiceTest { verifyScanResultsRecieved(order, handler, requestId, results.getScanData()); verifySingleScanCompletedRecieved(order, handler, requestId); verifyNoMoreInteractions(handler); + assertDumpContainsRequestLog("addSingleScanRequest", requestId); + assertDumpContainsRequestLog("singleScanResults", requestId); } /** @@ -405,6 +429,7 @@ public class WifiScanningServiceTest { assertEquals(mWifiMetrics.getOneshotScanCount(), 1); assertEquals(mWifiMetrics.getScanReturnEntry(WifiMetricsProto.WifiLog.SCAN_UNKNOWN), 1); + assertDumpContainsRequestLog("addSingleScanRequest", requestId); } /** -- cgit v1.2.3