diff options
author | Ecco Park <eccopark@google.com> | 2018-12-21 09:45:39 -0800 |
---|---|---|
committer | Ecco Park <eccopark@google.com> | 2018-12-28 13:31:52 -0800 |
commit | 6181e232de24b8661ecf2ad6124dc993d0e57a58 (patch) | |
tree | b54c39e912881bdb65675fe708a580088bcf0ac6 /tests/wifitests/src/com/android/server/wifi/hotspot2 | |
parent | b581188a9a076d852ebaf19f1d10736f31ba6c97 (diff) | |
download | android_frameworks_opt_net_wifi-6181e232de24b8661ecf2ad6124dc993d0e57a58.tar.gz android_frameworks_opt_net_wifi-6181e232de24b8661ecf2ad6124dc993d0e57a58.tar.bz2 android_frameworks_opt_net_wifi-6181e232de24b8661ecf2ad6124dc993d0e57a58.zip |
passpoint: Fix continuous crash of Passpoint network score calculation
The Wi-Fi Access Point Aruba620 causes trailing continuous NullPointerException.
--------- beginning of crash
*** FATAL EXCEPTION IN SYSTEM PROCESS: WifiStateMachine
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
com.android.server.wifi.hotspot2.PasspointNetworkScore.calculateScore(PasspointNetworkScore.java:159)
com.android.server.wifi.hotspot2.PasspointNetworkEvaluator.findBestNetwork(PasspointNetworkEvaluator.java:183)
com.android.server.wifi.hotspot2.PasspointNetworkEvaluator.evaluateNetworks(PasspointNetworkEvaluator.java:112)
com.android.server.wifi.WifiNetworkSelector.selectNetwork(WifiNetworkSelector.java:526)
at com.android.server.wifi.WifiConnectivityManager.handleScanResults(WifiConnectivityManager.java:263)
This is because the AP sends invalid Access network type in Interwoking Element.
To fix the issue, we need to define score for reserved bits and add null
check condition.
Bug: 110476382
Test: /frameworks/opt/net/wifi/tests/wifitests/runtests.sh
Change-Id: I973ea316290b023f3b7e816a9f6eba9da22cbc72
Signed-off-by: Ecco Park <eccopark@google.com>
Diffstat (limited to 'tests/wifitests/src/com/android/server/wifi/hotspot2')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkScoreTest.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkScoreTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkScoreTest.java index 14815beb3..1bea1a279 100644 --- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkScoreTest.java +++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkScoreTest.java @@ -346,4 +346,24 @@ public class PasspointNetworkScoreTest { } } + /** + * It should not throw {@link NullPointerException} when unsupported network type is provided. + * + * @throws Exception + */ + @Test + public void calculatorScoreWithUnSupportedNetworkType() throws Exception { + TestData data = new TestData(false /* isHomeProvider */, false /* isActiveNetwork */, + -60 /* rssiLevel */, true /* internetAccess */, + NetworkDetail.Ant.Resvd6 /* reserved */, null /* anqpElements */, + /* expectedScore */ + PasspointNetworkScore.INTERNET_ACCESS_AWARD + + PasspointNetworkScore.RSSI_SCORE.lookupScore(-60, false)); + + ScanDetail scanDetail = generateScanDetail(data.rssiLevel, data.internetAccess, + data.networkType); + + assertEquals(data.expectedScore, PasspointNetworkScore.calculateScore( + data.isHomeProvider, scanDetail, data.anqpElements, data.isActiveNetwork)); + } } |