As we launch our CI solution Tddium into full Python support here at Solano Labs, we are happy to see more opportunities for us to collaborate with the Python community and contribute back. Last week at the PyCon sprints, I got a chance to sit down with Maciej Fijałkowski (@fijall), Armin Rigo, and the PyPy crew to make some improvements to the test system for PyPy, a project that takes its tests very seriously.
By running the PyPy tests in Tddium, we were able to complete the 5-hour test suite in about 15 minutes, vs. about 28 minutes on PyPy’s existing manually-set-up parallel test system. Tddium takes no maintenance, and the UI is getting good reviews too.
Meanwhile, working with Armin I fixed an issue that had caused some tests to abort on common Linux configurations. The tests had mapped a 20-gigabyte chunk of virtual address space, in order to spread some objects across it in order to help flush out any 32-vs-64-bit bugs. If VM overcommit limits haven’t been disabled on the machine, then just a few of those running in parallel are enough to cause fork() or malloc() to fail! I modified the test setup to keep only a small fraction of the 20 gigabytes committed, and the tests now run great with or without overcommit.
We are excited to further contribute to PyPy’s growth — follow PyPy on Twitter @pypyproject to see the latest development and news. We’d love to hear your thoughts in the comment section!
Follow Greg Price on Twitter: @gnprice