Peter Qiu | 601964b | 2016-09-26 13:14:13 -0700 | [diff] [blame] | 1 | # Wifi Unit Tests |
| 2 | This package contains unit tests for the android wifi framework APIs based on the |
| 3 | [Android Testing Support Library](http://developer.android.com/tools/testing-support-library/index.html). |
| 4 | The test cases are built using the [JUnit](http://junit.org/) and [Mockito](http://mockito.org/) |
| 5 | libraries. |
| 6 | |
| 7 | ## Running Tests |
| 8 | The easiest way to run tests is simply run |
| 9 | |
| 10 | ``` |
| 11 | frameworks/base/wifi/tests/runtests.sh |
| 12 | ``` |
| 13 | |
| 14 | `runtests.sh` will build the test project and all of its dependencies and push the APK to the |
| 15 | connected device. It will then run the tests on the device. |
| 16 | |
| 17 | To pick up changes in framework/base, you will need to: |
| 18 | 1. rebuild the framework library 'make -j32' |
| 19 | 2. sync over the updated library to the device 'adb sync' |
| 20 | 3. restart framework on the device 'adb shell stop' then 'adb shell start' |
| 21 | |
| 22 | To enable syncing data to the device for first time after clean reflash: |
| 23 | 1. adb disable-verity |
| 24 | 2. adb reboot |
| 25 | 3. adb remount |
| 26 | |
| 27 | See below for a few example of options to limit which tests are run. |
| 28 | See the |
| 29 | [AndroidJUnitRunner Documentation](https://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner.html) |
| 30 | for more details on the supported options. |
| 31 | |
| 32 | ``` |
| 33 | runtests.sh -e package android.net.wifi |
| 34 | runtests.sh -e class android.net.wifi.WifiScannerTest |
| 35 | ``` |
| 36 | |
| 37 | If you manually build and push the test APK to the device you can run tests using |
| 38 | |
| 39 | ``` |
| 40 | adb shell am instrument -w 'android.net.wifi.test/android.support.test.runner.AndroidJUnitRunner' |
| 41 | ``` |
| 42 | |
| 43 | ## Adding Tests |
| 44 | Tests can be added by adding classes to the src directory. JUnit4 style test cases can |
| 45 | be written by simply annotating test methods with `org.junit.Test`. |
| 46 | |
| 47 | ## Debugging Tests |
| 48 | If you are trying to debug why tests are not doing what you expected, you can add android log |
| 49 | statements and use logcat to view them. The beginning and end of every tests is automatically logged |
| 50 | with the tag `TestRunner`. |