test(isolation): cover CRLF checkout during first-Finish recovery

Problem: Windows CI rejected successfully recovered isolated output because the new boot assertion required LF bytes.

Root cause: Git checkout may apply core.autocrlf conversion; recovery preserves the expected text with CRLF.

Fix: explicitly enable autocrlf in the disposable repository and normalize CRLF for the content assertion, retaining same-ID recovery and source-before-apply checks.

Verification: the old assertion compiles and deterministically fails with CRLF on macOS; the repaired four boot regressions pass under race (6 test/subtest events). Required builtin/boot pass (2291 passes, 66 existing conditional skips); vet, lint, make check and formatting pass. Native Windows replacement CI remains pending.
This commit is contained in:
SivanCola committed 2026-10-25 09:36:50 +08:00
1 parent d816d53347
commit cf5fedae64
1 file changed
+2 -1
@@ -66,6 +66,7 @@ kind = "`+kind+`"
model = "x"
`)
gitInDir(t, dir, "init", "-q")
gitInDir(t, dir, "config", "core.autocrlf", "true")
mirrorToUserConfigAt(t, home, dir)
gitInDir(t, dir, "add", "-A")
gitInDir(t, dir, "commit", "-q", "-m", "init")
@@ -114,7 +115,7 @@ model = "x"
t.Fatalf("same-ID apply after controller reconstruction: %q", applied)
}
raw, err := os.ReadFile(filepath.Join(dir, "out.txt"))
if err != nil || string(raw) != "made in isolation\n" {
if err != nil || strings.ReplaceAll(string(raw), "\r\n", "\n") != "made in isolation\n" {
t.Fatalf("retained work after restart = %q, %v", raw, err)
}
}