Mirko Bonadei | 2f5efcc | 2023-03-07 11:00:37 | [diff] [blame] | 1 | # Add a new test binary |
| 2 | |
| 3 | This page lists all the steps needed in order to add an `rtc_test` target to |
| 4 | WebRTC's BUILD.gn files and ensure the test binary will run on the presubmit and |
| 5 | postsubmit infrastructure. |
| 6 | |
| 7 | 1. While working on your CL, add an `rtc_test` target, with `testonly = true`, |
| 8 | and `../test:test_main` among its dependencies (`rtc_test` targets require |
| 9 | a `main()` function). |
| 10 | |
| 11 | 2. Add the newly created `rtc_test` target to the `group("default")` target in |
| 12 | the root [BUILD.gn](https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/BUILD.gn). |
| 13 | The target needs to be added within the `rtc_include_tests` section. |
| 14 | |
| 15 | 3. Add the name of the newly created `rtc_test` into |
| 16 | [infra/specs/gn_isolate_map.pyl](https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/infra/specs/gn_isolate_map.pyl). |
| 17 | |
| 18 | 4. Add the name of the newly created `rtc_test` into |
| 19 | [infra/specs/test_suites.pyl](https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/infra/specs/test_suites.pyl). |
| 20 | By default, you should add it to the `android_tests`, `desktop_tests` and |
| 21 | `ios_simulator_tests` sections. |
| 22 | |
| 23 | 5. Run the script |
| 24 | [infra/specs/generate_buildbot_json.py](https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/infra/specs/generate_buildbot_json.py) |
| 25 | (no arguments) to generate the JSON scripts based on the previsouly modified .pyl scripts. |
| 26 | |
| 27 | 6. Build, test, review and submit! |
| 28 | |
| 29 | The bots will execute the new configs as part of the CQ. Inspect some logs to |
| 30 | verify that your test is in fact executed by the bots where you expect them to be. |
| 31 | |
| 32 | The details of the (many) config files are described in |
| 33 | https://chromium.googlesource.com/chromium/src/testing/+/HEAD/buildbot/README.md. |