diff options
author | Francesco Paolo Lovergine <frankie@debian.org> | 2021-01-11 14:57:12 +0100 |
---|---|---|
committer | Francesco Paolo Lovergine <frankie@debian.org> | 2021-01-11 14:57:12 +0100 |
commit | 4c955c70ff536d82b9efcad8c0d47b9a8e25988a (patch) | |
tree | 85ba6b3215d84db2b66577a210a7ba8d134cd4f0 /tests/t4_fuse.py | |
parent | 0e72788f2ef9e0285a62c5f7a5be74a6bcf130e3 (diff) |
New upstream version 3.7.0+dfsg
Diffstat (limited to 'tests/t4_fuse.py')
-rwxr-xr-x | tests/t4_fuse.py | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/tests/t4_fuse.py b/tests/t4_fuse.py index f07e420..8c2c836 100755 --- a/tests/t4_fuse.py +++ b/tests/t4_fuse.py @@ -15,9 +15,9 @@ if __name__ == '__main__': from os.path import basename from s3ql import CTRL_NAME from s3ql.common import path2bytes -from common import retry, skip_if_no_fusermount +from common import retry, skip_if_no_fusermount, RetryTimeoutError import filecmp -import llfuse +import pyfuse3 import os.path import shutil import platform @@ -91,14 +91,14 @@ class TestFuse: self.mount_process.stdin.close() if expect_fail: - retry(30, self.mount_process.poll) + retry(10, self.mount_process.poll) assert self.mount_process.returncode == expect_fail else: def poll(): if os.path.ismount(self.mnt_dir): return True assert self.mount_process.poll() is None - retry(30, poll) + retry(10, poll) def umount(self): with open('/dev/null', 'wb') as devnull: @@ -107,7 +107,7 @@ class TestFuse: proc = subprocess.Popen(self.s3ql_cmd_argv('umount.s3ql') + ['--quiet', self.mnt_dir]) - retry(90, lambda : proc.poll() is not None) + retry(30, lambda : proc.poll() is not None) assert proc.wait() == 0 assert self.mount_process.poll() == 0 @@ -199,12 +199,12 @@ class TestFuse: os.mkdir(fullname) fstat = os.stat(fullname) assert stat.S_ISDIR(fstat.st_mode) - assert llfuse.listdir(fullname) == [] + assert pyfuse3.listdir(fullname) == [] assert fstat.st_nlink == 1 - assert dirname in llfuse.listdir(self.mnt_dir) + assert dirname in pyfuse3.listdir(self.mnt_dir) os.rmdir(fullname) assert_raises(FileNotFoundError, os.stat, fullname) - assert dirname not in llfuse.listdir(self.mnt_dir) + assert dirname not in pyfuse3.listdir(self.mnt_dir) def tst_symlink(self): linkname = self.newname() @@ -214,10 +214,10 @@ class TestFuse: assert stat.S_ISLNK(fstat.st_mode) assert os.readlink(fullname) == "/imaginary/dest" assert fstat.st_nlink == 1 - assert linkname in llfuse.listdir(self.mnt_dir) + assert linkname in pyfuse3.listdir(self.mnt_dir) os.unlink(fullname) assert_raises(FileNotFoundError, os.lstat, fullname) - assert linkname not in llfuse.listdir(self.mnt_dir) + assert linkname not in pyfuse3.listdir(self.mnt_dir) def tst_mknod(self): filename = os.path.join(self.mnt_dir, self.newname()) @@ -226,11 +226,11 @@ class TestFuse: fstat = os.lstat(filename) assert stat.S_ISREG(fstat.st_mode) assert fstat.st_nlink == 1 - assert basename(filename) in llfuse.listdir(self.mnt_dir) + assert basename(filename) in pyfuse3.listdir(self.mnt_dir) assert filecmp.cmp(src, filename, False) os.unlink(filename) assert_raises(FileNotFoundError, os.stat, filename) - assert basename(filename) not in llfuse.listdir(self.mnt_dir) + assert basename(filename) not in pyfuse3.listdir(self.mnt_dir) def tst_chown(self): filename = os.path.join(self.mnt_dir, self.newname()) @@ -253,7 +253,7 @@ class TestFuse: os.rmdir(filename) assert_raises(FileNotFoundError, os.stat, filename) - assert basename(filename) not in llfuse.listdir(self.mnt_dir) + assert basename(filename) not in pyfuse3.listdir(self.mnt_dir) def tst_write(self): name = os.path.join(self.mnt_dir, self.newname()) @@ -281,7 +281,7 @@ class TestFuse: assert fstat1 == fstat2 assert fstat1.st_nlink == 2 - assert basename(name2) in llfuse.listdir(self.mnt_dir) + assert basename(name2) in pyfuse3.listdir(self.mnt_dir) assert filecmp.cmp(name1, name2, False) os.unlink(name2) fstat1 = os.lstat(name1) @@ -300,7 +300,7 @@ class TestFuse: os.mkdir(subdir) shutil.copyfile(src, subfile) - listdir_is = llfuse.listdir(dir_) + listdir_is = pyfuse3.listdir(dir_) listdir_is.sort() listdir_should = [ basename(file_), basename(subdir) ] listdir_should.sort() @@ -355,8 +355,13 @@ class TestFuse: fullname = self.mnt_dir + "/" + dirname os.mkdir(fullname) assert stat.S_ISDIR(os.stat(fullname).st_mode) - assert dirname in llfuse.listdir(self.mnt_dir) - cmd = ('(%d, %r)' % (llfuse.ROOT_INODE, path2bytes(dirname))).encode() - llfuse.setxattr('%s/%s' % (self.mnt_dir, CTRL_NAME), 'rmtree', cmd) + assert dirname in pyfuse3.listdir(self.mnt_dir) + cmd = ('(%d, %r)' % (pyfuse3.ROOT_INODE, path2bytes(dirname))).encode() + pyfuse3.setxattr('%s/%s' % (self.mnt_dir, CTRL_NAME), 'rmtree', cmd) + # Invalidation is asynchronous... + try: + retry(5, lambda: not os.path.exists(fullname)) + except RetryTimeoutError: + pass # assert_raises should fail assert_raises(FileNotFoundError, os.stat, fullname) - assert dirname not in llfuse.listdir(self.mnt_dir) + assert dirname not in pyfuse3.listdir(self.mnt_dir) |