2bebbfaded
This change officially adds bisync to the nightly integration tests for all backends. This will be part of giving us the confidence to take bisync out of beta. A number of fixes have been added to account for features which can differ on different backends -- for example, hash types / modtime support, empty directories, unicode normalization, and unimportant differences in log output. We will likely find that more of these are needed once we start running these with the full set of remotes. Additionally, bisync's extremely sensitive tests revealed a few bugs in other backends that weren't previously covered by other tests. Fixes for those issues have been submitted on the following separate PRs (and bisync test failures will be expected until they are merged): - #7670 memory: fix deadlock in operations.Purge - #7688 memory: fix incorrect list entries when rooted at subdirectory - #7690 memory: fix dst mutating src after server-side copy - #7692 dropbox: fix chunked uploads when size <= chunkSize Relatedly, workarounds have been put in place for the following backend limitations that are unsolvable for the time being: - #3262 drive is sometimes aware of trashed files/folders when it shouldn't be - #6199 dropbox can't handle emojis and certain other characters - #4590 onedrive API has longstanding bug for conflictBehavior=replace in server-side copy/move
10 KiB
10 KiB
(01) : test rclone-args
(02) : touch-glob 2001-01-02 {datadir/} *
(03) : test initial bisync
(04) : bisync resync checksum
INFO : Bisyncing with Comparison Settings:
{
"Modtime": false,
"Size": true,
"Checksum": true,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": true
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Copying Path2 files to Path1
INFO : - Path2 Resync is copying files to - Path1
INFO : - Path1 Resync is copying files to - Path2
INFO : Resync updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(05) : test place newer files on both paths
(06) : copy-file {datadir/}file1.txt {path1/}
(07) : copy-file {datadir/}file2.txt {path2/}
(08) : copy-file {datadir/}file20.txt {path1/}subdir
(09) : copy-file {datadir/}file21.txt {path2/}subdir
(10) : touch-glob 2001-01-02 {path1/} file1.txt
(11) : touch-glob 2001-01-02 {path2/} file2.txt
(12) : touch-glob 2001-01-02 {path1/}subdir/ file20.txt
(13) : touch-glob 2001-01-02 {path2/}subdir/ file21.txt
(14) : test run bisync with custom options
(15) : bisync checksum
INFO : Bisyncing with Comparison Settings:
{
"Modtime": false,
"Size": true,
"Checksum": true,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": true
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Building Path1 and Path2 listings
INFO : Path1 checking for diffs
INFO : - Path1 File changed: hash - file1.txt
INFO : Path1: 1 changes: 0 new, 1 modified, 0 deleted
INFO : (Modified: 1 hash differs)
INFO : Path2 checking for diffs
INFO : - Path2 File changed: size (larger), hash - file2.txt
INFO : Path2: 1 changes: 0 new, 1 modified, 0 deleted
INFO : (Modified: 1 larger, 0 smaller, 1 hash differs)
INFO : Applying changes
INFO : - Path1 Queue copy to Path2 - {path2/}file1.txt
INFO : - Path2 Queue copy to Path1 - {path1/}file2.txt
INFO : - Path2 Do queued copies to - Path1
INFO : - Path1 Do queued copies to - Path2
INFO : Updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(16) : touch-glob 2007-07-23 {datadir/} *
(17) : copy-file {datadir/}file1.txt {path1/}
(18) : copy-file {datadir/}file2.txt {path2/}
(19) : copy-file {datadir/}file20.txt {path1/}subdir
(20) : copy-as {datadir/}file21.txt {path2/} file1.txt
(21) : touch-glob 2007-07-23 {path1/} file1.txt
(22) : touch-glob 2007-07-23 {path2/} file2.txt
(23) : touch-glob 2007-07-23 {path1/}subdir/ file20.txt
(24) : touch-glob 2007-07-23 {path2/}subdir/ file21.txt
(25) : bisync size-only
INFO : Setting --ignore-listing-checksum as neither --checksum nor --compare checksum are set.
INFO : Bisyncing with Comparison Settings:
{
"Modtime": false,
"Size": true,
"Checksum": false,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": false
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Building Path1 and Path2 listings
INFO : Path1 checking for diffs
INFO : Path2 checking for diffs
INFO : - Path2 File changed: size (smaller) - file1.txt
INFO : Path2: 1 changes: 0 new, 1 modified, 0 deleted
INFO : (Modified: 0 larger, 1 smaller)
INFO : Applying changes
INFO : - Path2 Queue copy to Path1 - {path1/}file1.txt
INFO : - Path2 Do queued copies to - Path1
INFO : Updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(26) : bisync resync
INFO : Setting --ignore-listing-checksum as neither --checksum nor --compare checksum are set.
INFO : Bisyncing with Comparison Settings:
{
"Modtime": true,
"Size": true,
"Checksum": false,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": false
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Copying Path2 files to Path1
INFO : - Path2 Resync is copying files to - Path1
INFO : - Path1 Resync is copying files to - Path2
INFO : Resync updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(27) : copy-file {datadir/}file1.txt {path1/}
(28) : copy-file {datadir/}file2.txt {path2/}
(29) : copy-file {datadir/}file20.txt {path1/}subdir
(30) : copy-file {datadir/}file21.txt {path2/}subdir
(31) : touch-glob 2007-07-23 {path1/} file1.txt
(32) : touch-glob 2007-07-23 {path2/} file2.txt
(33) : touch-glob 2007-07-23 {path1/}subdir/ file20.txt
(34) : touch-glob 2007-07-23 {path2/}subdir/ file21.txt
(35) : bisync ignore-size
INFO : Setting --ignore-listing-checksum as neither --checksum nor --compare checksum are set.
INFO : Bisyncing with Comparison Settings:
{
"Modtime": true,
"Size": false,
"Checksum": false,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": false
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Building Path1 and Path2 listings
INFO : Path1 checking for diffs
INFO : Path2 checking for diffs
INFO : - Path2 File changed: time (newer) - file2.txt
INFO : - Path2 File changed: time (newer) - subdir/file21.txt
INFO : Path2: 2 changes: 0 new, 2 modified, 0 deleted
INFO : (Modified: 2 newer, 0 older)
INFO : Applying changes
INFO : - Path2 Queue copy to Path1 - {path1/}file2.txt
INFO : - Path2 Queue copy to Path1 - {path1/}subdir/file21.txt
INFO : - Path2 Do queued copies to - Path1
INFO : Updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(36) : bisync resync compare-all
INFO : Bisyncing with Comparison Settings:
{
"Modtime": true,
"Size": true,
"Checksum": true,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": true
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Copying Path2 files to Path1
INFO : - Path2 Resync is copying files to - Path1
INFO : - Path1 Resync is copying files to - Path2
INFO : Resync updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(37) : copy-as {datadir/}file21.txt {path2/} file2.txt
(38) : touch-glob 2023-08-26 {datadir/} *
(39) : copy-file {datadir/}file1.txt {path1/}
(40) : copy-file {datadir/}file20.txt {path1/}subdir
(41) : copy-file {datadir/}file21.txt {path2/}subdir
(42) : touch-glob 2007-07-23 {path2/} file2.txt
(43) : touch-glob 2023-08-26 {path1/} file1.txt
(44) : touch-glob 2023-08-26 {path1/}subdir/ file20.txt
(45) : touch-glob 2023-08-26 {path2/}subdir/ file21.txt
(46) : bisync compare-all
INFO : Bisyncing with Comparison Settings:
{
"Modtime": true,
"Size": true,
"Checksum": true,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": true
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Building Path1 and Path2 listings
INFO : Path1 checking for diffs
INFO : - Path1 File changed: time (newer) - file1.txt
INFO : - Path1 File changed: time (newer) - subdir/file20.txt
INFO : Path1: 2 changes: 0 new, 2 modified, 0 deleted
INFO : (Modified: 2 newer, 0 older)
INFO : Path2 checking for diffs
INFO : - Path2 File changed: size (smaller), hash - file2.txt
INFO : - Path2 File changed: time (newer) - subdir/file21.txt
INFO : Path2: 2 changes: 0 new, 2 modified, 0 deleted
INFO : (Modified: 1 newer, 0 older, 0 larger, 1 smaller, 1 hash differs)
INFO : Applying changes
INFO : - Path1 Queue copy to Path2 - {path2/}file1.txt
INFO : - Path1 Queue copy to Path2 - {path2/}subdir/file20.txt
INFO : - Path2 Queue copy to Path1 - {path1/}file2.txt
INFO : - Path2 Queue copy to Path1 - {path1/}subdir/file21.txt
INFO : - Path2 Do queued copies to - Path1
INFO : - Path1 Do queued copies to - Path2
INFO : Updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(02) : touch-glob 2001-01-02 {datadir/} *
(03) : test initial bisync
(04) : bisync resync checksum
INFO : Bisyncing with Comparison Settings:
{
"Modtime": false,
"Size": true,
"Checksum": true,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": true
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Copying Path2 files to Path1
INFO : - Path2 Resync is copying files to - Path1
INFO : - Path1 Resync is copying files to - Path2
INFO : Resync updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(05) : test place newer files on both paths
(06) : copy-file {datadir/}file1.txt {path1/}
(07) : copy-file {datadir/}file2.txt {path2/}
(08) : copy-file {datadir/}file20.txt {path1/}subdir
(09) : copy-file {datadir/}file21.txt {path2/}subdir
(10) : touch-glob 2001-01-02 {path1/} file1.txt
(11) : touch-glob 2001-01-02 {path2/} file2.txt
(12) : touch-glob 2001-01-02 {path1/}subdir/ file20.txt
(13) : touch-glob 2001-01-02 {path2/}subdir/ file21.txt
(14) : test run bisync with custom options
(15) : bisync checksum
INFO : Bisyncing with Comparison Settings:
{
"Modtime": false,
"Size": true,
"Checksum": true,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": true
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Building Path1 and Path2 listings
INFO : Path1 checking for diffs
INFO : - Path1 File changed: hash - file1.txt
INFO : Path1: 1 changes: 0 new, 1 modified, 0 deleted
INFO : (Modified: 1 hash differs)
INFO : Path2 checking for diffs
INFO : - Path2 File changed: size (larger), hash - file2.txt
INFO : Path2: 1 changes: 0 new, 1 modified, 0 deleted
INFO : (Modified: 1 larger, 0 smaller, 1 hash differs)
INFO : Applying changes
INFO : - Path1 Queue copy to Path2 - {path2/}file1.txt
INFO : - Path2 Queue copy to Path1 - {path1/}file2.txt
INFO : - Path2 Do queued copies to - Path1
INFO : - Path1 Do queued copies to - Path2
INFO : Updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(16) : touch-glob 2007-07-23 {datadir/} *
(17) : copy-file {datadir/}file1.txt {path1/}
(18) : copy-file {datadir/}file2.txt {path2/}
(19) : copy-file {datadir/}file20.txt {path1/}subdir
(20) : copy-as {datadir/}file21.txt {path2/} file1.txt
(21) : touch-glob 2007-07-23 {path1/} file1.txt
(22) : touch-glob 2007-07-23 {path2/} file2.txt
(23) : touch-glob 2007-07-23 {path1/}subdir/ file20.txt
(24) : touch-glob 2007-07-23 {path2/}subdir/ file21.txt
(25) : bisync size-only
INFO : Setting --ignore-listing-checksum as neither --checksum nor --compare checksum are set.
INFO : Bisyncing with Comparison Settings:
{
"Modtime": false,
"Size": true,
"Checksum": false,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": false
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Building Path1 and Path2 listings
INFO : Path1 checking for diffs
INFO : Path2 checking for diffs
INFO : - Path2 File changed: size (smaller) - file1.txt
INFO : Path2: 1 changes: 0 new, 1 modified, 0 deleted
INFO : (Modified: 0 larger, 1 smaller)
INFO : Applying changes
INFO : - Path2 Queue copy to Path1 - {path1/}file1.txt
INFO : - Path2 Do queued copies to - Path1
INFO : Updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(26) : bisync resync
INFO : Setting --ignore-listing-checksum as neither --checksum nor --compare checksum are set.
INFO : Bisyncing with Comparison Settings:
{
"Modtime": true,
"Size": true,
"Checksum": false,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": false
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Copying Path2 files to Path1
INFO : - Path2 Resync is copying files to - Path1
INFO : - Path1 Resync is copying files to - Path2
INFO : Resync updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(27) : copy-file {datadir/}file1.txt {path1/}
(28) : copy-file {datadir/}file2.txt {path2/}
(29) : copy-file {datadir/}file20.txt {path1/}subdir
(30) : copy-file {datadir/}file21.txt {path2/}subdir
(31) : touch-glob 2007-07-23 {path1/} file1.txt
(32) : touch-glob 2007-07-23 {path2/} file2.txt
(33) : touch-glob 2007-07-23 {path1/}subdir/ file20.txt
(34) : touch-glob 2007-07-23 {path2/}subdir/ file21.txt
(35) : bisync ignore-size
INFO : Setting --ignore-listing-checksum as neither --checksum nor --compare checksum are set.
INFO : Bisyncing with Comparison Settings:
{
"Modtime": true,
"Size": false,
"Checksum": false,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": false
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Building Path1 and Path2 listings
INFO : Path1 checking for diffs
INFO : Path2 checking for diffs
INFO : - Path2 File changed: time (newer) - file2.txt
INFO : - Path2 File changed: time (newer) - subdir/file21.txt
INFO : Path2: 2 changes: 0 new, 2 modified, 0 deleted
INFO : (Modified: 2 newer, 0 older)
INFO : Applying changes
INFO : - Path2 Queue copy to Path1 - {path1/}file2.txt
INFO : - Path2 Queue copy to Path1 - {path1/}subdir/file21.txt
INFO : - Path2 Do queued copies to - Path1
INFO : Updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(36) : bisync resync compare-all
INFO : Bisyncing with Comparison Settings:
{
"Modtime": true,
"Size": true,
"Checksum": true,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": true
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Copying Path2 files to Path1
INFO : - Path2 Resync is copying files to - Path1
INFO : - Path1 Resync is copying files to - Path2
INFO : Resync updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful
(37) : copy-as {datadir/}file21.txt {path2/} file2.txt
(38) : touch-glob 2023-08-26 {datadir/} *
(39) : copy-file {datadir/}file1.txt {path1/}
(40) : copy-file {datadir/}file20.txt {path1/}subdir
(41) : copy-file {datadir/}file21.txt {path2/}subdir
(42) : touch-glob 2007-07-23 {path2/} file2.txt
(43) : touch-glob 2023-08-26 {path1/} file1.txt
(44) : touch-glob 2023-08-26 {path1/}subdir/ file20.txt
(45) : touch-glob 2023-08-26 {path2/}subdir/ file21.txt
(46) : bisync compare-all
INFO : Bisyncing with Comparison Settings:
{
"Modtime": true,
"Size": true,
"Checksum": true,
"NoSlowHash": false,
"SlowHashSyncOnly": false,
"DownloadHash": true
}
INFO : Synching Path1 "{path1/}" with Path2 "{path2/}"
INFO : Building Path1 and Path2 listings
INFO : Path1 checking for diffs
INFO : - Path1 File changed: time (newer) - file1.txt
INFO : - Path1 File changed: time (newer) - subdir/file20.txt
INFO : Path1: 2 changes: 0 new, 2 modified, 0 deleted
INFO : (Modified: 2 newer, 0 older)
INFO : Path2 checking for diffs
INFO : - Path2 File changed: size (smaller), hash - file2.txt
INFO : - Path2 File changed: time (newer) - subdir/file21.txt
INFO : Path2: 2 changes: 0 new, 2 modified, 0 deleted
INFO : (Modified: 1 newer, 0 older, 0 larger, 1 smaller, 1 hash differs)
INFO : Applying changes
INFO : - Path1 Queue copy to Path2 - {path2/}file1.txt
INFO : - Path1 Queue copy to Path2 - {path2/}subdir/file20.txt
INFO : - Path2 Queue copy to Path1 - {path1/}file2.txt
INFO : - Path2 Queue copy to Path1 - {path1/}subdir/file21.txt
INFO : - Path2 Do queued copies to - Path1
INFO : - Path1 Do queued copies to - Path2
INFO : Updating listings
INFO : Validating listings for Path1 "{path1/}" vs Path2 "{path2/}"
INFO : Bisync successful