diff --git a/.config/nextest.toml b/.config/nextest.toml index a9f409ed444..466fdbcac2b 100644 --- a/.config/nextest.toml +++ b/.config/nextest.toml @@ -11,6 +11,17 @@ slow-timeout = { period = "60s" } filter = 'binary_id(cap-rendering) and test(/^decoder::model::/)' threads-required = 3 +# Wall-clock tests run first and alone. crash_safety hands frames to a +# real-time VideoToolbox session on a 30 fps schedule, and realtime_loop +# counts the frames playback presents against the clock. Sharing the runner +# with the seek storms, chaos and export tests starves them. On macOS, +# crash/equality lost 3 to 7 frames in 6 shared runs and passed in all 6 +# solo reruns; realtime30 presented 65% of its frames shared and passed solo. +[[profile.default.overrides]] +filter = '(binary_id(cap-verify::crash) and test(=crash_safety)) or (binary_id(cap-verify::playback) and test(=realtime_loop))' +threads-required = "num-test-threads" +priority = 100 + [profile.ci] # No retries: a flaky case is a bug. run.sh reruns failures once afterwards # only to label them flaky in the job summary; the job still fails. @@ -31,6 +42,12 @@ store-failure-output = true filter = 'binary_id(cap-rendering) and test(/^decoder::model::/)' threads-required = 3 +# Wall-clock tests run first and alone, as in the default profile. +[[profile.ci.overrides]] +filter = '(binary_id(cap-verify::crash) and test(=crash_safety)) or (binary_id(cap-verify::playback) and test(=realtime_loop))' +threads-required = "num-test-threads" +priority = 100 + # The FULL-tier seek storms (3000 seeks per decoder) are the slowest tests: # on the macos-15 runner one storm fixture takes 240 to 570 s per decoder,