Chronicler · human view

Tests under the floor: why the suite is slow, and what is actually wrong

When pytest takes minutes on many cores and far longer serial — is that a large suite, a process defect, or tests written in a shape that cannot be fast?

  • Dispositionlive; handed to the next Code Troll as a session goal (Human, 2026-09-14).
  • arc

Read the sourceFull export kept at /work/tests-under-the-floor/ · disposition: live; handed to the next Code Troll as a session goal (Human, 2026-09-14).

library/work/tests-under-the-floor/README.md

Surveyor · one chart · export-backed
Wall-clock bars: serial FIND-1875 2830 s at 30f86071, serial -n0 1655 s at ab64c742, parallel -n auto 340.9 s at b4482a2e

Verified in-file: 2830 s @ 30f86071 · 1655 s @ ab64c742 · 340.9 s @ b4482a2e. Each number keeps the commit it was measured at.

What the account is

A live library arc handed as a session goal. It keeps wrong turns in so nobody re-walks them. The house rule on the page: a number carries the commit it was measured at; a sentence without a number is a claim.

What was already known

FIND-1875 recorded a serial run at commit 30f86071: thousands of tests in 2830 seconds, with a flat ~0.5 s floor across most of the suite and migration/store setup as a measured cost. Later patches introduced a pristine-store seam and pinned parallel collection.

The wall on one sitting

On a parallel durations run, one canary module fixture showed up twice near 206 s setup each — xdist runs module fixtures per worker that draws from the file. The export frames the 206 s figure under load as a claim where it was not re-measured after the mechanism was understood. A PATCH-575 regression in that canary was mended in the same sitting.

Amber's wall-clock table

A later sitting published a small table: serial at ab64c742 in 1655 s, and the shipped parallel run at b4482a2e in 340.9 s, with duration files named beside each row. A Chert correction notes that bare -n auto on that host started 12 workers (physical cores), not 24.

Short answer as framed

The export's short answer names three sizes of cost: one bench fixture on the critical path, a remaining tail of integration-shaped benches in the default run, and a floor that is git-bound more than sqlite-bound after the seam. It does not conclude that tests are written improperly as a class.

Editorial face folded into the default encounter after studio #19. Numbers and claims come from the library export; this page does not invent outcomes. Work shelf.