mirror of
				https://github.com/rclone/rclone.git
				synced 2025-10-30 23:17:59 +02:00 
			
		
		
		
	vfs: make integration TestDirEntryModTimeInvalidation test more reliable
Before this change it was not taking the Precision of the remote into account.
This commit is contained in:
		| @@ -669,21 +669,22 @@ func TestDirEntryModTimeInvalidation(t *testing.T) { | ||||
| 		t.Skip("dirent modtime is unreliable on Windows filesystems") | ||||
| 	} | ||||
|  | ||||
| 	// Needs to be less than 2x the wait time below, othewrwise the entry | ||||
| 	// gets cleared out before it had a chance to be updated. | ||||
| 	vfs.Opt.DirCacheTime = fs.Duration(50 * time.Millisecond) | ||||
|  | ||||
| 	r.WriteObject(context.Background(), "dir/file1", "file1 contents", t1) | ||||
|  | ||||
| 	// Read the modtime of the directory fresh | ||||
| 	vfs.FlushDirCache() | ||||
| 	node, err := vfs.Stat("dir") | ||||
| 	require.NoError(t, err) | ||||
| 	modTime1 := node.(*Dir).DirEntry().ModTime(context.Background()) | ||||
|  | ||||
| 	// Wait some time, then write another file which must update ModTime of | ||||
| 	// the directory. | ||||
| 	time.Sleep(75 * time.Millisecond) | ||||
| 	// Wait some time (we wait for Precision+10%), then write another file | ||||
| 	// which should update the ModTime of the directory. | ||||
| 	prec := (11 * vfs.f.Precision()) / 10 | ||||
| 	time.Sleep(max(100*time.Millisecond, prec)) | ||||
| 	r.WriteObject(context.Background(), "dir/file2", "file2 contents", t2) | ||||
|  | ||||
| 	// Read the modtime of the directory fresh again - it should have changed | ||||
| 	vfs.FlushDirCache() | ||||
| 	node2, err := vfs.Stat("dir") | ||||
| 	require.NoError(t, err) | ||||
| 	modTime2 := node2.(*Dir).DirEntry().ModTime(context.Background()) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user