github.com/trdyer/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  }