#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:


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@…>

In c15d706/trunk:

travis: Disable coverage on OS-X build, times out

refs ticket:2800

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.

Note: See TracTickets for help on using tickets.