mirror of https://github.com/spf13/afero.git
This commit is contained in:
parent
5c4385aa20
commit
cf893f2c67
|
@ -245,7 +245,7 @@ func (m *MemMapFs) OpenFile(name string, flag int, perm os.FileMode) (File, erro
|
||||||
perm &= chmodBits
|
perm &= chmodBits
|
||||||
chmod := false
|
chmod := false
|
||||||
file, err := m.openWrite(name)
|
file, err := m.openWrite(name)
|
||||||
if err == nil && (flag&os.O_EXCL > 0) {
|
if err == nil && (flag&(os.O_CREATE|os.O_EXCL)) == (os.O_CREATE|os.O_EXCL) {
|
||||||
return nil, &os.PathError{Op: "open", Path: name, Err: ErrFileExists}
|
return nil, &os.PathError{Op: "open", Path: name, Err: ErrFileExists}
|
||||||
}
|
}
|
||||||
if os.IsNotExist(err) && (flag&os.O_CREATE > 0) {
|
if os.IsNotExist(err) && (flag&os.O_CREATE > 0) {
|
||||||
|
|
|
@ -918,3 +918,25 @@ func TestMemMapFsRename(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMemMapCreateThenOpen(t *testing.T) {
|
||||||
|
fs := NewMemMapFs()
|
||||||
|
filePath := "/test/data.txt"
|
||||||
|
err := fs.MkdirAll("/test", 0744)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
f1, err := fs.OpenFile(filePath, os.O_CREATE|os.O_RDWR|os.O_EXCL, 0644)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
err = f1.Close()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
f2, err := fs.OpenFile(filePath, os.O_RDWR|os.O_EXCL, 0644)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
f2.Close()
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue