Add an integration test suite using the file tape backend - #611
Open
matejk wants to merge 3 commits into
Open
Conversation
This was referenced Jun 12, 2026
matejk
force-pushed
the
tests/integration-suite
branch
3 times, most recently
from
June 12, 2026 12:38
453f49f to
d5f14f3
Compare
vandelvan
requested review from
Yahrielcodes,
amissael95,
rangelmx and
vandelvan
June 12, 2026 20:55
matejk
force-pushed
the
tests/integration-suite
branch
from
June 17, 2026 20:35
d5f14f3 to
2618ac3
Compare
matejk
force-pushed
the
tests/integration-suite
branch
from
July 3, 2026 22:01
2618ac3 to
5b98311
Compare
matejk
force-pushed
the
tests/integration-suite
branch
from
August 17, 2026 20:10
5b98311 to
8944923
Compare
The share flag was passed as the mode, so the file backend created 0200 files that a non-root user could not reopen.
matejk
force-pushed
the
tests/integration-suite
branch
from
August 17, 2026 20:13
8944923 to
31d99c4
Compare
Shell tests under make check and ctest; skipped without /dev/fuse. tests/run-in-docker.sh runs them in a container on non-Linux hosts.
matejk
force-pushed
the
tests/integration-suite
branch
2 times, most recently
from
August 17, 2026 20:28
4334285 to
cc20b62
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A shell-based integration test suite (14 tests) driven by
make check, mounting a file-backend volume from the build tree — no installation or tape hardware needed. Tests need a Linux host with/dev/fuseand are skipped elsewhere;tests/run-in-docker.shruns the suite in an Ubuntu container for development on non-Linux hosts. A CI workflow runs the suite on every push.Coverage: mount/unmount, data roundtrips, truncate, rename, directory operations, xattrs, symlinks, large directories, a tar roundtrip, rename flags (
RENAME_NOREPLACE/RENAME_EXCHANGE) andftruncatevia a small C helper, inode stability across remounts (verifiesuse_ino/index-UID passthrough), FUSE request sizes,direct_io, readdirplus, and content verification of writes larger than the tape block size.Relationship to the other PRs
The first commit duplicates the
arch_openpermissions fix from Fix file permissions passed to open(2) by the POSIX arch_open #612: the file tape backend created files with mode 0200, so formatting and mounting as a regular user — which this suite and its CI do — failed withEDEV_RW_PERM. The duplicate keeps this PR's CI green standalone; git drops it whichever merges first.t/13-large-write-integrity.shis the regression test for the scheduler data loss (silent data corruption on ARM64? #591): single multi-block writes of random data, content-compared while mounted and after a remount. It passes once Fix data loss on writes larger than the tape block size #607 (or Add libfuse 3 support with libfuse 2 fallback #603, which carries the same fix) is merged.t/10–t/12are FUSE-version aware: on libfuse 2 the request-size test expects thebig_writeslimit and the readdirplus prefill is not asserted; the strict expectations activate with the FUSE 3 port (Add libfuse 3 support with libfuse 2 fallback #603). All three pass on both APIs. Add libfuse 3 support with libfuse 2 fallback #603 ships the same three scripts with its feature commits; the contents are identical, so the merge is clean in either order.The test list is computed from
tests/t/(wildcard in automake), and the harness locates build artifacts in both the autotools and CMake layouts, so the same scripts run undermake checkand the ctest registration of Add a CMake build alongside autotools #606 — no registration conflicts in any merge order.Verification
All 14 tests pass on Ubuntu against both fuse2 and fuse3 builds (with #603 merged alongside), via
make checkandctest.