From 6bfb48715572860b8352f2f482bd788b72ca2e7a Mon Sep 17 00:00:00 2001 From: Zen Dodd Date: Sat, 6 Jun 2026 14:35:27 +1000 Subject: [PATCH] testsuite: cover files-from comments --- testsuite/files-from-depth_test.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/testsuite/files-from-depth_test.py b/testsuite/files-from-depth_test.py index beaa8575..5f6c0cce 100644 --- a/testsuite/files-from-depth_test.py +++ b/testsuite/files-from-depth_test.py @@ -44,6 +44,27 @@ for rel in listed: for rel in unlisted: assert_not_exists(TODIR / rel, label=f'--from0 excluded {rel}') +# --- comments: line mode ignores them, --from0 treats them as filenames ------ +rmtree(TODIR) +commented = SCRATCHDIR / 'files-commented.lst' +commented.write_text('\n'.join(['', ';ignored', '#ignored', *listed]) + '\n') +run_rsync('-a', f'--files-from={commented}', f'{src}/', f'{TODIR}/') +for rel in listed: + assert_same(TODIR / rel, src / rel, label=f'--files-from comment list {rel}') +for rel in unlisted: + assert_not_exists(TODIR / rel, label=f'--files-from comment list excluded {rel}') + +rmtree(TODIR) +(src / '#literal').write_text('hash literal\n') +(src / ';literal').write_text('semi literal\n') +comments0 = SCRATCHDIR / 'files-comments0.lst' +comments0.write_bytes(b'#literal\0;literal\0') +run_rsync('-a', '--from0', f'--files-from={comments0}', f'{src}/', f'{TODIR}/') +assert_same(TODIR / '#literal', src / '#literal', + label='--from0 literal hash filename') +assert_same(TODIR / ';literal', src / ';literal', + label='--from0 literal semicolon filename') + # --- --exclude-from drops matching files at depth --------------------------- seed() (src / 'a.skip').write_text('s\n')