5849898283
Unit tests functional and coverage back to 100% Add more routes to dictionary, add more credentials, add default port 5554, rename cameradar logs ENV variable, improve unit test readability, remove tmp file
63 lines
1.3 KiB
Go
63 lines
1.3 KiB
Go
package afero
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestCopyOnWrite(t *testing.T) {
|
|
osFs := NewOsFs()
|
|
writeDir, err := TempDir(osFs, "", "copy-on-write-test")
|
|
if err != nil {
|
|
t.Fatal("error creating tempDir", err)
|
|
}
|
|
defer osFs.RemoveAll(writeDir)
|
|
|
|
compositeFs := NewCopyOnWriteFs(NewReadOnlyFs(NewOsFs()), osFs)
|
|
|
|
var dir = filepath.Join(writeDir, "some/path")
|
|
|
|
err = compositeFs.MkdirAll(dir, 0744)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
_, err = compositeFs.Create(filepath.Join(dir, "newfile"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// https://github.com/spf13/afero/issues/189
|
|
// We want the composite file system to behave like the OS file system
|
|
// on Mkdir and MkdirAll
|
|
for _, fs := range []Fs{osFs, compositeFs} {
|
|
err = fs.Mkdir(dir, 0744)
|
|
if err == nil || !os.IsExist(err) {
|
|
t.Errorf("Mkdir: Got %q for %T", err, fs)
|
|
}
|
|
|
|
// MkdirAll does not return an error when the directory already exists
|
|
err = fs.MkdirAll(dir, 0744)
|
|
if err != nil {
|
|
t.Errorf("MkdirAll: Got %q for %T", err, fs)
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
func TestCopyOnWriteFileInMemMapBase(t *testing.T) {
|
|
base := &MemMapFs{}
|
|
layer := &MemMapFs{}
|
|
|
|
if err := WriteFile(base, "base.txt", []byte("base"), 0755); err != nil {
|
|
t.Fatalf("Failed to write file: %s", err)
|
|
}
|
|
|
|
ufs := NewCopyOnWriteFs(base, layer)
|
|
|
|
_, err := ufs.Stat("base.txt")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|