summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThomas Waldmann <tw@waldmann-edv.de>2023-07-29 22:45:56 +0200
committerThomas Waldmann <tw@waldmann-edv.de>2023-07-29 23:21:10 +0200
commit3e640a38c064eaafaff8ef6a8d4e543174ff6bcd (patch)
tree6746610e0e7bdfbd0f4248b38baebb1c85d145ed /src
parent1e7dec154186b503265a2194bfee8aaca8d57cae (diff)
add a test for unreadable parent dir, see #7746
Diffstat (limited to 'src')
-rw-r--r--src/borg/testsuite/archiver/create_cmd.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/borg/testsuite/archiver/create_cmd.py b/src/borg/testsuite/archiver/create_cmd.py
index 842234eed..30cf998d4 100644
--- a/src/borg/testsuite/archiver/create_cmd.py
+++ b/src/borg/testsuite/archiver/create_cmd.py
@@ -167,6 +167,17 @@ def test_create_duplicate_root(archivers, request):
assert sorted(paths) == ["input", "input/a", "input/a/hardlink", "input/b", "input/b/hardlink"]
+def test_create_unreadable_parent(archiver):
+ parent_dir = os.path.join(archiver.input_path, "parent")
+ root_dir = os.path.join(archiver.input_path, "parent", "root")
+ os.mkdir(parent_dir)
+ os.mkdir(root_dir)
+ os.chmod(parent_dir, 0o111) # --x--x--x == parent dir traversable, but not readable
+ cmd(archiver, "rcreate", "--encryption=none")
+ # issue #7746: we *can* read root_dir and we *can* traverse parent_dir, so this should work:
+ cmd(archiver, "create", "test", root_dir)
+
+
@pytest.mark.skipif(is_win32, reason="unix sockets not available on windows")
def test_unix_socket(archivers, request, monkeypatch):
archiver = request.getfixturevalue(archivers)