Pre-fix test suite for 7 Windows-specific findings. All tests are SHARED (no build tags) — they compile and run on Linux using source file inspection and direct function calls. Tests added: - F-C1-1 HIGH: Winget PATH-only search (2 tests) - F-C1-2 MEDIUM: Winget text parser spaces bug (4 tests) - F-C1-3 HIGH: Ghost updates — no post-install verification (3 tests) - F-C1-4 RESOLVED: Service auto-restart already configured (1 test) - F-C1-5 HIGH: Duplicated polling loop missing B-2 fixes (5 tests) - F-C1-6 LOW: Winget uses fmt.Printf (2 tests) - F-C1-7 LOW: Service has emojis in logs (2 tests) Current state: 8 FAIL, 11 PASS. All prior tests pass. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB
C-1 Pre-Fix Test Suite
Date: 2026-03-29 Branch: culurien Purpose: Document Windows-specific bugs BEFORE fixes. Reference: docs/C1_Windows_Audit.md
Test Files
| File | Package | Tag | Bugs |
|---|---|---|---|
scanner/winget_path_test.go |
scanner |
SHARED | F-C1-1 |
scanner/winget_parser_test.go |
scanner |
SHARED | F-C1-2, F-C1-8 |
scanner/winget_logging_test.go |
scanner |
SHARED | F-C1-6 |
scanner/windows_ghost_test.go |
scanner |
SHARED | F-C1-3 |
scanner/windows_service_parity_test.go |
scanner |
SHARED | F-C1-4, F-C1-5, F-C1-7 |
All tests read source files as text — no Windows APIs needed. All compile and run on Linux. Zero platform-specific imports.
State-Change Summary
| Test | Bug | Current | After Fix |
|---|---|---|---|
| TestWingetSearchesPathOnly | F-C1-1 | PASS | update |
| TestWingetChecksKnownInstallLocations | F-C1-1 | FAIL | PASS |
| TestWingetTextParserHandlesSpacesInPackageNames | F-C1-2 | FAIL | PASS |
| TestWingetTextParserCurrentlyBreaksOnSpaces | F-C1-2 | PASS | update |
| TestWingetJsonParserHandlesSpacesInPackageNames | F-C1-2 | PASS | PASS |
| TestWingetParserReturnsConsistentStructure | F-C1-2 | PASS | PASS |
| TestWindowsUpdateInstallerHasNoPostInstallVerification | F-C1-3 | PASS | update |
| TestWindowsUpdateInstallerVerifiesPostInstallState | F-C1-3 | FAIL | PASS |
| TestWindowsUpdateSearchCriteriaExcludesInstalled | F-C1-3 | PASS | PASS |
| TestWindowsServiceHasAutoRestartOnCrash | F-C1-4 | PASS | PASS |
| TestWindowsServicePollingLoopHasFixedJitter | F-C1-5 | PASS | update |
| TestWindowsServicePollingLoopHasProportionalJitter | F-C1-5 | FAIL | PASS |
| TestWindowsServicePollingLoopHasNoExponentialBackoff | F-C1-5 | PASS | update |
| TestWindowsServicePollingLoopHasExponentialBackoff | F-C1-5 | FAIL | PASS |
| TestPollingLoopIsNotDuplicated | F-C1-5 | FAIL | PASS |
| TestWingetScannerUsesStructuredLogging | F-C1-6 | PASS | update |
| TestWingetScannerHasNoFmtPrintf | F-C1-6 | FAIL | PASS |
| TestWindowsServiceHasEmojiInLogs | F-C1-7 | PASS | update |
| TestWindowsServiceHasNoEmojiInLogs | F-C1-7 | FAIL | PASS |
8 FAIL (assert post-fix), 11 PASS (document state).
Notes
- F-C1-4 was resolved during testing:
SetRecoveryActionsalready exists in the service code. The audit finding was incorrect. - All tests are SHARED (no build tags) — they read source files as text.
- Winget parser tests (Part 2) call Go functions directly — they test pure parsing logic.
- All prior B-2 and A-series agent tests continue to pass.