Split updatable/non-updatable Wifi APIs into separate directories
This creates a clearer boundary between what is updatable (part of the Wifi module) and what is not updatable (outside the module). Bug: 176105484 Test: compiles Change-Id: Ia95e300da9286d79ee57c285c3bfa88ecc98e326
This commit is contained in:
@@ -31,9 +31,6 @@ filegroup {
|
|||||||
"java/**/*.java",
|
"java/**/*.java",
|
||||||
"java/**/*.aidl",
|
"java/**/*.aidl",
|
||||||
],
|
],
|
||||||
exclude_srcs: [
|
|
||||||
":framework-wifi-non-updatable-sources"
|
|
||||||
],
|
|
||||||
path: "java",
|
path: "java",
|
||||||
visibility: ["//visibility:private"],
|
visibility: ["//visibility:private"],
|
||||||
}
|
}
|
||||||
@@ -47,20 +44,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 {
|
filegroup {
|
||||||
name: "framework-wifi-annotations",
|
name: "framework-wifi-annotations",
|
||||||
srcs: ["java/android/net/wifi/WifiAnnotations.java"],
|
srcs: ["java/android/net/wifi/WifiAnnotations.java"],
|
||||||
@@ -69,6 +52,7 @@ filegroup {
|
|||||||
// list of tests that are allowed to access @hide APIs from framework-wifi
|
// list of tests that are allowed to access @hide APIs from framework-wifi
|
||||||
test_access_hidden_api_whitelist = [
|
test_access_hidden_api_whitelist = [
|
||||||
"//frameworks/base/wifi/tests",
|
"//frameworks/base/wifi/tests",
|
||||||
|
"//frameworks/base/wifi/non-updatable/tests",
|
||||||
"//frameworks/opt/net/wifi/tests/wifitests:__subpackages__",
|
"//frameworks/opt/net/wifi/tests/wifitests:__subpackages__",
|
||||||
|
|
||||||
"//external/robolectric-shadows:__subpackages__",
|
"//external/robolectric-shadows:__subpackages__",
|
||||||
|
|||||||
35
wifi/non-updatable/java/Android.bp
Normal file
35
wifi/non-updatable/java/Android.bp
Normal file
@@ -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",
|
||||||
|
],
|
||||||
|
}
|
||||||
@@ -89,7 +89,7 @@ public class WifiNetworkScoreCache extends INetworkScoreCache.Stub {
|
|||||||
|
|
||||||
@Override public final void updateScores(List<ScoredNetwork> networks) {
|
@Override public final void updateScores(List<ScoredNetwork> networks) {
|
||||||
if (networks == null || networks.isEmpty()) {
|
if (networks == null || networks.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (DBG) {
|
if (DBG) {
|
||||||
Log.d(TAG, "updateScores list size=" + networks.size());
|
Log.d(TAG, "updateScores list size=" + networks.size());
|
||||||
@@ -97,7 +97,7 @@ public class WifiNetworkScoreCache extends INetworkScoreCache.Stub {
|
|||||||
|
|
||||||
boolean changed = false;
|
boolean changed = false;
|
||||||
|
|
||||||
synchronized(mLock) {
|
synchronized (mLock) {
|
||||||
for (ScoredNetwork network : networks) {
|
for (ScoredNetwork network : networks) {
|
||||||
String networkKey = buildNetworkKey(network);
|
String networkKey = buildNetworkKey(network);
|
||||||
if (networkKey == null) {
|
if (networkKey == null) {
|
||||||
@@ -189,7 +189,7 @@ public class WifiNetworkScoreCache extends INetworkScoreCache.Stub {
|
|||||||
String key = buildNetworkKey(result);
|
String key = buildNetworkKey(result);
|
||||||
if (key == null) return null;
|
if (key == null) return null;
|
||||||
|
|
||||||
synchronized(mLock) {
|
synchronized (mLock) {
|
||||||
ScoredNetwork network = mCache.get(key);
|
ScoredNetwork network = mCache.get(key);
|
||||||
return network;
|
return network;
|
||||||
}
|
}
|
||||||
44
wifi/non-updatable/tests/Android.bp
Normal file
44
wifi/non-updatable/tests/Android.bp
Normal file
@@ -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",
|
||||||
|
],
|
||||||
|
}
|
||||||
38
wifi/non-updatable/tests/AndroidManifest.xml
Normal file
38
wifi/non-updatable/tests/AndroidManifest.xml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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
|
||||||
|
-->
|
||||||
|
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="android.net.wifi.test">
|
||||||
|
|
||||||
|
<application>
|
||||||
|
<uses-library android:name="android.test.runner"/>
|
||||||
|
<activity android:label="WifiTestDummyLabel"
|
||||||
|
android:name="WifiTestDummyName"
|
||||||
|
android:exported="true">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
</application>
|
||||||
|
|
||||||
|
<instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
android:targetPackage="android.net.wifi.test"
|
||||||
|
android:label="Frameworks Wifi Non-updatable API Tests">
|
||||||
|
</instrumentation>
|
||||||
|
|
||||||
|
</manifest>
|
||||||
28
wifi/non-updatable/tests/AndroidTest.xml
Normal file
28
wifi/non-updatable/tests/AndroidTest.xml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- 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.
|
||||||
|
-->
|
||||||
|
<configuration description="Runs Frameworks Wifi Non-updatable API Tests.">
|
||||||
|
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
|
||||||
|
<option name="test-file-name" value="FrameworksWifiNonUpdatableApiTests.apk" />
|
||||||
|
</target_preparer>
|
||||||
|
|
||||||
|
<option name="test-suite-tag" value="apct" />
|
||||||
|
<option name="test-tag" value="FrameworksWifiNonUpdatableApiTests" />
|
||||||
|
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
|
||||||
|
<option name="package" value="android.net.wifi.test" />
|
||||||
|
<option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
|
||||||
|
<option name="hidden-api-checks" value="false"/>
|
||||||
|
</test>
|
||||||
|
</configuration>
|
||||||
32
wifi/non-updatable/tests/README.md
Normal file
32
wifi/non-updatable/tests/README.md
Normal file
@@ -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`.
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package android.net.wifi;
|
package android.net.wifi;
|
||||||
Reference in New Issue
Block a user