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}
diff --git a/g3doc/add-new-test-binary.md b/g3doc/add-new-test-binary.md
new file mode 100644
index 0000000..177c212
--- /dev/null
+++ b/g3doc/add-new-test-binary.md
@@ -0,0 +1,33 @@
+# 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.