This suggests a strategy to run the functional tests with both v1 and v2 transport in the CI.
Status Quo:
There is both the global --v2transport
option for the test_runner.py
(not enabled by default), plus the possibility to specify --v2transport
for particular tests, which is used for a handful of tests. Currently, when running test_runner.py --v2transport
, these tests are run twice with the same --v2transport
configuration, as has been noted in #29358 (review), which is wasteful.
Suggested Change:
Fix this by adding a --v1transport
option and using it in test_runner.py
, so that irrespective of the global --v2transport
flag, the tests that run twice use v1 in one run and v2 in the other.
Also add --v2transport
to one CI task (multiprocess, i686, DEBUG
).
This means, that for each CI task, the majority of functional tests will run once using the global --v2transport
option if provided, while a few selected tests will always run two times, once with v1
and once with v2
.
Rationale:
A simpler alternative would have been to remove all test-specific --v2transport
commands from test_runner.py
and just enable --v2transport
option for a few CI tasks. I didn’t do that because it would have meant that v2 would never be running in the CI for some platforms, and also be run a lot less locally by users and devs (who would have to actively enable the --v2transport
option).