test(windows): native_git_mirror-flakiness op de spiegel-CI wegnemen (#933) #937
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!937
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/933-native-git-mirror-flaky"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Neemt de intermitterende roodkleuring van
test/native_git_mirror_test.dartopde volledige-matrix-CI van de GitHub-spiegel (
Test (windows-2022)) weg. Het isbestaande, Windows-specifieke flakiness — niet door #926/#928 veroorzaakt.
Twee oorzaken, allebei onder gelijktijdige belasting
TimeoutException after 0:00:30— de echte git-subprocessen (clone/commit/push/diff) halen de standaard-testlimiet van 30s niet als
flutter testmeerdere git-zware bestanden tegelijk draait; git is traag op de Windows-CI.
PathAccessException ... errno = 32— detearDownkreeg de tempmap nietweg omdat git (of de virusscanner) de handle nog vasthield, waarna de map de
volgende test besmette (
destination path '…/seed' already exists).Aanpak (de eerste twee uit de issue)
test/support/temp_dir.dart—deleteTempDirprobeert de recursieve delete een paar keer opnieuw met eenkorte pauze (het bekende errno-32-patroon) en berust na de laatste poging
zonder te gooien: een achtergebleven map in de wegwerp-
systemTempvan eenCI-runner is onschadelijk, maar een
tearDowndie gooit velt een geslaagdetest. Beide
tearDowns in de suite gebruiken hem nu.@OnPlatform-annotatie geeft dehele suite op Windows drie minuten per test; elders blijft de strakke 30s
staan, zodat een echte vastloper lokaal snel opvalt.
Aanpak 3 uit de issue (de groep minder gelijktijdig draaien) is bewust niet
gedaan: die verlengt de hele Windows-leg, en 1+2 zouden het grootste deel van de
cascade al moeten wegnemen. Achter de hand als de spiegel-CI nog rood blijft.
Regressietest
test/support_temp_dir_test.dartbewijst de herhaal-lus met een geïnjecteerdedelete (twee keer geweigerd → derde poging lukt; en: na de laatste poging berust
het zonder te gooien). De échte Windows-vergrendeling is op macOS niet na te
bootsen, dus dít is de vorm die het gedrág vastlegt dat de flakiness wegneemt.
Bewaker
Overgeslagen — bewust, niet stilzwijgend. Dit is een test-only wijziging: geen
bestandsformaat, opslag, afhankelijkheid, uitgaand verkeer of publieke belofte
geraakt.
Poorten
make check— groen (opmaak, analyse, conventies, privacygrens, methodelengte,dode code, hardgecodeerde tekst, commentaartaal, de volledige testsuite, de
dekkingsvloer én de per-bestand-vloer).
make check-secrets— schoon (gitleaks: geen lekken; trufflehog: 0 geheimen).make sast— 0 bevindingen (semgrep, lokale regels).geserveerde weboppervlak verandert niet.
Verificatie
Niet lokaal te reproduceren (macOS). De bevestiging komt van de spiegel-CI
(~46 min/ronde): de Windows-leg hoort na deze wijziging groen te blijven.