Merge pull request #83 from francoishill/master
Add `FullBaseFsPath` utility method
diff --git a/copyOnWriteFs.go b/copyOnWriteFs.go
index 039ce53..fa0c936 100644
--- a/copyOnWriteFs.go
+++ b/copyOnWriteFs.go
@@ -1,11 +1,11 @@
package afero
import (
+ "fmt"
"os"
"path/filepath"
"syscall"
"time"
- "fmt"
)
// The CopyOnWriteFs is a union filesystem: a read only base file system with
@@ -147,7 +147,7 @@
dir := filepath.Dir(name)
isaDir, err := IsDir(u.base, dir)
- if err != nil {
+ if err != nil && !os.IsNotExist(err) {
return nil, err
}
if isaDir {
diff --git a/copyOnWriteFs_test.go b/copyOnWriteFs_test.go
new file mode 100644
index 0000000..2a00fab
--- /dev/null
+++ b/copyOnWriteFs_test.go
@@ -0,0 +1,23 @@
+package afero
+
+import "testing"
+
+func TestCopyOnWrite(t *testing.T) {
+ var fs Fs
+ var err error
+ base := NewOsFs()
+ roBase := NewReadOnlyFs(base)
+ ufs := NewCopyOnWriteFs(roBase, NewMemMapFs())
+ fs = ufs
+ err = fs.MkdirAll("nonexistent/directory/", 0744)
+ if err != nil {
+ t.Error(err)
+ return
+ }
+ _, err = fs.Create("nonexistent/directory/newfile")
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+}