CacheOnReadFS: erroneous NotExists error

This commit is contained in:
Chris Roche 2017-09-04 20:34:40 -07:00
parent ee1bd8ee15
commit 655d0bd1f1
1 changed files with 36 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package afero package afero
import ( import (
"bytes"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"os" "os"
@ -366,3 +367,38 @@ func TestUnionCacheExpire(t *testing.T) {
t.Errorf("cache time failed: <%s>", data) t.Errorf("cache time failed: <%s>", data)
} }
} }
func TestCacheOnReadFs_Open_NotInLayer(t *testing.T) {
base := NewMemMapFs()
layer := NewMemMapFs()
fs := NewCacheOnReadFs(base, layer, 0)
fh, err := base.Create("/file.txt")
if err != nil {
t.Fatal("unable to create file: ", err)
}
txt := []byte("This is a test")
fh.Write(txt)
fh.Close()
fh, err = fs.Open("/file.txt")
if err != nil {
t.Fatal("could not open file: ", err)
}
b, err := ReadAll(fh)
fh.Close()
if err != nil {
t.Fatal("could not read file: ", err)
} else if !bytes.Equal(txt, b) {
t.Fatalf("wanted file text %q, got %q", txt, b)
}
fh, err = layer.Open("/file.txt")
if err != nil {
t.Fatal("could not open file from layer: ", err)
}
fh.Close()
}