[tahoe-lafs-trac-stream] [Tahoe-LAFS] #2800: make OS-X travis tests run faster
Tahoe-LAFS
trac at tahoe-lafs.org
Thu Jul 21 22:07:11 UTC 2016
#2800: make OS-X travis tests run faster
--------------------+----------------------------
Reporter: warner | Owner:
Type: task | Status: new
Priority: normal | Milestone: eventually
Component: code | Version: 1.11.0
Keywords: | 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.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2800>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list