github.com/lixiangzhong/afero@v1.1.1/copyOnWriteFs_test.go (about) 1 package afero 2 3 import "testing" 4 5 func TestCopyOnWrite(t *testing.T) { 6 var fs Fs 7 var err error 8 base := NewOsFs() 9 roBase := NewReadOnlyFs(base) 10 ufs := NewCopyOnWriteFs(roBase, NewMemMapFs()) 11 12 fs = ufs 13 err = fs.MkdirAll("nonexistent/directory/", 0744) 14 if err != nil { 15 t.Error(err) 16 return 17 } 18 _, err = fs.Create("nonexistent/directory/newfile") 19 if err != nil { 20 t.Error(err) 21 return 22 } 23 24 } 25 26 func TestCopyOnWriteFileInMemMapBase(t *testing.T) { 27 base := &MemMapFs{} 28 layer := &MemMapFs{} 29 30 if err := WriteFile(base, "base.txt", []byte("base"), 0755); err != nil { 31 t.Fatalf("Failed to write file: %s", err) 32 } 33 34 ufs := NewCopyOnWriteFs(base, layer) 35 36 _, err := ufs.Stat("base.txt") 37 if err != nil { 38 t.Fatal(err) 39 } 40 }