mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00
docs: Improve Android testing docs
The current documentation seems outdated: Building the `AppRTCMobile` target does not generate a `run_modules_unittests` binary and the `AppRTCMobileTest` target does not exist. No-Try: True Bug: None Change-Id: Ia9156fe475188f07d13898b4d83a606c49119a2e Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175013 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31249}
This commit is contained in:
parent
b088a952ee
commit
2f4b0106c2
2 changed files with 32 additions and 23 deletions
1
AUTHORS
1
AUTHORS
|
@ -124,3 +124,4 @@ Highfive, Inc. <*@highfive.com>
|
||||||
CoSMo Software Consulting, Pte Ltd <*@cosmosoftware.io>
|
CoSMo Software Consulting, Pte Ltd <*@cosmosoftware.io>
|
||||||
Tuple, LLC <*@tuple.app>
|
Tuple, LLC <*@tuple.app>
|
||||||
Videona Socialmedia <*@videona.com>
|
Videona Socialmedia <*@videona.com>
|
||||||
|
Threema GmbH <*@threema.ch>
|
||||||
|
|
|
@ -23,6 +23,7 @@ build config.
|
||||||
See [Development][webrtc-development] for instructions on how to update
|
See [Development][webrtc-development] for instructions on how to update
|
||||||
the code, building etc.
|
the code, building etc.
|
||||||
|
|
||||||
|
|
||||||
## Compiling
|
## Compiling
|
||||||
|
|
||||||
1. Generate projects using GN.
|
1. Generate projects using GN.
|
||||||
|
@ -44,9 +45,12 @@ to enable managing multiple configurations in parallel.
|
||||||
2. Compile using:
|
2. Compile using:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ ninja -C out/Debug
|
$ autoninja -C out/Debug
|
||||||
```
|
```
|
||||||
|
|
||||||
|
(To list all available targets, run `autoninja -C out/Debug -t targets all`.)
|
||||||
|
|
||||||
|
|
||||||
## Using the Bundled Android SDK/NDK
|
## Using the Bundled Android SDK/NDK
|
||||||
|
|
||||||
In order to use the Android SDK and NDK that is bundled in
|
In order to use the Android SDK and NDK that is bundled in
|
||||||
|
@ -59,6 +63,7 @@ $ . build/android/envsetup.sh
|
||||||
|
|
||||||
Then you'll have `adb` and all the other Android tools in your `PATH`.
|
Then you'll have `adb` and all the other Android tools in your `PATH`.
|
||||||
|
|
||||||
|
|
||||||
## Running the AppRTCMobile App
|
## Running the AppRTCMobile App
|
||||||
|
|
||||||
AppRTCMobile is an Android application using WebRTC Native APIs via JNI (JNI
|
AppRTCMobile is an Android application using WebRTC Native APIs via JNI (JNI
|
||||||
|
@ -77,7 +82,7 @@ https://bugs.webrtc.org/9282*
|
||||||
generating the build files using GN):
|
generating the build files using GN):
|
||||||
|
|
||||||
```
|
```
|
||||||
$ ninja -C out/Debug AppRTCMobile
|
$ autoninja -C out/Debug AppRTCMobile
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Generate the project files:
|
2. Generate the project files:
|
||||||
|
@ -97,51 +102,54 @@ Android Studio's SDK. When asked whether to use the Gradle wrapper, press
|
||||||
AppRTCMobile should now start on the device.
|
AppRTCMobile should now start on the device.
|
||||||
|
|
||||||
If you do any changes to the C++ code, you have to compile the project using
|
If you do any changes to the C++ code, you have to compile the project using
|
||||||
ninja after the changes (see step 1).
|
autoninja after the changes (see step 1).
|
||||||
|
|
||||||
*Note: Only "arm" is supported as the target_cpu when using Android Studio. This
|
*Note: Only "arm" is supported as the target_cpu when using Android Studio. This
|
||||||
still allows you to run the application on 64-bit ARM devices. x86-based devices
|
still allows you to run the application on 64-bit ARM devices. x86-based devices
|
||||||
are not supported right now.*
|
are not supported right now.*
|
||||||
|
|
||||||
|
|
||||||
## Running WebRTC Native Tests on an Android Device
|
## Running Tests on an Android Device
|
||||||
|
|
||||||
To build APKs with the WebRTC native tests, follow these instructions.
|
To build APKs with the WebRTC native tests, follow these instructions.
|
||||||
|
|
||||||
1. Ensure you have an Android device set in Developer mode connected via
|
1. Ensure you have an Android device set in Developer mode connected via USB.
|
||||||
USB.
|
|
||||||
|
|
||||||
2. Compile as described in the section above.
|
2. Compile unit tests and/or instrumentation tests:
|
||||||
|
|
||||||
3. To see which tests are available: look in `out/Debug/bin`.
|
|
||||||
|
|
||||||
4. Run a test on your device:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
$ out/Debug/bin/run_modules_unittests
|
$ autoninja -C out/Debug android_instrumentation_test_apk
|
||||||
|
$ autoninja -C out/Debug rtc_unittests
|
||||||
```
|
```
|
||||||
|
|
||||||
5. If you want to limit to a subset of tests, use the `--gtest_filter flag`, e.g.
|
3. You can find the generated test binaries in `out/Debug/bin`. To run instrumentation tests:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ out/Debug/bin/run_modules_unittests \
|
$ out/Debug/bin/run_android_instrumentation_test_apk -v
|
||||||
--gtest_filter=RtpRtcpAPITest.SSRC:RtpRtcpRtcpTest.*
|
|
||||||
```
|
```
|
||||||
|
|
||||||
6. **NOTICE:** The first time you run a test, you must accept a dialog on
|
To run unit tests:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ out/Debug/bin/run_rtc_unittests -v
|
||||||
|
```
|
||||||
|
|
||||||
|
Show verbose output with `-v` and filter tests with `--gtest-filter=SomeTest.*`. For example:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ out/Debug/bin/run_android_instrumentation_test_apk -v \
|
||||||
|
--gtest_filter=VideoFrameBufferTest.*
|
||||||
|
```
|
||||||
|
|
||||||
|
For a full list of command line arguments, use `--help`.
|
||||||
|
|
||||||
|
5. **NOTICE:** The first time you run a test, you must accept a dialog on
|
||||||
the device!
|
the device!
|
||||||
|
|
||||||
If want to run Release builds instead; pass `is_debug=false` to GN (and
|
If want to run Release builds instead; pass `is_debug=false` to GN (and
|
||||||
preferably generate the projects files into a directory like `out/Release`).
|
preferably generate the projects files into a directory like `out/Release`).
|
||||||
Then use the scripts generated in `out/Release/bin` instead.
|
Then use the scripts generated in `out/Release/bin` instead.
|
||||||
|
|
||||||
|
|
||||||
## Running WebRTC Instrumentation Tests on an Android Device
|
|
||||||
|
|
||||||
The instrumentation tests (like AppRTCMobileTest and
|
|
||||||
libjingle_peerconnection_android_unittest) gets scripts generated in the same
|
|
||||||
location as the native tests described in the previous section.
|
|
||||||
|
|
||||||
[webrtc-prerequisite-sw]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/prerequisite-sw/index.md
|
[webrtc-prerequisite-sw]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/prerequisite-sw/index.md
|
||||||
[webrtc-jni-doc]: https://webrtc.googlesource.com/src/+/master/sdk/android/README
|
[webrtc-jni-doc]: https://webrtc.googlesource.com/src/+/master/sdk/android/README
|
||||||
[apprtc-doc]: https://webrtc.googlesource.com/src/+/master/examples/androidapp/README
|
[apprtc-doc]: https://webrtc.googlesource.com/src/+/master/examples/androidapp/README
|
||||||
|
|
Loading…
Reference in a new issue