diff --git a/wifi/Android.bp b/wifi/Android.bp index 8b89959a4f051..e3aafd69b97be 100644 --- a/wifi/Android.bp +++ b/wifi/Android.bp @@ -31,9 +31,6 @@ filegroup { "java/**/*.java", "java/**/*.aidl", ], - exclude_srcs: [ - ":framework-wifi-non-updatable-sources" - ], path: "java", visibility: ["//visibility:private"], } @@ -46,20 +43,6 @@ filegroup { ], } -filegroup { - name: "framework-wifi-non-updatable-sources", - srcs: [ - // TODO(b/146011398) package android.net.wifi is now split amongst 2 jars: framework.jar and - // framework-wifi.jar. This is not a good idea, should move WifiNetworkScoreCache - // to a separate package. - "java/android/net/wifi/SoftApConfToXmlMigrationUtil.java", - "java/android/net/wifi/WifiNetworkScoreCache.java", - "java/android/net/wifi/WifiMigration.java", - "java/android/net/wifi/nl80211/*.java", - ":libwificond_ipc_aidl", - ], -} - filegroup { name: "framework-wifi-annotations", srcs: ["java/android/net/wifi/WifiAnnotations.java"], @@ -68,6 +51,7 @@ filegroup { // list of tests that are allowed to access @hide APIs from framework-wifi test_access_hidden_api_whitelist = [ "//frameworks/base/wifi/tests", + "//frameworks/base/wifi/non-updatable/tests", "//frameworks/opt/net/wifi/tests/wifitests:__subpackages__", "//external/robolectric-shadows:__subpackages__", diff --git a/wifi/non-updatable/java/Android.bp b/wifi/non-updatable/java/Android.bp new file mode 100644 index 0000000000000..b35b4be55818e --- /dev/null +++ b/wifi/non-updatable/java/Android.bp @@ -0,0 +1,35 @@ +// Copyright (C) 2020 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This directory contains framework Wifi APIs that are not part of the Wifi module (i.e. not +// updatable), and are generally only called by the Wifi module. + +// necessary since we only want the `path` property to only refer to these files +filegroup { + name: "framework-wifi-non-updatable-sources-internal", + srcs: ["src/**/*.java"], + path: "src", + visibility: ["//visibility:private"], +} + +filegroup { + name: "framework-wifi-non-updatable-sources", + srcs: [ + // TODO(b/146011398) package android.net.wifi is now split amongst 2 jars: framework.jar and + // framework-wifi.jar. This is not a good idea, should move WifiNetworkScoreCache + // to a separate package. + ":framework-wifi-non-updatable-sources-internal", + ":libwificond_ipc_aidl", + ], +} diff --git a/wifi/java/android/net/wifi/SoftApConfToXmlMigrationUtil.java b/wifi/non-updatable/java/src/android/net/wifi/SoftApConfToXmlMigrationUtil.java similarity index 100% rename from wifi/java/android/net/wifi/SoftApConfToXmlMigrationUtil.java rename to wifi/non-updatable/java/src/android/net/wifi/SoftApConfToXmlMigrationUtil.java diff --git a/wifi/java/android/net/wifi/WifiMigration.java b/wifi/non-updatable/java/src/android/net/wifi/WifiMigration.java similarity index 100% rename from wifi/java/android/net/wifi/WifiMigration.java rename to wifi/non-updatable/java/src/android/net/wifi/WifiMigration.java diff --git a/wifi/java/android/net/wifi/WifiNetworkScoreCache.java b/wifi/non-updatable/java/src/android/net/wifi/WifiNetworkScoreCache.java similarity index 99% rename from wifi/java/android/net/wifi/WifiNetworkScoreCache.java rename to wifi/non-updatable/java/src/android/net/wifi/WifiNetworkScoreCache.java index 378549d62edff..39036580e2efa 100755 --- a/wifi/java/android/net/wifi/WifiNetworkScoreCache.java +++ b/wifi/non-updatable/java/src/android/net/wifi/WifiNetworkScoreCache.java @@ -89,7 +89,7 @@ public class WifiNetworkScoreCache extends INetworkScoreCache.Stub { @Override public final void updateScores(List networks) { if (networks == null || networks.isEmpty()) { - return; + return; } if (DBG) { Log.d(TAG, "updateScores list size=" + networks.size()); @@ -97,7 +97,7 @@ public class WifiNetworkScoreCache extends INetworkScoreCache.Stub { boolean changed = false; - synchronized(mLock) { + synchronized (mLock) { for (ScoredNetwork network : networks) { String networkKey = buildNetworkKey(network); if (networkKey == null) { @@ -189,7 +189,7 @@ public class WifiNetworkScoreCache extends INetworkScoreCache.Stub { String key = buildNetworkKey(result); if (key == null) return null; - synchronized(mLock) { + synchronized (mLock) { ScoredNetwork network = mCache.get(key); return network; } diff --git a/wifi/java/android/net/wifi/nl80211/ChannelSettings.java b/wifi/non-updatable/java/src/android/net/wifi/nl80211/ChannelSettings.java similarity index 100% rename from wifi/java/android/net/wifi/nl80211/ChannelSettings.java rename to wifi/non-updatable/java/src/android/net/wifi/nl80211/ChannelSettings.java diff --git a/wifi/java/android/net/wifi/nl80211/DeviceWiphyCapabilities.java b/wifi/non-updatable/java/src/android/net/wifi/nl80211/DeviceWiphyCapabilities.java similarity index 100% rename from wifi/java/android/net/wifi/nl80211/DeviceWiphyCapabilities.java rename to wifi/non-updatable/java/src/android/net/wifi/nl80211/DeviceWiphyCapabilities.java diff --git a/wifi/java/android/net/wifi/nl80211/HiddenNetwork.java b/wifi/non-updatable/java/src/android/net/wifi/nl80211/HiddenNetwork.java similarity index 100% rename from wifi/java/android/net/wifi/nl80211/HiddenNetwork.java rename to wifi/non-updatable/java/src/android/net/wifi/nl80211/HiddenNetwork.java diff --git a/wifi/java/android/net/wifi/nl80211/NativeScanResult.java b/wifi/non-updatable/java/src/android/net/wifi/nl80211/NativeScanResult.java similarity index 100% rename from wifi/java/android/net/wifi/nl80211/NativeScanResult.java rename to wifi/non-updatable/java/src/android/net/wifi/nl80211/NativeScanResult.java diff --git a/wifi/java/android/net/wifi/nl80211/NativeWifiClient.java b/wifi/non-updatable/java/src/android/net/wifi/nl80211/NativeWifiClient.java similarity index 100% rename from wifi/java/android/net/wifi/nl80211/NativeWifiClient.java rename to wifi/non-updatable/java/src/android/net/wifi/nl80211/NativeWifiClient.java diff --git a/wifi/java/android/net/wifi/nl80211/PnoNetwork.java b/wifi/non-updatable/java/src/android/net/wifi/nl80211/PnoNetwork.java similarity index 100% rename from wifi/java/android/net/wifi/nl80211/PnoNetwork.java rename to wifi/non-updatable/java/src/android/net/wifi/nl80211/PnoNetwork.java diff --git a/wifi/java/android/net/wifi/nl80211/PnoSettings.java b/wifi/non-updatable/java/src/android/net/wifi/nl80211/PnoSettings.java similarity index 100% rename from wifi/java/android/net/wifi/nl80211/PnoSettings.java rename to wifi/non-updatable/java/src/android/net/wifi/nl80211/PnoSettings.java diff --git a/wifi/java/android/net/wifi/nl80211/RadioChainInfo.java b/wifi/non-updatable/java/src/android/net/wifi/nl80211/RadioChainInfo.java similarity index 100% rename from wifi/java/android/net/wifi/nl80211/RadioChainInfo.java rename to wifi/non-updatable/java/src/android/net/wifi/nl80211/RadioChainInfo.java diff --git a/wifi/java/android/net/wifi/nl80211/SingleScanSettings.java b/wifi/non-updatable/java/src/android/net/wifi/nl80211/SingleScanSettings.java similarity index 100% rename from wifi/java/android/net/wifi/nl80211/SingleScanSettings.java rename to wifi/non-updatable/java/src/android/net/wifi/nl80211/SingleScanSettings.java diff --git a/wifi/java/android/net/wifi/nl80211/WifiNl80211Manager.java b/wifi/non-updatable/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java similarity index 100% rename from wifi/java/android/net/wifi/nl80211/WifiNl80211Manager.java rename to wifi/non-updatable/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java diff --git a/wifi/non-updatable/tests/Android.bp b/wifi/non-updatable/tests/Android.bp new file mode 100644 index 0000000000000..3f5cacff017fb --- /dev/null +++ b/wifi/non-updatable/tests/Android.bp @@ -0,0 +1,44 @@ +// Copyright (C) 2020 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +android_test { + name: "FrameworksWifiNonUpdatableApiTests", + + defaults: ["framework-wifi-test-defaults"], + + srcs: ["src/**/*.java"], + + jacoco: { + include_filter: ["android.net.wifi.*"], + // TODO(b/147521214) need to exclude test classes + exclude_filter: [], + }, + + static_libs: [ + "androidx.test.rules", + "frameworks-base-testutils", + "guava", + "mockito-target-minus-junit4", + "truth-prebuilt", + ], + + libs: [ + "android.test.runner", + "android.test.base", + ], + + test_suites: [ + "general-tests", + ], +} diff --git a/wifi/non-updatable/tests/AndroidManifest.xml b/wifi/non-updatable/tests/AndroidManifest.xml new file mode 100644 index 0000000000000..b4b6b2d7997aa --- /dev/null +++ b/wifi/non-updatable/tests/AndroidManifest.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + diff --git a/wifi/non-updatable/tests/AndroidTest.xml b/wifi/non-updatable/tests/AndroidTest.xml new file mode 100644 index 0000000000000..5f3fdd46556e1 --- /dev/null +++ b/wifi/non-updatable/tests/AndroidTest.xml @@ -0,0 +1,28 @@ + + + + + + + diff --git a/wifi/non-updatable/tests/README.md b/wifi/non-updatable/tests/README.md new file mode 100644 index 0000000000000..ad535f4ed86ac --- /dev/null +++ b/wifi/non-updatable/tests/README.md @@ -0,0 +1,32 @@ +# Wifi Non-Updatable Framework Unit Tests +This package contains unit tests for the non-updatable part (i.e. outside the Wifi module) of the +Android Wifi framework APIs based on the +[Android Testing Support Library](http://developer.android.com/tools/testing-support-library/index.html). +The test cases are built using the [JUnit](http://junit.org/) and [Mockito](http://mockito.org/) +libraries. + +## Running Tests +The easiest way to run tests is simply run + +``` +atest android.net.wifi +``` + +To pick up changes in framework/base, you will need to: +1. rebuild the framework library 'make -j32' +2. sync over the updated library to the device 'adb sync' +3. restart framework on the device 'adb shell stop' then 'adb shell start' + +To enable syncing data to the device for first time after clean reflash: +1. adb disable-verity +2. adb reboot +3. adb remount + +## Adding Tests +Tests can be added by adding classes to the src directory. JUnit4 style test cases can +be written by simply annotating test methods with `org.junit.Test`. + +## Debugging Tests +If you are trying to debug why tests are not doing what you expected, you can add android log +statements and use logcat to view them. The beginning and end of every tests is automatically logged +with the tag `TestRunner`. diff --git a/wifi/tests/src/android/net/wifi/SoftApConfToXmlMigrationUtilTest.java b/wifi/non-updatable/tests/src/android/net/wifi/SoftApConfToXmlMigrationUtilTest.java similarity index 100% rename from wifi/tests/src/android/net/wifi/SoftApConfToXmlMigrationUtilTest.java rename to wifi/non-updatable/tests/src/android/net/wifi/SoftApConfToXmlMigrationUtilTest.java diff --git a/wifi/tests/src/android/net/wifi/WifiNetworkScoreCacheTest.java b/wifi/non-updatable/tests/src/android/net/wifi/WifiNetworkScoreCacheTest.java similarity index 99% rename from wifi/tests/src/android/net/wifi/WifiNetworkScoreCacheTest.java rename to wifi/non-updatable/tests/src/android/net/wifi/WifiNetworkScoreCacheTest.java index fdd11a385651d..c4967ebf1736a 100644 --- a/wifi/tests/src/android/net/wifi/WifiNetworkScoreCacheTest.java +++ b/wifi/non-updatable/tests/src/android/net/wifi/WifiNetworkScoreCacheTest.java @@ -11,7 +11,7 @@ * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and - * limitations under the License + * limitations under the License. */ package android.net.wifi; diff --git a/wifi/tests/src/android/net/wifi/nl80211/DeviceWiphyCapabilitiesTest.java b/wifi/non-updatable/tests/src/android/net/wifi/nl80211/DeviceWiphyCapabilitiesTest.java similarity index 100% rename from wifi/tests/src/android/net/wifi/nl80211/DeviceWiphyCapabilitiesTest.java rename to wifi/non-updatable/tests/src/android/net/wifi/nl80211/DeviceWiphyCapabilitiesTest.java diff --git a/wifi/tests/src/android/net/wifi/nl80211/NativeScanResultTest.java b/wifi/non-updatable/tests/src/android/net/wifi/nl80211/NativeScanResultTest.java similarity index 100% rename from wifi/tests/src/android/net/wifi/nl80211/NativeScanResultTest.java rename to wifi/non-updatable/tests/src/android/net/wifi/nl80211/NativeScanResultTest.java diff --git a/wifi/tests/src/android/net/wifi/nl80211/PnoSettingsTest.java b/wifi/non-updatable/tests/src/android/net/wifi/nl80211/PnoSettingsTest.java similarity index 100% rename from wifi/tests/src/android/net/wifi/nl80211/PnoSettingsTest.java rename to wifi/non-updatable/tests/src/android/net/wifi/nl80211/PnoSettingsTest.java diff --git a/wifi/tests/src/android/net/wifi/nl80211/SingleScanSettingsTest.java b/wifi/non-updatable/tests/src/android/net/wifi/nl80211/SingleScanSettingsTest.java similarity index 100% rename from wifi/tests/src/android/net/wifi/nl80211/SingleScanSettingsTest.java rename to wifi/non-updatable/tests/src/android/net/wifi/nl80211/SingleScanSettingsTest.java diff --git a/wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java b/wifi/non-updatable/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java similarity index 100% rename from wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java rename to wifi/non-updatable/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java