Add the requestorUid & requestorPackageName fields to NetworkCapabilities. This is populated by CS when a new network request is received. These 2 requestor fields are also optionally used for network matching. All of the regular app initiated requests will have the requestor uid and package name set by connectivity service. Network agents can optionally set the requestorUid and requestorPackageName to restrict the network created only to the app that requested the network. This will help removing the necessity for the various specifiers to embed the uid & package name info in the specifier for network matching. Note: NetworkSpecifier.assertValidFromUid() is deprecated & removed in favor of setting the uid/package name on the agent to restrict the network to a certain app (useful for wifi peer to peer API & wifi aware). Bug: 144102365 Test: Verified that wifi network request related CTS verifier tests pass. Test: Device boots up and connects to wifi networks Merged-In: I207c446108afdac7ee2c25e6bbcbc37c4e3f6529 Change-Id: I58775e82aa7725aac5aa27ca9d2b5ee8f0be4242
Wifi Unit Tests
This package contains unit tests for the android wifi framework APIs based on the Android Testing Support Library. The test cases are built using the JUnit and Mockito libraries.
Running Tests
The easiest way to run tests is simply run
frameworks/base/wifi/tests/runtests.sh
runtests.sh will build the test project and all of its dependencies and push the APK to the
connected device. It will then run the tests on the device.
To pick up changes in framework/base, you will need to:
- rebuild the framework library 'make -j32'
- sync over the updated library to the device 'adb sync'
- 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:
- adb disable-verity
- adb reboot
- adb remount
See below for a few example of options to limit which tests are run. See the AndroidJUnitRunner Documentation for more details on the supported options.
runtests.sh -e package android.net.wifi
runtests.sh -e class android.net.wifi.WifiScannerTest
If you manually build and push the test APK to the device you can run tests using
adb shell am instrument -w 'android.net.wifi.test/androidx.test.runner.AndroidJUnitRunner'
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.