vfs: fix applying modtime for an open Write Handle
The symptom of this was that the time set when the file was open was lost. This was causing one of the mount tests to fail too.
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/ncw/rclone/fs"
|
||||
"github.com/ncw/rclone/fstest"
|
||||
@@ -562,3 +563,27 @@ func TestRWFileHandleOpenTests(t *testing.T) {
|
||||
testRWFileHandleOpenTest(t, vfs, &test)
|
||||
}
|
||||
}
|
||||
|
||||
// tests mod time on open files
|
||||
func TestRWFileModTimeWithOpenWriters(t *testing.T) {
|
||||
r := fstest.NewRun(t)
|
||||
defer r.Finalise()
|
||||
vfs, fh := rwHandleCreateWriteOnly(t, r)
|
||||
|
||||
mtime := time.Date(2012, 11, 18, 17, 32, 31, 0, time.UTC)
|
||||
|
||||
_, err := fh.Write([]byte{104, 105})
|
||||
require.NoError(t, err)
|
||||
|
||||
err = fh.Node().SetModTime(mtime)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = fh.Close()
|
||||
require.NoError(t, err)
|
||||
|
||||
info, err := vfs.Stat("file1")
|
||||
require.NoError(t, err)
|
||||
|
||||
// avoid errors because of timezone differences
|
||||
assert.Equal(t, info.ModTime().Unix(), mtime.Unix())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user