Skip to content

cmCTestTestHandler: store test properties in a multimap

This allows the loops that look at all tests for specific names to skip the vast majority of their loops.


Benchmark adapted from: https://discourse.cmake.org/t/ctest-performance-drops-when-large-number-of-tests-defined/8725 (40k tests, no extra properties, ctest -R foo_testbench_smoke_0)

Before (as of d688a213):

  Time (mean ± σ):      6.222 s ±  0.228 s    [User: 6.065 s, System: 0.126 s]
  Range (min … max):    5.997 s …  6.782 s    10 runs

After:

  Time (mean ± σ):     614.5 ms ±   5.6 ms    [User: 545.7 ms, System: 66.8 ms]
  Range (min … max):   608.0 ms … 623.4 ms    10 runs

Merge request reports