diff options
Diffstat (limited to 'vendor/github.com/spf13/afero/composite_test.go')
-rw-r--r-- | vendor/github.com/spf13/afero/composite_test.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/vendor/github.com/spf13/afero/composite_test.go b/vendor/github.com/spf13/afero/composite_test.go index e8ac1a818..8e44611dc 100644 --- a/vendor/github.com/spf13/afero/composite_test.go +++ b/vendor/github.com/spf13/afero/composite_test.go @@ -1,6 +1,7 @@ package afero import ( + "bytes" "fmt" "io/ioutil" "os" @@ -366,3 +367,38 @@ func TestUnionCacheExpire(t *testing.T) { t.Errorf("cache time failed: <%s>", data) } } + +func TestCacheOnReadFsNotInLayer(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() +} |