[P1][tests] Remplacer les temporisations et fixtures pw-record racy par des barrières #3

Open
opened 2026-07-31 21:05:10 +00:00 by mathieu · 1 comment
Owner

Constat

Les faux pw-record publient parfois un WAV valide avant d'installer leur trap (internal/cli/schema_test.go:116-123, internal/acceptance/acceptance_test.go:827-841). D'autres scénarios utilisent des sleep pour imposer l'ordre et des compteurs cumulés entre sous-tests (internal/acceptance/acceptance_test.go:466-496, :752-975). Cela produit des flakes sous -race.

Tâche

Installer les handlers avant tout signal de readiness, remplacer les délais d'ordonnancement par des canaux/barrières, et vérifier les appels externes par delta local à chaque scénario.

Critères d'acceptation

  • Une fixture ne devient jamais ready avant d'être interruptible.
  • Aucun sleep ne sert à établir un ordre concurrent.
  • Aucun descendant de fixture ne survit.
  • Les tests ciblés passent 100 fois sous race sans allonger les délais de production.

Validation

go test -race -count=100 ./internal/cli -run 'TestRealComposableCommandResultsConformToContract' && go test -race -count=20 ./internal/acceptance

## Constat Les faux `pw-record` publient parfois un WAV valide avant d'installer leur trap (`internal/cli/schema_test.go:116-123`, `internal/acceptance/acceptance_test.go:827-841`). D'autres scénarios utilisent des `sleep` pour imposer l'ordre et des compteurs cumulés entre sous-tests (`internal/acceptance/acceptance_test.go:466-496`, `:752-975`). Cela produit des flakes sous `-race`. ## Tâche Installer les handlers avant tout signal de readiness, remplacer les délais d'ordonnancement par des canaux/barrières, et vérifier les appels externes par delta local à chaque scénario. ## Critères d'acceptation - Une fixture ne devient jamais ready avant d'être interruptible. - Aucun `sleep` ne sert à établir un ordre concurrent. - Aucun descendant de fixture ne survit. - Les tests ciblés passent 100 fois sous race sans allonger les délais de production. ## Validation `go test -race -count=100 ./internal/cli -run 'TestRealComposableCommandResultsConformToContract' && go test -race -count=20 ./internal/acceptance`

Correctif proposé dans la PR #46 : #46. Cette PR est empilée sur la PR #43 et doit être fusionnée après le bloc audio.

Correctif proposé dans la PR #46 : https://git.2027a.net/mathieu/murmur/pulls/46. Cette PR est empilée sur la PR #43 et doit être fusionnée après le bloc audio.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mathieu/murmur#3
No description provided.