diff options
author | Roshan Pius <rpius@google.com> | 2016-08-19 20:44:53 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-08-19 20:44:53 +0000 |
commit | e78bb65416985cecbcba31b31a5565b54ed0a5c7 (patch) | |
tree | 1d530cb2925f4e1708ca21de9454efd7f1630e06 /tests | |
parent | bd875da7c7d7569e183e78dd081e56be6bbefad6 (diff) | |
parent | b14b43c87ce64dab8860df230d20bf4fcde38ce5 (diff) |
SupplicantWifiScannerImpl: Ignore PNO stop failure am: e483fd4a31
am: b14b43c87c
Change-Id: Ic5f298beb849e6ededbdd73d4c81602853935317
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/scanner/SupplicantPnoScannerTest.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/scanner/SupplicantPnoScannerTest.java b/tests/wifitests/src/com/android/server/wifi/scanner/SupplicantPnoScannerTest.java index 39709f84d..ada882d7f 100644 --- a/tests/wifitests/src/com/android/server/wifi/scanner/SupplicantPnoScannerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/scanner/SupplicantPnoScannerTest.java @@ -214,6 +214,43 @@ public class SupplicantPnoScannerTest { verifyNoMoreInteractions(pnoEventHandler); } + /** + * Verify that the HW PNO scan stop failure still resets the PNO scan state. + * 1. Start Hw PNO. + * 2. Stop Hw PNO scan which raises a stop command to WifiNative which is failed. + * 3. Now restart a new PNO scan to ensure that the failure was cleanly handled. + */ + @Test + public void ignoreHwDisconnectedPnoScanStopFailure() { + createScannerWithHwPnoScanSupport(); + + WifiNative.PnoEventHandler pnoEventHandler = mock(WifiNative.PnoEventHandler.class); + WifiNative.PnoSettings pnoSettings = createDummyPnoSettings(false); + + // Start PNO scan + startSuccessfulPnoScan(null, pnoSettings, null, pnoEventHandler); + + // Fail the PNO stop. + when(mWifiNative.setPnoScan(false)).thenReturn(false); + assertTrue(mScanner.resetHwPnoList()); + assertTrue("dispatch pno monitor alarm", + mAlarmManager.dispatch( + SupplicantWifiScannerImpl.HwPnoDebouncer.PNO_DEBOUNCER_ALARM_TAG)); + mLooper.dispatchAll(); + verify(mWifiNative).setPnoScan(false); + + // Add a new PNO scan request and ensure it runs successfully. + startSuccessfulPnoScan(null, pnoSettings, null, pnoEventHandler); + assertTrue("dispatch pno monitor alarm", + mAlarmManager.dispatch( + SupplicantWifiScannerImpl.HwPnoDebouncer.PNO_DEBOUNCER_ALARM_TAG)); + mLooper.dispatchAll(); + InOrder order = inOrder(pnoEventHandler, mWifiNative); + ScanResults scanResults = createDummyScanResults(); + expectSuccessfulHwDisconnectedPnoScan(order, pnoSettings, pnoEventHandler, scanResults); + verifyNoMoreInteractions(pnoEventHandler); + } + private void doSuccessfulSwPnoScanTest(boolean isConnectedPno) { WifiNative.PnoEventHandler pnoEventHandler = mock(WifiNative.PnoEventHandler.class); WifiNative.PnoSettings pnoSettings = createDummyPnoSettings(isConnectedPno); @@ -275,6 +312,7 @@ public class SupplicantPnoScannerTest { private void startSuccessfulPnoScan(WifiNative.ScanSettings scanSettings, WifiNative.PnoSettings pnoSettings, WifiNative.ScanEventHandler scanEventHandler, WifiNative.PnoEventHandler pnoEventHandler) { + reset(mWifiNative); when(mWifiNative.setNetworkVariable(anyInt(), anyString(), anyString())).thenReturn(true); when(mWifiNative.enableNetworkWithoutConnect(anyInt())).thenReturn(true); // Scans succeed |