mirror of
https://github.com/rclone/rclone.git
synced 2025-12-11 22:14:05 +01:00
🧪 fstest: fix time tests on Windows and add convenience methods to check local and remote fs with precision
Previously only the fs being checked on gets passed to GetModifyWindow(). However, in most tests, the test files are generated in the local fs and transferred to the remote fs. So the local fs time precision has to be taken into account. This meant that on Windows the time tests failed because the local fs has a time precision of 100ns. Checking remote items uploaded from local fs on Windows also requires a modify window of 100ns.
This commit is contained in:
@@ -80,7 +80,7 @@ func TestLsd(t *testing.T) {
|
||||
defer r.Finalise()
|
||||
file1 := r.WriteObject(ctx, "sub dir/hello world", "hello world", t1)
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file1)
|
||||
r.CheckRemoteItems(t, file1)
|
||||
|
||||
var buf bytes.Buffer
|
||||
err := operations.ListDir(ctx, r.Fremote, &buf)
|
||||
@@ -96,7 +96,7 @@ func TestLs(t *testing.T) {
|
||||
file1 := r.WriteBoth(ctx, "potato2", "------------------------------------------------------------", t1)
|
||||
file2 := r.WriteBoth(ctx, "empty space", "-", t2)
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file1, file2)
|
||||
r.CheckRemoteItems(t, file1, file2)
|
||||
|
||||
var buf bytes.Buffer
|
||||
err := operations.List(ctx, r.Fremote, &buf)
|
||||
@@ -114,7 +114,7 @@ func TestLsWithFilesFrom(t *testing.T) {
|
||||
file1 := r.WriteBoth(ctx, "potato2", "------------------------------------------------------------", t1)
|
||||
file2 := r.WriteBoth(ctx, "empty space", "-", t2)
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file1, file2)
|
||||
r.CheckRemoteItems(t, file1, file2)
|
||||
|
||||
// Set the --files-from equivalent
|
||||
f, err := filter.NewFilter(nil)
|
||||
@@ -146,7 +146,7 @@ func TestLsLong(t *testing.T) {
|
||||
file1 := r.WriteBoth(ctx, "potato2", "------------------------------------------------------------", t1)
|
||||
file2 := r.WriteBoth(ctx, "empty space", "-", t2)
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file1, file2)
|
||||
r.CheckRemoteItems(t, file1, file2)
|
||||
|
||||
var buf bytes.Buffer
|
||||
err := operations.ListLong(ctx, r.Fremote, &buf)
|
||||
@@ -189,7 +189,7 @@ func TestHashSums(t *testing.T) {
|
||||
file1 := r.WriteBoth(ctx, "potato2", "------------------------------------------------------------", t1)
|
||||
file2 := r.WriteBoth(ctx, "empty space", "-", t2)
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file1, file2)
|
||||
r.CheckRemoteItems(t, file1, file2)
|
||||
|
||||
hashes := r.Fremote.Hashes()
|
||||
|
||||
@@ -350,7 +350,7 @@ func TestCount(t *testing.T) {
|
||||
file2 := r.WriteBoth(ctx, "empty space", "-", t2)
|
||||
file3 := r.WriteBoth(ctx, "sub dir/potato3", "hello", t2)
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file1, file2, file3)
|
||||
r.CheckRemoteItems(t, file1, file2, file3)
|
||||
|
||||
// Check the MaxDepth too
|
||||
ci.MaxDepth = 1
|
||||
@@ -372,11 +372,11 @@ func TestDelete(t *testing.T) {
|
||||
file1 := r.WriteObject(ctx, "small", "1234567890", t2) // 10 bytes
|
||||
file2 := r.WriteObject(ctx, "medium", "------------------------------------------------------------", t1) // 60 bytes
|
||||
file3 := r.WriteObject(ctx, "large", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", t1) // 100 bytes
|
||||
fstest.CheckItems(t, r.Fremote, file1, file2, file3)
|
||||
r.CheckRemoteItems(t, file1, file2, file3)
|
||||
|
||||
err = operations.Delete(ctx, r.Fremote)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Fremote, file3)
|
||||
r.CheckRemoteItems(t, file3)
|
||||
}
|
||||
|
||||
func TestRetry(t *testing.T) {
|
||||
@@ -413,7 +413,7 @@ func TestCat(t *testing.T) {
|
||||
file1 := r.WriteBoth(ctx, "file1", "ABCDEFGHIJ", t1)
|
||||
file2 := r.WriteBoth(ctx, "file2", "012345678", t2)
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file1, file2)
|
||||
r.CheckRemoteItems(t, file1, file2)
|
||||
|
||||
for _, test := range []struct {
|
||||
offset int64
|
||||
@@ -678,7 +678,7 @@ func TestCopyURL(t *testing.T) {
|
||||
file1 := r.WriteFile("file1", contents, t1)
|
||||
file2 := r.WriteFile("file2", contents, t1)
|
||||
r.Mkdir(ctx, r.Fremote)
|
||||
fstest.CheckItems(t, r.Fremote)
|
||||
r.CheckRemoteItems(t)
|
||||
|
||||
// check when reading from regular HTTP server
|
||||
status := 0
|
||||
@@ -773,28 +773,28 @@ func TestMoveFile(t *testing.T) {
|
||||
defer r.Finalise()
|
||||
|
||||
file1 := r.WriteFile("file1", "file1 contents", t1)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
r.CheckLocalItems(t, file1)
|
||||
|
||||
file2 := file1
|
||||
file2.Path = "sub/file2"
|
||||
|
||||
err := operations.MoveFile(ctx, r.Fremote, r.Flocal, file2.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal)
|
||||
fstest.CheckItems(t, r.Fremote, file2)
|
||||
r.CheckLocalItems(t)
|
||||
r.CheckRemoteItems(t, file2)
|
||||
|
||||
r.WriteFile("file1", "file1 contents", t1)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
r.CheckLocalItems(t, file1)
|
||||
|
||||
err = operations.MoveFile(ctx, r.Fremote, r.Flocal, file2.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal)
|
||||
fstest.CheckItems(t, r.Fremote, file2)
|
||||
r.CheckLocalItems(t)
|
||||
r.CheckRemoteItems(t, file2)
|
||||
|
||||
err = operations.MoveFile(ctx, r.Fremote, r.Fremote, file2.Path, file2.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal)
|
||||
fstest.CheckItems(t, r.Fremote, file2)
|
||||
r.CheckLocalItems(t)
|
||||
r.CheckRemoteItems(t, file2)
|
||||
}
|
||||
|
||||
func TestMoveFileWithIgnoreExisting(t *testing.T) {
|
||||
@@ -803,24 +803,24 @@ func TestMoveFileWithIgnoreExisting(t *testing.T) {
|
||||
r := fstest.NewRun(t)
|
||||
defer r.Finalise()
|
||||
file1 := r.WriteFile("file1", "file1 contents", t1)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
r.CheckLocalItems(t, file1)
|
||||
|
||||
ci.IgnoreExisting = true
|
||||
|
||||
err := operations.MoveFile(ctx, r.Fremote, r.Flocal, file1.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal)
|
||||
fstest.CheckItems(t, r.Fremote, file1)
|
||||
r.CheckLocalItems(t)
|
||||
r.CheckRemoteItems(t, file1)
|
||||
|
||||
// Recreate file with updated content
|
||||
file1b := r.WriteFile("file1", "file1 modified", t2)
|
||||
fstest.CheckItems(t, r.Flocal, file1b)
|
||||
r.CheckLocalItems(t, file1b)
|
||||
|
||||
// Ensure modified file did not transfer and was not deleted
|
||||
err = operations.MoveFile(ctx, r.Fremote, r.Flocal, file1.Path, file1b.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal, file1b)
|
||||
fstest.CheckItems(t, r.Fremote, file1)
|
||||
r.CheckLocalItems(t, file1b)
|
||||
r.CheckRemoteItems(t, file1)
|
||||
}
|
||||
|
||||
func TestCaseInsensitiveMoveFile(t *testing.T) {
|
||||
@@ -832,31 +832,31 @@ func TestCaseInsensitiveMoveFile(t *testing.T) {
|
||||
}
|
||||
|
||||
file1 := r.WriteFile("file1", "file1 contents", t1)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
r.CheckLocalItems(t, file1)
|
||||
|
||||
file2 := file1
|
||||
file2.Path = "sub/file2"
|
||||
|
||||
err := operations.MoveFile(ctx, r.Fremote, r.Flocal, file2.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal)
|
||||
fstest.CheckItems(t, r.Fremote, file2)
|
||||
r.CheckLocalItems(t)
|
||||
r.CheckRemoteItems(t, file2)
|
||||
|
||||
r.WriteFile("file1", "file1 contents", t1)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
r.CheckLocalItems(t, file1)
|
||||
|
||||
err = operations.MoveFile(ctx, r.Fremote, r.Flocal, file2.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal)
|
||||
fstest.CheckItems(t, r.Fremote, file2)
|
||||
r.CheckLocalItems(t)
|
||||
r.CheckRemoteItems(t, file2)
|
||||
|
||||
file2Capitalized := file2
|
||||
file2Capitalized.Path = "sub/File2"
|
||||
|
||||
err = operations.MoveFile(ctx, r.Fremote, r.Fremote, file2Capitalized.Path, file2.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal)
|
||||
fstest.CheckItems(t, r.Fremote, file2Capitalized)
|
||||
r.CheckLocalItems(t)
|
||||
r.CheckRemoteItems(t, file2Capitalized)
|
||||
}
|
||||
|
||||
func TestMoveFileBackupDir(t *testing.T) {
|
||||
@@ -871,16 +871,16 @@ func TestMoveFileBackupDir(t *testing.T) {
|
||||
ci.BackupDir = r.FremoteName + "/backup"
|
||||
|
||||
file1 := r.WriteFile("dst/file1", "file1 contents", t1)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
r.CheckLocalItems(t, file1)
|
||||
|
||||
file1old := r.WriteObject(ctx, "dst/file1", "file1 contents old", t1)
|
||||
fstest.CheckItems(t, r.Fremote, file1old)
|
||||
r.CheckRemoteItems(t, file1old)
|
||||
|
||||
err := operations.MoveFile(ctx, r.Fremote, r.Flocal, file1.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal)
|
||||
r.CheckLocalItems(t)
|
||||
file1old.Path = "backup/dst/file1"
|
||||
fstest.CheckItems(t, r.Fremote, file1old, file1)
|
||||
r.CheckRemoteItems(t, file1old, file1)
|
||||
}
|
||||
|
||||
func TestCopyFile(t *testing.T) {
|
||||
@@ -889,25 +889,25 @@ func TestCopyFile(t *testing.T) {
|
||||
defer r.Finalise()
|
||||
|
||||
file1 := r.WriteFile("file1", "file1 contents", t1)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
r.CheckLocalItems(t, file1)
|
||||
|
||||
file2 := file1
|
||||
file2.Path = "sub/file2"
|
||||
|
||||
err := operations.CopyFile(ctx, r.Fremote, r.Flocal, file2.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
fstest.CheckItems(t, r.Fremote, file2)
|
||||
r.CheckLocalItems(t, file1)
|
||||
r.CheckRemoteItems(t, file2)
|
||||
|
||||
err = operations.CopyFile(ctx, r.Fremote, r.Flocal, file2.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
fstest.CheckItems(t, r.Fremote, file2)
|
||||
r.CheckLocalItems(t, file1)
|
||||
r.CheckRemoteItems(t, file2)
|
||||
|
||||
err = operations.CopyFile(ctx, r.Fremote, r.Fremote, file2.Path, file2.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
fstest.CheckItems(t, r.Fremote, file2)
|
||||
r.CheckLocalItems(t, file1)
|
||||
r.CheckRemoteItems(t, file2)
|
||||
}
|
||||
|
||||
func TestCopyFileBackupDir(t *testing.T) {
|
||||
@@ -922,16 +922,16 @@ func TestCopyFileBackupDir(t *testing.T) {
|
||||
ci.BackupDir = r.FremoteName + "/backup"
|
||||
|
||||
file1 := r.WriteFile("dst/file1", "file1 contents", t1)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
r.CheckLocalItems(t, file1)
|
||||
|
||||
file1old := r.WriteObject(ctx, "dst/file1", "file1 contents old", t1)
|
||||
fstest.CheckItems(t, r.Fremote, file1old)
|
||||
r.CheckRemoteItems(t, file1old)
|
||||
|
||||
err := operations.CopyFile(ctx, r.Fremote, r.Flocal, file1.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
r.CheckLocalItems(t, file1)
|
||||
file1old.Path = "backup/dst/file1"
|
||||
fstest.CheckItems(t, r.Fremote, file1old, file1)
|
||||
r.CheckRemoteItems(t, file1old, file1)
|
||||
}
|
||||
|
||||
// Test with CompareDest set
|
||||
@@ -947,7 +947,7 @@ func TestCopyFileCompareDest(t *testing.T) {
|
||||
|
||||
// check empty dest, empty compare
|
||||
file1 := r.WriteFile("one", "one", t1)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
r.CheckLocalItems(t, file1)
|
||||
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file1.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
@@ -955,12 +955,12 @@ func TestCopyFileCompareDest(t *testing.T) {
|
||||
file1dst := file1
|
||||
file1dst.Path = "dst/one"
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file1dst)
|
||||
r.CheckRemoteItems(t, file1dst)
|
||||
|
||||
// check old dest, empty compare
|
||||
file1b := r.WriteFile("one", "onet2", t2)
|
||||
fstest.CheckItems(t, r.Fremote, file1dst)
|
||||
fstest.CheckItems(t, r.Flocal, file1b)
|
||||
r.CheckRemoteItems(t, file1dst)
|
||||
r.CheckLocalItems(t, file1b)
|
||||
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file1b.Path, file1b.Path)
|
||||
require.NoError(t, err)
|
||||
@@ -968,41 +968,41 @@ func TestCopyFileCompareDest(t *testing.T) {
|
||||
file1bdst := file1b
|
||||
file1bdst.Path = "dst/one"
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file1bdst)
|
||||
r.CheckRemoteItems(t, file1bdst)
|
||||
|
||||
// check old dest, new compare
|
||||
file3 := r.WriteObject(ctx, "dst/one", "one", t1)
|
||||
file2 := r.WriteObject(ctx, "CompareDest/one", "onet2", t2)
|
||||
file1c := r.WriteFile("one", "onet2", t2)
|
||||
fstest.CheckItems(t, r.Fremote, file2, file3)
|
||||
fstest.CheckItems(t, r.Flocal, file1c)
|
||||
r.CheckRemoteItems(t, file2, file3)
|
||||
r.CheckLocalItems(t, file1c)
|
||||
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file1c.Path, file1c.Path)
|
||||
require.NoError(t, err)
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file2, file3)
|
||||
r.CheckRemoteItems(t, file2, file3)
|
||||
|
||||
// check empty dest, new compare
|
||||
file4 := r.WriteObject(ctx, "CompareDest/two", "two", t2)
|
||||
file5 := r.WriteFile("two", "two", t2)
|
||||
fstest.CheckItems(t, r.Fremote, file2, file3, file4)
|
||||
fstest.CheckItems(t, r.Flocal, file1c, file5)
|
||||
r.CheckRemoteItems(t, file2, file3, file4)
|
||||
r.CheckLocalItems(t, file1c, file5)
|
||||
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file5.Path, file5.Path)
|
||||
require.NoError(t, err)
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file2, file3, file4)
|
||||
r.CheckRemoteItems(t, file2, file3, file4)
|
||||
|
||||
// check new dest, new compare
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file5.Path, file5.Path)
|
||||
require.NoError(t, err)
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file2, file3, file4)
|
||||
r.CheckRemoteItems(t, file2, file3, file4)
|
||||
|
||||
// check empty dest, old compare
|
||||
file5b := r.WriteFile("two", "twot3", t3)
|
||||
fstest.CheckItems(t, r.Fremote, file2, file3, file4)
|
||||
fstest.CheckItems(t, r.Flocal, file1c, file5b)
|
||||
r.CheckRemoteItems(t, file2, file3, file4)
|
||||
r.CheckLocalItems(t, file1c, file5b)
|
||||
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file5b.Path, file5b.Path)
|
||||
require.NoError(t, err)
|
||||
@@ -1010,7 +1010,7 @@ func TestCopyFileCompareDest(t *testing.T) {
|
||||
file5bdst := file5b
|
||||
file5bdst.Path = "dst/two"
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file2, file3, file4, file5bdst)
|
||||
r.CheckRemoteItems(t, file2, file3, file4, file5bdst)
|
||||
}
|
||||
|
||||
// Test with CopyDest set
|
||||
@@ -1031,7 +1031,7 @@ func TestCopyFileCopyDest(t *testing.T) {
|
||||
|
||||
// check empty dest, empty copy
|
||||
file1 := r.WriteFile("one", "one", t1)
|
||||
fstest.CheckItems(t, r.Flocal, file1)
|
||||
r.CheckLocalItems(t, file1)
|
||||
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file1.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
@@ -1039,12 +1039,12 @@ func TestCopyFileCopyDest(t *testing.T) {
|
||||
file1dst := file1
|
||||
file1dst.Path = "dst/one"
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file1dst)
|
||||
r.CheckRemoteItems(t, file1dst)
|
||||
|
||||
// check old dest, empty copy
|
||||
file1b := r.WriteFile("one", "onet2", t2)
|
||||
fstest.CheckItems(t, r.Fremote, file1dst)
|
||||
fstest.CheckItems(t, r.Flocal, file1b)
|
||||
r.CheckRemoteItems(t, file1dst)
|
||||
r.CheckLocalItems(t, file1b)
|
||||
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file1b.Path, file1b.Path)
|
||||
require.NoError(t, err)
|
||||
@@ -1052,7 +1052,7 @@ func TestCopyFileCopyDest(t *testing.T) {
|
||||
file1bdst := file1b
|
||||
file1bdst.Path = "dst/one"
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file1bdst)
|
||||
r.CheckRemoteItems(t, file1bdst)
|
||||
|
||||
// check old dest, new copy, backup-dir
|
||||
|
||||
@@ -1061,8 +1061,8 @@ func TestCopyFileCopyDest(t *testing.T) {
|
||||
file3 := r.WriteObject(ctx, "dst/one", "one", t1)
|
||||
file2 := r.WriteObject(ctx, "CopyDest/one", "onet2", t2)
|
||||
file1c := r.WriteFile("one", "onet2", t2)
|
||||
fstest.CheckItems(t, r.Fremote, file2, file3)
|
||||
fstest.CheckItems(t, r.Flocal, file1c)
|
||||
r.CheckRemoteItems(t, file2, file3)
|
||||
r.CheckLocalItems(t, file1c)
|
||||
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file1c.Path, file1c.Path)
|
||||
require.NoError(t, err)
|
||||
@@ -1071,14 +1071,14 @@ func TestCopyFileCopyDest(t *testing.T) {
|
||||
file2dst.Path = "dst/one"
|
||||
file3.Path = "BackupDir/one"
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file2, file2dst, file3)
|
||||
r.CheckRemoteItems(t, file2, file2dst, file3)
|
||||
ci.BackupDir = ""
|
||||
|
||||
// check empty dest, new copy
|
||||
file4 := r.WriteObject(ctx, "CopyDest/two", "two", t2)
|
||||
file5 := r.WriteFile("two", "two", t2)
|
||||
fstest.CheckItems(t, r.Fremote, file2, file2dst, file3, file4)
|
||||
fstest.CheckItems(t, r.Flocal, file1c, file5)
|
||||
r.CheckRemoteItems(t, file2, file2dst, file3, file4)
|
||||
r.CheckLocalItems(t, file1c, file5)
|
||||
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file5.Path, file5.Path)
|
||||
require.NoError(t, err)
|
||||
@@ -1086,19 +1086,19 @@ func TestCopyFileCopyDest(t *testing.T) {
|
||||
file4dst := file4
|
||||
file4dst.Path = "dst/two"
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file2, file2dst, file3, file4, file4dst)
|
||||
r.CheckRemoteItems(t, file2, file2dst, file3, file4, file4dst)
|
||||
|
||||
// check new dest, new copy
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file5.Path, file5.Path)
|
||||
require.NoError(t, err)
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file2, file2dst, file3, file4, file4dst)
|
||||
r.CheckRemoteItems(t, file2, file2dst, file3, file4, file4dst)
|
||||
|
||||
// check empty dest, old copy
|
||||
file6 := r.WriteObject(ctx, "CopyDest/three", "three", t2)
|
||||
file7 := r.WriteFile("three", "threet3", t3)
|
||||
fstest.CheckItems(t, r.Fremote, file2, file2dst, file3, file4, file4dst, file6)
|
||||
fstest.CheckItems(t, r.Flocal, file1c, file5, file7)
|
||||
r.CheckRemoteItems(t, file2, file2dst, file3, file4, file4dst, file6)
|
||||
r.CheckLocalItems(t, file1c, file5, file7)
|
||||
|
||||
err = operations.CopyFile(ctx, fdst, r.Flocal, file7.Path, file7.Path)
|
||||
require.NoError(t, err)
|
||||
@@ -1106,7 +1106,7 @@ func TestCopyFileCopyDest(t *testing.T) {
|
||||
file7dst := file7
|
||||
file7dst.Path = "dst/three"
|
||||
|
||||
fstest.CheckItems(t, r.Fremote, file2, file2dst, file3, file4, file4dst, file6, file7dst)
|
||||
r.CheckRemoteItems(t, file2, file2dst, file3, file4, file4dst, file6, file7dst)
|
||||
}
|
||||
|
||||
// testFsInfo is for unit testing fs.Info
|
||||
@@ -1468,7 +1468,7 @@ func TestRcat(t *testing.T) {
|
||||
|
||||
file1 := fstest.NewItem(path1, data1, t1)
|
||||
file2 := fstest.NewItem(path2, data2, t2)
|
||||
fstest.CheckItems(t, r.Fremote, file1, file2)
|
||||
r.CheckRemoteItems(t, file1, file2)
|
||||
}
|
||||
|
||||
for i := 0; i < 4; i++ {
|
||||
@@ -1504,7 +1504,7 @@ func TestRcatSize(t *testing.T) {
|
||||
assert.Equal(t, file2.Path, obj.Remote())
|
||||
|
||||
// Check files exist
|
||||
fstest.CheckItems(t, r.Fremote, file1, file2)
|
||||
r.CheckRemoteItems(t, file1, file2)
|
||||
}
|
||||
|
||||
func TestCopyFileMaxTransfer(t *testing.T) {
|
||||
@@ -1535,8 +1535,8 @@ func TestCopyFileMaxTransfer(t *testing.T) {
|
||||
accounting.Stats(ctx).ResetCounters()
|
||||
err = operations.CopyFile(ctx, r.Fremote, r.Flocal, file1.Path, file1.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal, file1, file2, file3, file4)
|
||||
fstest.CheckItems(t, r.Fremote, file1)
|
||||
r.CheckLocalItems(t, file1, file2, file3, file4)
|
||||
r.CheckRemoteItems(t, file1)
|
||||
|
||||
// file2: show a large file does not get transferred
|
||||
accounting.Stats(ctx).ResetCounters()
|
||||
@@ -1544,8 +1544,8 @@ func TestCopyFileMaxTransfer(t *testing.T) {
|
||||
require.NotNil(t, err, "Did not get expected max transfer limit error")
|
||||
assert.Contains(t, err.Error(), "Max transfer limit reached")
|
||||
assert.True(t, fserrors.IsFatalError(err), fmt.Sprintf("Not fatal error: %v: %#v:", err, err))
|
||||
fstest.CheckItems(t, r.Flocal, file1, file2, file3, file4)
|
||||
fstest.CheckItems(t, r.Fremote, file1)
|
||||
r.CheckLocalItems(t, file1, file2, file3, file4)
|
||||
r.CheckRemoteItems(t, file1)
|
||||
|
||||
// Cutoff mode: Cautious
|
||||
ci.CutoffMode = fs.CutoffModeCautious
|
||||
@@ -1556,8 +1556,8 @@ func TestCopyFileMaxTransfer(t *testing.T) {
|
||||
require.NotNil(t, err)
|
||||
assert.Contains(t, err.Error(), "Max transfer limit reached")
|
||||
assert.True(t, fserrors.IsNoRetryError(err))
|
||||
fstest.CheckItems(t, r.Flocal, file1, file2, file3, file4)
|
||||
fstest.CheckItems(t, r.Fremote, file1)
|
||||
r.CheckLocalItems(t, file1, file2, file3, file4)
|
||||
r.CheckRemoteItems(t, file1)
|
||||
|
||||
if strings.HasPrefix(r.Fremote.Name(), "TestChunker") {
|
||||
t.Log("skipping remainder of test for chunker as it involves multiple transfers")
|
||||
@@ -1571,8 +1571,8 @@ func TestCopyFileMaxTransfer(t *testing.T) {
|
||||
accounting.Stats(ctx).ResetCounters()
|
||||
err = operations.CopyFile(ctx, r.Fremote, r.Flocal, file4.Path, file4.Path)
|
||||
require.NoError(t, err)
|
||||
fstest.CheckItems(t, r.Flocal, file1, file2, file3, file4)
|
||||
fstest.CheckItems(t, r.Fremote, file1, file4)
|
||||
r.CheckLocalItems(t, file1, file2, file3, file4)
|
||||
r.CheckRemoteItems(t, file1, file4)
|
||||
}
|
||||
|
||||
func TestTouchDir(t *testing.T) {
|
||||
@@ -1587,7 +1587,7 @@ func TestTouchDir(t *testing.T) {
|
||||
file1 := r.WriteBoth(ctx, "potato2", "------------------------------------------------------------", t1)
|
||||
file2 := r.WriteBoth(ctx, "empty space", "-", t2)
|
||||
file3 := r.WriteBoth(ctx, "sub dir/potato3", "hello", t2)
|
||||
fstest.CheckItems(t, r.Fremote, file1, file2, file3)
|
||||
r.CheckRemoteItems(t, file1, file2, file3)
|
||||
|
||||
timeValue := time.Date(2010, 9, 8, 7, 6, 5, 4, time.UTC)
|
||||
err := operations.TouchDir(ctx, r.Fremote, timeValue, true)
|
||||
@@ -1599,6 +1599,6 @@ func TestTouchDir(t *testing.T) {
|
||||
file1.ModTime = timeValue
|
||||
file2.ModTime = timeValue
|
||||
file3.ModTime = timeValue
|
||||
fstest.CheckItems(t, r.Fremote, file1, file2, file3)
|
||||
r.CheckRemoteItems(t, file1, file2, file3)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user