MCPcopy
hub / github.com/rclone/rclone / TestRWFileModTimeWithOpenWriters

Function TestRWFileModTimeWithOpenWriters

vfs/read_write_test.go:652–685  ·  view source on GitHub ↗

tests mod time on open files

(t *testing.T)

Source from the content-addressed store, hash-verified

650
651// tests mod time on open files
652func TestRWFileModTimeWithOpenWriters(t *testing.T) {
653 r, vfs, fh := rwHandleCreateWriteOnly(t)
654 if !canSetModTime(t, r) {
655 t.Skip("can't set mod time")
656 }
657
658 mtime := time.Date(2012, time.November, 18, 17, 32, 31, 0, time.UTC)
659
660 _, err := fh.Write([]byte{104, 105})
661 require.NoError(t, err)
662
663 err = fh.Node().SetModTime(mtime)
664 require.NoError(t, err)
665
666 // Using Flush/Release to mimic mount instead of Close
667
668 err = fh.Flush()
669 require.NoError(t, err)
670
671 err = fh.Release()
672 require.NoError(t, err)
673
674 info, err := vfs.Stat("file1")
675 require.NoError(t, err)
676
677 if r.Fremote.Precision() != fs.ModTimeNotSupported {
678 // avoid errors because of timezone differences
679 assert.Equal(t, info.ModTime().Unix(), mtime.Unix(), fmt.Sprintf("Time mismatch: %v != %v", info.ModTime(), mtime))
680 }
681
682 file1 := fstest.NewItem("file1", "hi", mtime)
683 vfs.WaitForWriters(waitForWritersDelay)
684 r.CheckRemoteItems(t, file1)
685}
686
687func TestRWCacheRename(t *testing.T) {
688 opt := vfscommon.Opt

Callers

nothing calls this directly

Calls 14

NewItemFunction · 0.92
rwHandleCreateWriteOnlyFunction · 0.85
canSetModTimeFunction · 0.85
WaitForWritersMethod · 0.80
CheckRemoteItemsMethod · 0.80
WriteMethod · 0.65
SetModTimeMethod · 0.65
NodeMethod · 0.65
FlushMethod · 0.65
ReleaseMethod · 0.65
StatMethod · 0.65
PrecisionMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…