返回 DeepSeek-Reasonix
restore_identity_test.go
根目录 / internal / checkpoint / restore_identity_test.go
1 package checkpoint
2
3 import (
4 "os"
5 "path/filepath"
6 "testing"
7 )
8
9 func TestPrecheckSkipsAlreadyRestoredImage(t *testing.T) {
10 root := t.TempDir()
11 dir := filepath.Join(t.TempDir(), "ckpt")
12 target := filepath.Join(root, "a.txt")
13 if err := os.WriteFile(target, []byte("before"), 0o644); err != nil {
14 t.Fatal(err)
15 }
16 s := New(dir, root)
17 s.Begin(0, "edit", 0)
18 s.CaptureBefore(target, CaptureBeforeOpts{})
19 if err := os.WriteFile(target, []byte("after"), 0o644); err != nil {
20 t.Fatal(err)
21 }
22 s.CaptureAfter(target, CaptureAfterOpts{Seq: 1})
23 s.Begin(1, "next", 1)
24
25 if conflicts := s.precheckFiles(0); len(conflicts) != 0 {
26 t.Fatalf("after-image should be owned: %+v", conflicts)
27 }
28 if err := os.WriteFile(target, []byte("before"), 0o644); err != nil {
29 t.Fatal(err)
30 }
31 if conflicts := s.precheckFiles(0); len(conflicts) != 0 {
32 t.Fatalf("already-restored before-image must not conflict: %+v", conflicts)
33 }
34 }
35
35 lines GO