mirror of https://github.com/rclone/rclone
bisync: fix chunker integration tests
Before this change, TestChunkerS3: tests were failing because our use of obj.Remove (for "modtime_write_test") created an unexpected extra transfer. This is because chunker calls operations.Move for removes, which (per its function comment) is supposed to be only accounted as a check. But because S3 can Copy but not Move, the move falls back to copy and ends up getting counted as a transfer anyway.99e8a63df2/fs/operations/operations.go (L506)99e8a63df2/fs/operations/copy.go (L381)This is probably a bug that should get a more proper fix in operations. But in the meantime, we can get around it by doing our "modtime_write_test" with its own unique stats group.
This commit is contained in:
parent
26b629f42f
commit
d915f75edf
|
|
@ -1018,6 +1018,7 @@ func (b *bisyncTest) checkPreReqs(ctx context.Context, opt *bisync.Options) (con
|
|||
}
|
||||
// test if modtimes are writeable
|
||||
testSetModtime := func(f fs.Fs) {
|
||||
ctx := accounting.WithStatsGroup(ctx, random.String(8)) // keep stats separate
|
||||
in := bytes.NewBufferString("modtime_write_test")
|
||||
objinfo := object.NewStaticObjectInfo("modtime_write_test", initDate, int64(len("modtime_write_test")), true, nil, nil)
|
||||
obj, err := f.Put(ctx, in, objinfo)
|
||||
|
|
@ -1031,6 +1032,8 @@ func (b *bisyncTest) checkPreReqs(ctx context.Context, opt *bisync.Options) (con
|
|||
}
|
||||
if err == fs.ErrorCantSetModTimeWithoutDelete { // transfers stats expected to differ on this backend
|
||||
logReplacements = append(logReplacements, `^.*There was nothing to transfer.*$`, dropMe)
|
||||
} else {
|
||||
require.NoError(b.t, err)
|
||||
}
|
||||
if !f.Features().IsLocal {
|
||||
time.Sleep(time.Second) // avoid GoogleCloudStorage Error 429 rateLimitExceeded
|
||||
|
|
|
|||
Loading…
Reference in New Issue