Dan, very happy that you will work on this. I like to run the test suite locally before a large push and the time it takes on my machine is around 10 minutes. I'd very much appreciate that to go down!
Kind Regards, Stefan > Am 22.03.2023 um 18:54 schrieb Dan Fandrich via curl-library > <[email protected]>: > > On the long road to 8.0.0, curl has taken on close to 1600 test cases [1] > that help verify that it stays running correctly. These tests are one of the > ways that curl stays operating reliably year after year, but the downside is > that they can take an annoyingly long time to run. Normal test runs in the > CI builds take between 6 and 25 minutes, and that's not including Valgrind or > torture runs which take much longer than that. The test suite runs tests > sequentially, so running them on a multi-core CPU makes hardly any difference > to the run time. > > Several CI services we rely on run builds sequentially, so it can take many > hours between submitting a PR and seeing the final results. Developers > working on their own machines are also slowed down when testing adds 10 > minutes to a edit-compile-run cycle. Speeding up a test run would make > developers' lives that much better. > > I looked into running tests in parallel a few years ago as a way to speed > them up [2], but the testing infrastructure had various assumptions baked-in > that would have required a commitment to do some major refactoring. Since > then, at least one of the hurdles has already been been overcome (running > servers on random ports [3]) and the number of test cases being added keeps > increasing. As CPUs advance more by increasing the number of cores rather > than making each one faster, the test suite's serial nature is becoming more > of a bottleneck that needs to be addressed. > > I"m glad that I'm finally going to be able to tackle this problem. I'll be > working on parallelizing the test suite over the next few weeks, funded by > the curl project itself. I've put together an outline of what I intend to do > [4] and would welcome comments as I dive in. Commits will reference this > issue [5] if you want to follow along. > > Dan Fandrich > > [1]: https://curl.se/dashboard1.html#tests > [2]: https://curl.se/mail/lib-2018-10/0004.html > [3]: https://github.com/curl/curl/pull/5247 > [4]: > https://github.com/curl/curl/files/11023995/curl.parallel.testing.proposal.pdf > [5]: https://github.com/curl/curl/issues/10818 > -- > Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library > Etiquette: https://curl.se/mail/etiquette.html -- Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html
