From 4fa56e235800d859b174f4b795316a4cbfe1132a Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Thu, 22 Oct 2026 03:38:56 -0700 Subject: [PATCH] fuse integration: align the posix docs with the suite The doc listed a docker-test-posix target and make variables that do not exist, and ran go test against single files that cannot compile alone. The roadmap also still claimed the platform-specific tests this suite now implements were all skipped. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- test/fuse_integration/POSIX_COMPLIANCE.md | 27 +++++++------------ .../POSIX_IMPLEMENTATION_ROADMAP.md | 19 ++++++------- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/test/fuse_integration/POSIX_COMPLIANCE.md b/test/fuse_integration/POSIX_COMPLIANCE.md index 48fa230a46..4b025b11c0 100644 --- a/test/fuse_integration/POSIX_COMPLIANCE.md +++ b/test/fuse_integration/POSIX_COMPLIANCE.md @@ -340,8 +340,7 @@ make -f posix_Makefile test-nfstest-posix sudo usermod -a -G fuse $USER # Re-login or run: newgrp fuse -# Check mount options -make -f posix_Makefile test-posix-basic MOUNT_OPTIONS="-allowOthers" +# Mount with -allowOthers if other users need access (test config MountOptions) ``` #### Extended Attributes Not Supported @@ -366,14 +365,14 @@ getfattr --version ### Debug Mode ```bash -# Run tests with verbose output -make -f posix_Makefile test-posix-basic VERBOSE=1 +# Test targets already run go test -v and keep logs under reports/ +make -f posix_Makefile test-posix-basic -# Keep test files for inspection -make -f posix_Makefile test-posix-basic CLEANUP=false +# Run against an existing external mount instead of a fresh cluster +make -f posix_Makefile test-posix-basic TEST_MOUNT_POINT=/path/to/mount -# Enable debug logging -make -f posix_Makefile test-posix-basic DEBUG=true +# Extend the 45-minute per-suite timeout +make -f posix_Makefile test-posix-full TEST_TIMEOUT=90m ``` ### Manual Test Execution @@ -381,10 +380,10 @@ make -f posix_Makefile test-posix-basic DEBUG=true ```bash # Run specific test cd test/fuse_integration -go test -v -run TestPOSIXCompliance/FileOperations posix_compliance_test.go +go test -v -run 'TestPOSIXCompliance/FileOperations' . # Run with custom timeout -go test -v -timeout 30m -run TestPOSIXExtended posix_extended_test.go +go test -v -timeout 30m -run TestPOSIXExtended . ``` ## 🔄 CI/CD Integration @@ -459,14 +458,6 @@ pipeline { } ``` -### Docker-based Testing - -```bash -# Build Docker image for testing -cd test/fuse_integration -make -f posix_Makefile docker-test-posix -``` - ## 🎯 POSIX Compliance Checklist ### Critical POSIX Features diff --git a/test/fuse_integration/POSIX_IMPLEMENTATION_ROADMAP.md b/test/fuse_integration/POSIX_IMPLEMENTATION_ROADMAP.md index 59d6430e86..5ac9939e72 100644 --- a/test/fuse_integration/POSIX_IMPLEMENTATION_ROADMAP.md +++ b/test/fuse_integration/POSIX_IMPLEMENTATION_ROADMAP.md @@ -4,7 +4,7 @@ This document tracks the implementation status of POSIX features in the SeaweedF ## Overview -The POSIX compliance test suite currently has several tests that are skipped due to requiring platform-specific implementations. This roadmap outlines the steps needed to implement these tests and achieve comprehensive POSIX compliance validation. +The platform-specific tests listed below are implemented; this document records the implementation plan that produced them, plus the one feature still pending. ## Current Status @@ -21,14 +21,15 @@ The POSIX compliance test suite currently has several tests that are skipped due ### 🚧 Partially Implemented - Cross-platform compatibility (basic implementation with platform-specific access time handling) +- File sealing (still skipped; Linux-specific, pending) -### ❌ Missing Implementations +### ✅ Implemented Platform-Specific Features #### 1. Extended Attributes (xattr) **Priority: High** **Platforms: Linux, macOS, FreeBSD** -**Current Status:** All xattr tests are skipped +**Status:** Implemented - `TestExtendedAttributes/SetExtendedAttribute` - `TestExtendedAttributes/ListExtendedAttributes` - `TestExtendedAttributes/RemoveExtendedAttribute` @@ -58,7 +59,7 @@ func setXattr(path, name string, value []byte) error { **Priority: High** **Platforms: All POSIX systems** -**Current Status:** All mmap tests are skipped +**Status:** Implemented - `TestMemoryMapping/MemoryMappedRead` - `TestMemoryMapping/MemoryMappedWrite` @@ -84,7 +85,7 @@ func testMmap(t *testing.T, filePath string) { **Priority: Medium** **Platforms: All POSIX systems** -**Current Status:** Vectored I/O test is skipped +**Status:** Implemented - `TestAdvancedIO/VectoredIO` **Implementation Plan:** @@ -100,7 +101,7 @@ func testVectoredIO(t *testing.T, filePath string) { **Priority: Medium** **Platforms: Linux, some Unix variants** -**Current Status:** Direct I/O test is skipped +**Status:** Implemented - `TestDirectIO/DirectIO` **Implementation Plan:** @@ -116,7 +117,7 @@ func testDirectIO(t *testing.T, filePath string) { **Priority: Medium** **Platforms: Linux, some Unix variants** -**Current Status:** fallocate test is skipped +**Status:** Implemented - `TestFilePreallocation/Fallocate` **Implementation Plan:** @@ -132,7 +133,7 @@ func testFallocate(t *testing.T, filePath string) { **Priority: Low** **Platforms: Linux, FreeBSD, some Unix variants** -**Current Status:** sendfile test is skipped +**Status:** Implemented - `TestZeroCopyTransfer/Sendfile` **Implementation Plan:** @@ -148,7 +149,7 @@ func testSendfile(t *testing.T, srcPath, dstPath string) { **Priority: Low** **Platforms: Linux only** -**Current Status:** File sealing test is skipped +**Current Status:** File sealing test is still skipped - `TestFileSealing` **Implementation Plan:**