webrtc/g3doc/add-new-test-binary.md
Mirko Bonadei 2f5efcc3e9 Add docs about adding a new test binary.
No-Try: True
Bug: None
Change-Id: I4ff887649145bc6c240873685f944b470c309747
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/296442
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Auto-Submit: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39492}
2023-03-07 11:12:33 +00:00

33 lines
1.7 KiB
Markdown

# Add a new test binary
This page lists all the steps needed in order to add an `rtc_test` target to
WebRTC's BUILD.gn files and ensure the test binary will run on the presubmit and
postsubmit infrastructure.
1. While working on your CL, add an `rtc_test` target, with `testonly = true`,
and `../test:test_main` among its dependencies (`rtc_test` targets require
a `main()` function).
2. Add the newly created `rtc_test` target to the `group("default")` target in
the root [BUILD.gn](https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/BUILD.gn).
The target needs to be added within the `rtc_include_tests` section.
3. Add the name of the newly created `rtc_test` into
[infra/specs/gn_isolate_map.pyl](https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/infra/specs/gn_isolate_map.pyl).
4. Add the name of the newly created `rtc_test` into
[infra/specs/test_suites.pyl](https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/infra/specs/test_suites.pyl).
By default, you should add it to the `android_tests`, `desktop_tests` and
`ios_simulator_tests` sections.
5. Run the script
[infra/specs/generate_buildbot_json.py](https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/infra/specs/generate_buildbot_json.py)
(no arguments) to generate the JSON scripts based on the previsouly modified .pyl scripts.
6. Build, test, review and submit!
The bots will execute the new configs as part of the CQ. Inspect some logs to
verify that your test is in fact executed by the bots where you expect them to be.
The details of the (many) config files are described in
https://chromium.googlesource.com/chromium/src/testing/+/HEAD/buildbot/README.md.