Skip to content

feat: Run testcases in parallel#448

Open
larseggert wants to merge 3 commits intoquic-interop:masterfrom
larseggert:feat-parallel-runs
Open

feat: Run testcases in parallel#448
larseggert wants to merge 3 commits intoquic-interop:masterfrom
larseggert:feat-parallel-runs

Conversation

@larseggert
Copy link
Contributor

This PR lets testcases run in parallel to speed up things. On my Mac, 16 parallel tests take 196.31 seconds instead of 645.86 seconds with --parallel 1.

The main changes here are to allocate sepearate subnets for each testcase run, so Docker can keep them separated. We also need to pass that network configration into the simulator via environment variables.

We're also collecting log messages during the tests and print them after a test ends, to reduce interleaved output.

Depends on quic-interop/quic-network-simulator#143

This PR lets testcases run in parallel to speed up things. On my Mac, 16 parallel tests take 196.31 seconds instead of 645.86 seconds with `--parallel 1`.

The main changes here are to allocate sepearate subnets for each testcase run, so Docker can keep them separated. We also need to pass that network configration into the simulator via environment variables.

We're also collecting log messages during the tests and print them after a test ends, to reduce interleaved output.

Depends on quic-interop/quic-network-simulator#143
@marten-seemann
Copy link
Collaborator

This seems like a pretty massive change. Not sure if it’s worth it for just a 3x speed up. The interop runner is primarily designed to be run as a cron job (and in CI), and we certainly don’t care for that use case.

@larseggert
Copy link
Contributor Author

I can get the entire run down to 148.23 sec with --parallel 32. I'd find the decrease in CI runtime useful, but YMMV.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants