mirror of
https://github.com/rclone/rclone.git
synced 2024-12-22 11:41:17 +08:00
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
54 lines
2.7 KiB
Plaintext
54 lines
2.7 KiB
Plaintext
test normalization
|
||
# Tests support for --no-unicode-normalization and --ignore-case-sync
|
||
# note: this test is written carefully to be runnable regardless of case/unicode sensitivity
|
||
# i.e. the results should be the same on linux and macOS
|
||
|
||
# force specific modification time since file time is lost through git
|
||
touch-copy 2001-01-02 {datadir/}file1.txt {path2/}
|
||
test initial bisync
|
||
bisync resync
|
||
|
||
# copy NFC version to Path1
|
||
copy-as-NFC {datadir/}file1.txt {path1/}測試_Русский___ě_áñ👸🏼🧝🏾♀️💆🏿♂️🐨🤙🏼🤮🧑🏻🔧🧑🔬éö 測試_Русский___ě_áñ👸🏼🧝🏾♀️💆🏿♂️🐨🤙🏼🤮🧑🏻🔧🧑🔬éö.txt
|
||
copy-as-NFC {datadir/}file1.txt {path1/}folder éééö.txt
|
||
copy-as-NFC {datadir/}file1.txt {path1/}folder HeLlO,wOrLd!.txt
|
||
|
||
# place newer NFD version on Path2
|
||
touch-copy 2001-01-03 {datadir/}file1.txt {path2/}
|
||
copy-as-NFD {datadir/}file1.txt {path2/}folder éééö.txt
|
||
copy-as-NFD {datadir/}file1.txt {path2/}folder hello,WORLD!.txt
|
||
|
||
test bisync run with fix-case
|
||
bisync fix-case
|
||
|
||
# purge and reset
|
||
purge-children {path1/}
|
||
purge-children {path2/}
|
||
touch-copy 2001-01-02 {datadir/}file1.txt {path2/}
|
||
copy-as-NFC {datadir/}file1.txt {path2/} file2.txt
|
||
copy-as-NFC {datadir/}file1.txt {path1/} file3.txt
|
||
bisync resync
|
||
|
||
# copy NFC version to Path1
|
||
# note: need to slightly change the name to avoid Drive known issue #3262 which could try to copy the old name from the trash
|
||
copy-as-NFC {datadir/}file1.txt {path1/}測試_Руский___ě_áñ👸🏼🧝🏾♀️💆🏿♂️🐨🤙🏼🤮🧑🏻🔧🧑🔬éö 測試_Руский___ě_áñ👸🏼🧝🏾♀️💆🏿♂️🐨🤙🏼🤮🧑🏻🔧🧑🔬éö.txt
|
||
copy-as-NFC {datadir/}file1.txt {path1/}newfolder éééö.txt
|
||
copy-as-NFC {datadir/}file1.txt {path1/}newfolder HeLlO,wOrLd!.txt
|
||
|
||
# place newer NFD version on Path2
|
||
touch-copy 2001-01-03 {datadir/}file1.txt {path2/}
|
||
copy-as-NFD {datadir/}file1.txt {path2/}newfolder éééö.txt
|
||
copy-as-NFD {datadir/}file1.txt {path2/}newfolder hello,WORLD!.txt
|
||
|
||
test bisync run with normalization
|
||
bisync norm force
|
||
|
||
test resync
|
||
bisync resync norm
|
||
|
||
test changed on one path
|
||
touch-copy 2001-01-05 {datadir/}file1.txt {path2/}
|
||
copy-as-NFC {datadir/}file1.txt {path1/}測試_Руский___ě_áñ👸🏼🧝🏾♀️💆🏿♂️🐨🤙🏼🤮🧑🏻🔧🧑🔬éö 測試_Руский___ě_áñ👸🏼🧝🏾♀️💆🏿♂️🐨🤙🏼🤮🧑🏻🔧🧑🔬éö.txt
|
||
copy-as-NFC {datadir/}file1.txt {path1/}newfolder éééö.txt
|
||
copy-as-NFC {datadir/}file1.txt {path1/}newfolder HeLlO,wOrLd!.txt
|
||
bisync norm |