Hi!
I'm sending v4 of this patchset. It tries to fix the problems identified
in the previous version, both by Amir's review and by the sashiko code
review system.
Note however that there were issues identified by the code review system
in the last patch (the readdir kselftest) which I decided not to
implement. Those issues are real *if* the file system is used outside the
scope of these tests. A more robust solution could have been based the
libfuse examples, but I thought that wouldn't be needed and I decided to
use a more simplistic approach. (Maybe that was a wrong decision.)
Finally, here's the (main!) changes since v3:
- Document:
- Simplified text by removing a lot of details; also used Amir's suggested
text
- Added document to index.rst and fixed some typos (sashiko review
system).
- Added extra struct fuse_common_ctx to reduce test boilerplate even more (Amir)
- Fixed several {} mismatches, and reshaped some error handling code (Amir)
- symlink test:
- fixed ->lookup() issue previously identified by sashiko, and that I
had missed (Amir)
- fix wrong login in fs_lookup() (sashiko)
- readdir test:
- use constant value for mtime (Amir)
- Removed redundant condition in fs_lookup() (sashiko)
- acl test:
- use constant uid/gid for ->lookup() and ->getattr() (sashiko)
- fix possible memcpy undef behaviour with a NULL source (sashiko)
Luis Henriques (8):
Documentation: fuse: add document on caches being used by FUSE
selftests/fuse: convert fusectl test to fuse3
selftests/fuse: check that fusectlfs is mounted
selftests/fuse: factor-out test fixture setup/teardown
selftests/fuse: use dynamically allocated memory to store ACLs
selftests/fuse: add some extra ACL caching tests
selftests/fuse: add fuse symlink caching test
selftests/fuse: add fuse readdir caching test
.../filesystems/fuse/fuse-caches.rst | 148 +++++++++
Documentation/filesystems/fuse/index.rst | 1 +
.../selftests/filesystems/fuse/.gitignore | 3 +
.../selftests/filesystems/fuse/Makefile | 28 +-
.../filesystems/fuse/fuse_acl_cache_test.c | 304 ++++++++++++++----
.../selftests/filesystems/fuse/fuse_common.c | 58 ++++
.../selftests/filesystems/fuse/fuse_common.h | 31 ++
.../selftests/filesystems/fuse/fuse_mnt.c | 17 +-
.../fuse/fuse_readdir_cache_test.c | 274 ++++++++++++++++
.../fuse/fuse_symlink_cache_test.c | 163 ++++++++++
.../selftests/filesystems/fuse/fusectl_test.c | 9 +-
11 files changed, 953 insertions(+), 83 deletions(-)
create mode 100644 Documentation/filesystems/fuse/fuse-caches.rst
create mode 100644 tools/testing/selftests/filesystems/fuse/fuse_common.c
create mode 100644 tools/testing/selftests/filesystems/fuse/fuse_common.h
create mode 100644
tools/testing/selftests/filesystems/fuse/fuse_readdir_cache_test.c
create mode 100644
tools/testing/selftests/filesystems/fuse/fuse_symlink_cache_test.c