Release v2.26.0 #284

Merged
TapTap merged 210 commits from dev into main 2026-09-18 19:05:52 +02:00
Showing only changes of commit 4815b1b281 - Show all commits
+4 -2
View File
@@ -95,12 +95,14 @@ class TestPreservePerms:
source = os.path.join(TEST_DATA_DIR, "perms_nop_new_src") source = os.path.join(TEST_DATA_DIR, "perms_nop_new_src")
dest = os.path.join(TEST_DATA_DIR, "perms_nop_new_dst") dest = os.path.join(TEST_DATA_DIR, "perms_nop_new_dst")
# 0664 has group/other bits that the umask strips, so the result is not # 0664 has group/other bits that the umask strips, so the result is not
# just the source mode. # just the source mode. FastSync additionally never grants group/other
# write from a client-supplied mode (S_IWGRP|S_IWOTH are always
# cleared), so the expected mode masks those too.
_seed_file(source, dest, "f.txt", b"new\n", 0o664) _seed_file(source, dest, "f.txt", b"new\n", 0o664)
result, _ = run_client(source, dest, flags=["-t"], port=shared_server.port) result, _ = run_client(source, dest, flags=["-t"], port=shared_server.port)
assert result.returncode == 0, f"-t failed: {(result.stderr or '')[:300]}" assert result.returncode == 0, f"-t failed: {(result.stderr or '')[:300]}"
want = 0o664 & ~_process_umask() want = 0o664 & ~_process_umask() & ~0o022
got = os.stat(_received(dest, source, "f.txt")).st_mode & 0o777 got = os.stat(_received(dest, source, "f.txt")).st_mode & 0o777
assert got == want, \ assert got == want, \
f"new no--p destination mode: want {oct(want)}, got {oct(got)}" f"new no--p destination mode: want {oct(want)}, got {oct(got)}"