id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,launchpad_bug 2800,make OS-X travis tests run faster,warner,,"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. ",task,closed,normal,eventually,code,1.11.0,fixed,,,