Opened at 2016-07-21T22:07:10Z
Closed at 2020-08-26T18:34:40Z
#2800 closed task (fixed)
make OS-X travis tests run faster
Reported by: | warner | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | eventually |
Component: | code | Version: | 1.11.0 |
Keywords: | Cc: | ||
Launchpad Bug: |
Description
We currently have Travis-CI configured to run the unit test suite (with coverage) as tox -e coverage on both Linux and OS-X. The linux suite tends to finish in about 13 minutes, but the OS-X one takes 27 or more, and occasionally exceeds a Travis per-job time limit (one such run was terminated after 48 minutes).
I'm going to turn off coverage for the OS-X travis build in an attempt to keep this from happening. Several tests get *extremely* slow when run in coverage mode (and are non too fast anyways). Here's a summary of the top 30 most time-consuming tests (on travis OS-X with coverage turned on, specifically in job https://travis-ci.org/tahoe-lafs/tahoe-lafs/jobs/146475300):
14.935 allmydata.test.test_mutable.Filenode.test_modify 15.387 allmydata.test.test_sftp.Handler.test_removeDirectory 16.377 allmydata.test.test_mutable.Filenode.test_max_shares 18.051 allmydata.test.test_cli_check.Check.test_deep_check 20.046 allmydata.test.test_sftp.Handler.test_removeFile 20.222 allmydata.test.test_mutable.Update.test_replace_locations 22.993 allmydata.test.test_cli_put.Put.test_format 24.148 allmydata.test.test_sftp.Handler.test_renameFile 24.732 allmydata.test.test_cli_mv.Mv.test_mv_behavior 31.925 allmydata.test.test_deepcheck.DeepCheckWebBad.test_bad 34.554 allmydata.test.test_cli_backup.Backup.test_backup 35.903 allmydata.test.test_deepcheck.DeepCheckWebGood.test_good 35.949 allmydata.test.test_cli_cp.Cp.test_cp_replaces_mutable_file_contents 36.782 allmydata.test.test_mutable.Update.test_update_sdmf 39.078 allmydata.test.test_mutable.Update.test_replace_zero_length_segstart1 39.738 allmydata.test.test_mutable.Update.test_replace_zero_length_beginning 41.237 allmydata.test.test_mutable.Update.test_replace_segstart1 41.836 allmydata.test.test_mutable.Update.test_replace_in_last_segment 41.930 allmydata.test.test_mutable.Update.test_multiple_segment_replace 44.806 allmydata.test.test_mutable.Update.test_replace_middle 45.171 allmydata.test.test_mutable.Update.test_replace_beginning 45.277 allmydata.test.test_mutable.Update.test_append 45.319 allmydata.test.test_mutable.Update.test_replace_and_extend 47.602 allmydata.test.test_mutable.Update.test_replace_zero_length_middle 48.479 allmydata.test.test_mutable.Update.test_append_power_of_two 51.612 allmydata.test.test_sftp.Handler.test_openFile_write 54.571 allmydata.test.test_dirnode.Dirnode.test_create_mdmf 57.791 allmydata.test.test_dirnode.Dirnode.test_create 88.997 allmydata.test.test_cli_cp.CopyOut.test_cp_out 278.741 allmydata.test.test_mutable.Update.test_replace_locations_max_shares top 30 tests take 1364.189 secs total: 692 tests take 2585.774 secs
Those 30 tests take over half the total runtime. The worst is test_replace_locations_max_shares, which takes 11% all by itself.
Our fastest CI builder is a buildbot slave that runs on a linode instance, which finishes the entire test suite (without coverage) in 9 minutes. On that builder, test_replace_locations_max_shares is number 2 (taking 23 seconds), and the other 5 slowests tests are all from test_system.SystemTest.
The task for this ticket is to go through test_mutable and make it not take so long.
Change History (2)
comment:1 Changed at 2016-07-21T23:15:16Z by Brian Warner <warner@…>
comment:2 Changed at 2020-08-26T18:34:40Z by exarkun
- Resolution set to fixed
- Status changed from new to closed
There is no longer a Travis macOS CI job. There is a GitHub? Actions CI job and it runs moderately quickly.
In c15d706/trunk: