mirror of
https://github.com/borgbackup/borg.git
synced 2024-12-25 17:27:31 +00:00
Merge pull request #4347 from ThomasWaldmann/fix-fuse-test-fakeroot
test_mount_hardlinks: get rid of fakeroot-caused test fails, fixes #3389
This commit is contained in:
commit
095a109af4
1 changed files with 10 additions and 3 deletions
|
@ -793,21 +793,28 @@ def _extract_hardlinks_setup(self):
|
|||
def test_mount_hardlinks(self):
|
||||
self._extract_hardlinks_setup()
|
||||
mountpoint = os.path.join(self.tmpdir, 'mountpoint')
|
||||
with self.fuse_mount(self.repository_location + '::test', mountpoint, '--strip-components=2'), \
|
||||
# we need to get rid of permissions checking because fakeroot causes issues with it.
|
||||
# On all platforms, borg defaults to "default_permissions" and we need to get rid of it via "ignore_permissions".
|
||||
# On macOS (darwin), we additionally need "defer_permissions" to switch off the checks in osxfuse.
|
||||
if sys.platform == 'darwin':
|
||||
ignore_perms = ['-o', 'ignore_permissions,defer_permissions']
|
||||
else:
|
||||
ignore_perms = ['-o', 'ignore_permissions']
|
||||
with self.fuse_mount(self.repository_location + '::test', mountpoint, '--strip-components=2', *ignore_perms), \
|
||||
changedir(mountpoint):
|
||||
assert os.stat('hardlink').st_nlink == 2
|
||||
assert os.stat('subdir/hardlink').st_nlink == 2
|
||||
assert open('subdir/hardlink', 'rb').read() == b'123456'
|
||||
assert os.stat('aaaa').st_nlink == 2
|
||||
assert os.stat('source2').st_nlink == 2
|
||||
with self.fuse_mount(self.repository_location + '::test', mountpoint, 'input/dir1'), \
|
||||
with self.fuse_mount(self.repository_location + '::test', mountpoint, 'input/dir1', *ignore_perms), \
|
||||
changedir(mountpoint):
|
||||
assert os.stat('input/dir1/hardlink').st_nlink == 2
|
||||
assert os.stat('input/dir1/subdir/hardlink').st_nlink == 2
|
||||
assert open('input/dir1/subdir/hardlink', 'rb').read() == b'123456'
|
||||
assert os.stat('input/dir1/aaaa').st_nlink == 2
|
||||
assert os.stat('input/dir1/source2').st_nlink == 2
|
||||
with self.fuse_mount(self.repository_location + '::test', mountpoint), \
|
||||
with self.fuse_mount(self.repository_location + '::test', mountpoint, *ignore_perms), \
|
||||
changedir(mountpoint):
|
||||
assert os.stat('input/source').st_nlink == 4
|
||||
assert os.stat('input/abba').st_nlink == 4
|
||||
|
|
Loading…
Reference in a new issue