aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_examples.py
diff options
context:
space:
mode:
authorMartin Pärtel <martin.partel@gmail.com>2021-02-03 11:53:21 +0200
committerGitHub <noreply@github.com>2021-02-03 09:53:21 +0000
commit5012a05ac875c1988263faaa77177c27c62c52bb (patch)
tree0207e1ee07d56e020798b89b30bea75d10559f74 /test/test_examples.py
parentb9e3ea01dbbbba9518da216dd29c042af871ae31 (diff)
downloadlibfuse-5012a05ac875c1988263faaa77177c27c62c52bb.tar.gz
Fix returning inode numbers from readdir() in offset==0 mode. (#584)
- Test added for all passthrough examples. - passthrough.c uses offset==0 mode. The others don't. - passthrough.c changed to set FUSE_FILL_DIR_PLUS to make the test pass. - This fixes #583.
Diffstat (limited to 'test/test_examples.py')
-rwxr-xr-xtest/test_examples.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/test/test_examples.py b/test/test_examples.py
index da50b2a..aab970f 100755
--- a/test/test_examples.py
+++ b/test/test_examples.py
@@ -72,6 +72,15 @@ class raii_tmpdir:
def short_tmpdir():
return raii_tmpdir()
+def readdir_inode(dir):
+ cmd = base_cmdline + [ pjoin(basename, 'test', 'readdir_inode'), dir ]
+ with subprocess.Popen(cmd, stdout=subprocess.PIPE,
+ universal_newlines=True) as proc:
+ lines = proc.communicate()[0].splitlines()
+ lines.sort()
+ return lines
+
+
@pytest.mark.parametrize("cmdline_builder", (invoke_directly, invoke_mount_fuse,
invoke_mount_fuse_drop_privileges))
@pytest.mark.parametrize("options", powerset(options))
@@ -602,6 +611,10 @@ def tst_readdir(src_dir, mnt_dir):
listdir_should.sort()
assert listdir_is == listdir_should
+ inodes_is = readdir_inode(mnt_newdir)
+ inodes_should = readdir_inode(src_newdir)
+ assert inodes_is == inodes_should
+
os.unlink(file_)
os.unlink(subfile)
os.rmdir(subdir)
@@ -623,6 +636,10 @@ def tst_readdir_big(src_dir, mnt_dir):
listdir_should = sorted(os.listdir(src_dir))
assert listdir_is == listdir_should
+ inodes_is = readdir_inode(mnt_dir)
+ inodes_should = readdir_inode(src_dir)
+ assert inodes_is == inodes_should
+
for fname in fnames:
stat_src = os.stat(pjoin(src_dir, fname))
stat_mnt = os.stat(pjoin(mnt_dir, fname))
@@ -631,7 +648,7 @@ def tst_readdir_big(src_dir, mnt_dir):
assert stat_src.st_ctime == stat_mnt.st_ctime
assert stat_src.st_size == stat_mnt.st_size
os.unlink(pjoin(src_dir, fname))
-
+
def tst_truncate_path(mnt_dir):
assert len(TEST_DATA) > 1024