fix(test): Windows-testleg op de spiegel-CI groen (padscheiding, spawn-milieu, mock-contracten) #926
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#926
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
De volledige-matrix-CI op de GitHub-spiegel (
brennodewinter/Ocideck,.github/workflows/ci.yml, draait op elke push) heeft een rode Windows-leg (Test (windows-2022)). Linux-gate, macOS, web-hardening, supply-chain en docs zijn groen; alleen Windows faalt, en al langer — alle recente main-pushes falen identiek.Geen release-impact. De echte uitbrengpoort is Forgejo-op-tag (Mac-runner,
make check-no-coverage); die kent geen Windows-leg. De spiegel-Windows-leg is puur een informatief, tweede faalmail-kanaal. Dit issue houdt de rode leg zichtbaar en werkt hem groen.15 falende tests in 8 bestanden — allemaal testbugs
Geen enkele is een productbug: de app gebruikt overal
p.join(platform-eigen),_hardenedEnvdraagt de Windows-essentials (SystemRoot/PATHEXT/PATH), en de pin/guard-argv-opbouw slaagt óók op Windows. Het zijn de tests die POSIX-aannames maken.Padscheiding (
\vs/) — 8 tests, fix =p.joinin de verwachting:test/import/bulk_import_runner_test.dart(5): verwacht/uit/een.md, code levert/uit\een.md.test/slide_dedup_dialogs_test.dart(2): afbeeldingspad in vrije tekst,p.join(projectPath, 'images/foto.png').test/save_destination_dialog_test.dart(1): regels 67 en 73 (regel 64 was al gefixt, deze twee overgeslagen).Padnormalisatie — 1 test, fix =
p.normalize:test/import_note_l10n_test.dart: geeftparseFileeen gemengd pad (lib/services/import\bulk_import_runner.dart) → analyzer eist een genormaliseerd pad.Spawn-milieu — 1 test, fix = Windows-milieu meegeven:
test/git_cli_test.dart:debugSpawn('git', ['--version'])met léég milieu → WindowsCreateProcessfaalt (The parameter is incorrect). Geen echt codepad doet dit; het app-pad (probe(), via_hardenedEnv) slaagt op Windows.Mock-contract — 3 tests, fix = overslaan op Windows mét reden:
test/image_service_coverage_test.dart: hetpasteboard-pakket castt op Windows/Linux het kanaalresultaat naarString(pasteboard_platform_io.dart:41); de mock geeftUint8List(de macOS-contractvorm). De service-logica zelf is platformvrij en wordt op macOS/Linux gedekt.Onbereikbare lokale testserver — 2 tests, fix = echt-server-test overslaan op Windows mét reden:
test/git_native_cert_pin_test.dart(1) entest/git_network_guard_test.dart(1): de enige twee tests die een echte lokale HTTPS-server starten en er échte git tegenaan draaien. Op de windows-2022-runner is die server onbereikbaar (Failed to connect to localhost:52009 after 2 ms). De argv/config-opbouw eromheen slaagt wél op Windows (zustertests groen).Open beveiligingsvraag (aparte opvolging)
De twee echt-server-tests bewaken dat native git
http.curloptResolve(host-pinning) ensslCAInfo(cert-anker) daadwerkelijk honoreert — de NetGuard-belofte op de subproces-git-weg. Dat is op macOS/Linux geverifieerd, maar op Windows gebruikt git vaak schannel i.p.v. openssl/curl, waarsslCAInfoanders (of niet) werkt. Omdat de verbinding op de runner niet eens tot stand komt, is dit hier niet te beantwoorden. Openhouden: honoreert native git op WindowscurloptResolve/sslCAInfo? Vraagt verificatie op een echte Windows-machine, niet enkel groen maken.Opgelost en gemerged in #928 (merge-commit
ba0853a508op main).De 15 deterministische testbugs uit dit issue zijn op de spiegel-Windows-leg groen: op branch-run 30310360646 slaagden alle acht betrokken bestanden (bulk_import_runner, save_destination_dialog, slide_dedup_dialogs, import_note_l10n, git_cli, image_service_coverage, git_native_cert_pin, git_network_guard).
make checklokaal volledig groen, secrets- en SAST-scan schoon.Twee zaken losgekoppeld als eigen issue: