-
Notifications
You must be signed in to change notification settings - Fork 24
Run a real FUSE test on CI on Linux #652
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1 issue found across 3 files
Prompt for AI agents (all issues)
Check if these issues are valid — if so, understand the root cause of each and fix them.
<file name="test/ci/pass_validate_fuse.sh">
<violation number="1" location="test/ci/pass_validate_fuse.sh:38">
P2: Capture both stdout and stderr for this verbose CLI test so unexpected output on either stream is asserted.
(Based on your team's feedback about capturing stdout and stderr using verbose tests.) [FEEDBACK_USED]</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
|
|
||
| bindfs "$TMP" "$FUSE_MOUNT" | ||
|
|
||
| "$1" validate --verbose "$FUSE_MOUNT/level1/level2/level3/schema.json" "$FUSE_MOUNT/instance.json" 2> "$TMP/output.txt" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P2: Capture both stdout and stderr for this verbose CLI test so unexpected output on either stream is asserted.
(Based on your team's feedback about capturing stdout and stderr using verbose tests.)
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At test/ci/pass_validate_fuse.sh, line 38:
<comment>Capture both stdout and stderr for this verbose CLI test so unexpected output on either stream is asserted.
(Based on your team's feedback about capturing stdout and stderr using verbose tests.) </comment>
<file context>
@@ -0,0 +1,48 @@
+
+bindfs "$TMP" "$FUSE_MOUNT"
+
+"$1" validate --verbose "$FUSE_MOUNT/level1/level2/level3/schema.json" "$FUSE_MOUNT/instance.json" 2> "$TMP/output.txt"
+
+cat << EOF > "$TMP/expected.txt"
</file context>
🤖 Augment PR SummarySummary: Adds a real FUSE-based CI test on Linux to validate path handling through a mounted filesystem. Changes:
Technical Notes: The test asserts the CLI’s verbose output using paths under the FUSE mount to catch issues that don’t reproduce on a normal filesystem. 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - name: Install dependencies (Linux) | ||
| if: runner.os == 'linux' && matrix.platform.type == 'native' | ||
| run: sudo apt-get update --yes && sudo apt-get install --yes zsh | ||
| run: sudo apt-get update --yes && sudo apt-get install --yes zsh bindfs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This installs bindfs only for the native Linux job, but pass_validate_fuse is enabled for any Linux build (including the Alpine container and WSL jobs), which may fail due to missing bindfs and/or unavailable FUSE support. Consider aligning the CI dependency install with where the test is actually enabled so the matrix doesn’t become red unexpectedly.
Severity: high
Other Locations
test/CMakeLists.txt:592test/ci/pass_validate_fuse.sh:36
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| FUSE_MOUNT="$(mktemp -d)" | ||
| clean() { | ||
| fusermount -u "$FUSE_MOUNT" 2>/dev/null || true | ||
| rm -rf "$TMP" "$FUSE_MOUNT" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With set -o errexit, the cleanup rm -rf can fail if the mount wasn’t successfully unmounted (e.g., if fusermount isn’t available or the unmount fails), which can make the test flaky and can mask the original failure. Making the cleanup more failure-tolerant would help keep the reported failure signal accurate.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
See: #650 Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
See: #650
Signed-off-by: Juan Cruz Viotti jv@jviotti.com