Skip to content

Reduce test time #19369

@healther

Description

@healther

While running the tests (to see if I broke anything for #19166) I noticed that they take quite a while...

======================================================================== slowest 20 test durations ========================================================================
359.94s call     lib/spack/spack/test/cmd/license.py::test_list_files
41.18s call     lib/spack/spack/test/cmd/url.py::test_url_list
37.59s call     lib/spack/spack/test/cmd/clean.py::test_function_calls[-a-counters5]
17.31s call     lib/spack/spack/test/directory_layout.py::test_yaml_directory_layout_parameters
15.94s call     lib/spack/spack/test/bindist.py::test_default_rpaths_create_install_default_layout
13.59s call     lib/spack/spack/test/cmd/env.py::test_stack_combinatorial_view[mock_archive0]
13.29s call     lib/spack/spack/test/package_sanity.py::test_get_all_packages
12.66s call     lib/spack/spack/test/cmd/list.py::test_list_format_html
11.95s call     lib/spack/spack/test/bindist.py::test_default_rpaths_install_nondefault_layout
11.28s call     lib/spack/spack/test/cmd/env.py::test_stack_view_multiple_views[mock_archive0]
10.87s call     lib/spack/spack/test/cmd/env.py::test_stack_view_select_and_exclude[mock_archive0]
10.78s call     lib/spack/spack/test/cmd/env.py::test_stack_view_activate_from_default[mock_archive0]
10.43s call     lib/spack/spack/test/bindist.py::test_relative_rpaths_create_default_layout
10.31s call     lib/spack/spack/test/cmd/env.py::test_view_link_roots[mock_archive0]
10.12s call     lib/spack/spack/test/cmd/env.py::test_stack_view_exclude[mock_archive0]
9.79s call     lib/spack/spack/test/cmd/env.py::test_stack_view_select[mock_archive0]
9.68s call     lib/spack/spack/test/cmd/env.py::test_stack_view_no_activate_without_default[mock_archive0]
9.07s call     lib/spack/spack/test/cmd/env.py::test_view_link_all[mock_archive0]
9.02s call     lib/spack/spack/test/cmd/url.py::test_url_stats
9.02s call     lib/spack/spack/test/cmd/url.py::test_url_summary

To be fair this is on a somewhat old MacBook Air, but still... 6 minutes for checking the licenses is, let's call it ambitious^^. Has anyone taken a look at speeding things up?

And I'm pretty sure the fail of

FAIL lib/spack/spack/test/bindist.py::test_push_and_fetch_keys

should have been an XFAIL or SKIP right? (It skipped a bunch of other pgp-dependent stuff)

This is largely a copy from a comment in #19166, but @alalazo correctly pointed out it deserves its own issue. I don't think it is super urgent as upstream tests (aka Github checks) are fine as a replacement for me as a causal contributor, i.e. I can just not run the tests at all and let github do it's stuff. But I wouldn't want to run these multiple times a day... We can probably disable a significant amount of tests by default (e.g. the license test really only needs to run on Github, no contributor will break spack with it), but some kind of "only test what you changed wrt to develop" intelligence would be ideal.

If you are here and want to work on this: From what I've seen most time got sunk into the regex application, so this should be the place to start.

Pinging various people who might know how to speed this up, feel free to ignore if you deem it low priority: @scheibelp @adamjstewart @becker33

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciIssues related to Continuous IntegrationconfigurationdefaultsfeatureA feature is missing in Spack

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions