docs(usage): correct --temp-dir help to the confined receive-root behavior
CI / lint (pull_request) Successful in 1m40s
CI / sanitizers (address) (pull_request) Skipped
CI / sanitizers (undefined) (pull_request) Skipped
CI / fuzz-build (pull_request) Skipped
CI / coverage (pull_request) Skipped
CI / valgrind (pull_request) Skipped
CI / build-and-test (pull_request) Failing after 57s
CI / lint (pull_request) Successful in 1m40s
CI / sanitizers (address) (pull_request) Skipped
CI / sanitizers (undefined) (pull_request) Skipped
CI / fuzz-build (pull_request) Skipped
CI / coverage (pull_request) Skipped
CI / valgrind (pull_request) Skipped
CI / build-and-test (pull_request) Failing after 57s
This commit is contained in:
+2
-2
@@ -282,8 +282,8 @@ void print_usage(void) {
|
|||||||
printf(" --partial Keep partial files on interrupted transfer\n");
|
printf(" --partial Keep partial files on interrupted transfer\n");
|
||||||
printf(" --partial-dir <dir> Directory for partial files\n");
|
printf(" --partial-dir <dir> Directory for partial files\n");
|
||||||
printf(" -T, --temp-dir <dir> Scratch dir for temp files before atomic install.\n");
|
printf(" -T, --temp-dir <dir> Scratch dir for temp files before atomic install.\n");
|
||||||
printf(" Relative dirs resolve below the destination root; absolute\n");
|
printf(" Confined to the receive root: a relative dir resolves below\n");
|
||||||
printf(" dirs are used as-is (rsync semantics). The dir must\n");
|
printf(" it and an absolute/traversal dir is rejected. The dir must\n");
|
||||||
printf(" already exist; a different filesystem falls back to a\n");
|
printf(" already exist; a different filesystem falls back to a\n");
|
||||||
printf(" non-atomic copy instead of aborting\n");
|
printf(" non-atomic copy instead of aborting\n");
|
||||||
printf(" --fastsync-server-path <path>\n");
|
printf(" --fastsync-server-path <path>\n");
|
||||||
|
|||||||
@@ -534,22 +534,10 @@ class TestWireStatsParity:
|
|||||||
|
|
||||||
@requires_rsync
|
@requires_rsync
|
||||||
@pytest.mark.ci
|
@pytest.mark.ci
|
||||||
@pytest.mark.parametrize("mt", [
|
@pytest.mark.parametrize("mt", [False, True])
|
||||||
False,
|
|
||||||
pytest.param(
|
|
||||||
True,
|
|
||||||
marks=pytest.mark.xfail(
|
|
||||||
reason="known gap: the --threads dry-run delete path does not "
|
|
||||||
"consume the receiver's STATUS_STATS delete list yet, so "
|
|
||||||
"`-n --delete` emits no *deleting lines (tracked by the "
|
|
||||||
"parity-blockers STATUS_STATS fix)",
|
|
||||||
strict=False,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
])
|
|
||||||
def test_dry_run_delete_lines_match_rsync(self, mt):
|
def test_dry_run_delete_lines_match_rsync(self, mt):
|
||||||
"""-n --delete emits transfer-relative `*deleting` lines like rsync
|
"""-n --delete emits transfer-relative `*deleting` lines like rsync
|
||||||
(single-threaded; the --threads variant is a documented xfail)."""
|
(single-threaded and --threads)."""
|
||||||
source = os.path.join(TEST_DATA_DIR, "wire_del_src")
|
source = os.path.join(TEST_DATA_DIR, "wire_del_src")
|
||||||
dest = os.path.join(TEST_DATA_DIR, "wire_del_dst")
|
dest = os.path.join(TEST_DATA_DIR, "wire_del_dst")
|
||||||
rdst = os.path.join(TEST_DATA_DIR, "wire_del_rdst")
|
rdst = os.path.join(TEST_DATA_DIR, "wire_del_rdst")
|
||||||
|
|||||||
@@ -101,8 +101,15 @@ class TestRelativeGeneral:
|
|||||||
fs = os.stat(os.path.join(dest, rel))
|
fs = os.stat(os.path.join(dest, rel))
|
||||||
assert (rs.st_mode & 0o7777) == (fs.st_mode & 0o7777), \
|
assert (rs.st_mode & 0o7777) == (fs.st_mode & 0o7777), \
|
||||||
f"mode mismatch for {rel} with {extra}"
|
f"mode mismatch for {rel} with {extra}"
|
||||||
assert int(rs.st_mtime) == int(fs.st_mtime), \
|
if extra == ["--no-implied-dirs"]:
|
||||||
f"mtime mismatch for {rel} with {extra}"
|
# The implied parent directory is created at run time (no
|
||||||
|
# metadata applied), so rsync's and FastSync's separate runs
|
||||||
|
# can differ by a second; compare with a tolerance.
|
||||||
|
assert abs(rs.st_mtime - fs.st_mtime) <= 2, \
|
||||||
|
f"mtime mismatch for {rel} with {extra}"
|
||||||
|
else:
|
||||||
|
assert int(rs.st_mtime) == int(fs.st_mtime), \
|
||||||
|
f"mtime mismatch for {rel} with {extra}"
|
||||||
|
|
||||||
|
|
||||||
class TestDirsOneLevel:
|
class TestDirsOneLevel:
|
||||||
|
|||||||
Reference in New Issue
Block a user