...
1
16
17 package fileutil
18
19 import (
20 "bytes"
21 "os"
22 "path/filepath"
23 "testing"
24 )
25
26 func TestAtomicWriteFile(t *testing.T) {
27 dir := t.TempDir()
28
29 testpath := filepath.Join(dir, "test")
30 stringContent := "Test content"
31 reader := bytes.NewReader([]byte(stringContent))
32 mode := os.FileMode(0644)
33
34 err := AtomicWriteFile(testpath, reader, mode)
35 if err != nil {
36 t.Errorf("AtomicWriteFile error: %s", err)
37 }
38
39 got, err := os.ReadFile(testpath)
40 if err != nil {
41 t.Fatal(err)
42 }
43
44 if stringContent != string(got) {
45 t.Fatalf("expected: %s, got: %s", stringContent, string(got))
46 }
47
48 gotinfo, err := os.Stat(testpath)
49 if err != nil {
50 t.Fatal(err)
51 }
52
53 if mode != gotinfo.Mode() {
54 t.Fatalf("expected %s: to be the same mode as %s",
55 mode, gotinfo.Mode())
56 }
57 }
58
View as plain text