mountlib: ensure we don't open files with read and write intent
This commit is contained in:
parent
8951875c21
commit
d7908c06c9
3 changed files with 10 additions and 7 deletions
|
@ -28,6 +28,11 @@ func TestFileModTime(t *testing.T) {
|
||||||
run.rm(t, "file")
|
run.rm(t, "file")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// os.Create without opening for write too
|
||||||
|
func osCreate(name string) (*os.File, error) {
|
||||||
|
return os.OpenFile(name, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
|
||||||
|
}
|
||||||
|
|
||||||
// TestFileModTimeWithOpenWriters tests mod time on open files
|
// TestFileModTimeWithOpenWriters tests mod time on open files
|
||||||
func TestFileModTimeWithOpenWriters(t *testing.T) {
|
func TestFileModTimeWithOpenWriters(t *testing.T) {
|
||||||
run.skipIfNoFUSE(t)
|
run.skipIfNoFUSE(t)
|
||||||
|
@ -35,7 +40,7 @@ func TestFileModTimeWithOpenWriters(t *testing.T) {
|
||||||
mtime := time.Date(2012, 11, 18, 17, 32, 31, 0, time.UTC)
|
mtime := time.Date(2012, 11, 18, 17, 32, 31, 0, time.UTC)
|
||||||
filepath := run.path("cp-archive-test")
|
filepath := run.path("cp-archive-test")
|
||||||
|
|
||||||
f, err := os.Create(filepath)
|
f, err := osCreate(filepath)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
_, err = f.Write([]byte{104, 105})
|
_, err = f.Write([]byte{104, 105})
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package mounttest
|
package mounttest
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -13,7 +12,7 @@ import (
|
||||||
func TestWriteFileNoWrite(t *testing.T) {
|
func TestWriteFileNoWrite(t *testing.T) {
|
||||||
run.skipIfNoFUSE(t)
|
run.skipIfNoFUSE(t)
|
||||||
|
|
||||||
fd, err := os.Create(run.path("testnowrite"))
|
fd, err := osCreate(run.path("testnowrite"))
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = fd.Close()
|
err = fd.Close()
|
||||||
|
@ -31,7 +30,7 @@ func TestWriteFileNoWrite(t *testing.T) {
|
||||||
func FIXMETestWriteOpenFileInDirListing(t *testing.T) {
|
func FIXMETestWriteOpenFileInDirListing(t *testing.T) {
|
||||||
run.skipIfNoFUSE(t)
|
run.skipIfNoFUSE(t)
|
||||||
|
|
||||||
fd, err := os.Create(run.path("testnowrite"))
|
fd, err := osCreate(run.path("testnowrite"))
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
run.checkDir(t, "testnowrite 0")
|
run.checkDir(t, "testnowrite 0")
|
||||||
|
@ -70,7 +69,7 @@ func TestWriteFileOverwrite(t *testing.T) {
|
||||||
// NB the code for this is in file.go rather than write.go
|
// NB the code for this is in file.go rather than write.go
|
||||||
func TestWriteFileFsync(t *testing.T) {
|
func TestWriteFileFsync(t *testing.T) {
|
||||||
filepath := run.path("to be synced")
|
filepath := run.path("to be synced")
|
||||||
fd, err := os.Create(filepath)
|
fd, err := osCreate(filepath)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = fd.Write([]byte("hello"))
|
_, err = fd.Write([]byte("hello"))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
package mounttest
|
package mounttest
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
|
||||||
"syscall"
|
"syscall"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
@ -14,7 +13,7 @@ import (
|
||||||
func TestWriteFileDoubleClose(t *testing.T) {
|
func TestWriteFileDoubleClose(t *testing.T) {
|
||||||
run.skipIfNoFUSE(t)
|
run.skipIfNoFUSE(t)
|
||||||
|
|
||||||
out, err := os.Create(run.path("testdoubleclose"))
|
out, err := osCreate(run.path("testdoubleclose"))
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
fd := out.Fd()
|
fd := out.Fd()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue