...
1
16
17 package continuity
18
19 import (
20 "bytes"
21 "os"
22 "path/filepath"
23 "testing"
24 )
25
26 func TestAtomicWriteFile(t *testing.T) {
27 tmpDir := t.TempDir()
28
29 expected := []byte("barbaz")
30 if err := AtomicWriteFile(filepath.Join(tmpDir, "foo"), expected, 0o666); err != nil {
31 t.Fatalf("Error writing to file: %v", err)
32 }
33
34 actual, err := os.ReadFile(filepath.Join(tmpDir, "foo"))
35 if err != nil {
36 t.Fatalf("Error reading from file: %v", err)
37 }
38
39 if !bytes.Equal(actual, expected) {
40 t.Fatalf("Data mismatch, expected %q, got %q", expected, actual)
41 }
42
43 st, err := os.Stat(filepath.Join(tmpDir, "foo"))
44 if err != nil {
45 t.Fatalf("Error statting file: %v", err)
46 }
47 if expected := os.FileMode(0o666); st.Mode() != expected {
48 t.Fatalf("Mode mismatched, expected %o, got %o", expected, st.Mode())
49 }
50 }
51
View as plain text