mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-19 06:31:54 +00:00
fix
This commit is contained in:
@@ -257,16 +257,16 @@ func (s *POSIXComplianceTestSuite) TestPermissions(t *testing.T) {
|
||||
stat, err := os.Stat(testFile)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Note: Some FUSE implementations may not preserve execute bits on regular files
|
||||
// SeaweedFS FUSE mount typically masks execute bits for security
|
||||
// Note: The final file permissions are affected by the system's umask.
|
||||
// We check against the requested mode and the mode as affected by a common umask (e.g. 0022).
|
||||
actualMode := stat.Mode() & os.ModePerm
|
||||
expectedMode := os.FileMode(0642)
|
||||
expectedModeNoExec := os.FileMode(0640) // 642 without execute bits
|
||||
expectedModeWithUmask := os.FileMode(0640) // e.g., 0642 with umask 0002 or 0022
|
||||
|
||||
// Accept either the exact permissions or permissions without execute bit
|
||||
if actualMode != expectedMode && actualMode != expectedModeNoExec {
|
||||
// Accept either the exact permissions or permissions as modified by umask
|
||||
if actualMode != expectedMode && actualMode != expectedModeWithUmask {
|
||||
t.Errorf("Expected file permissions %o or %o, but got %o",
|
||||
expectedMode, expectedModeNoExec, actualMode)
|
||||
expectedMode, expectedModeWithUmask, actualMode)
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -115,10 +115,11 @@ func (s *POSIXExtendedTestSuite) TestExtendedAttributes(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
require.Greater(t, size, 0)
|
||||
|
||||
// Parse the null-separated list
|
||||
attrList := string(listBuf[:size])
|
||||
for name := range attrs {
|
||||
require.Contains(t, attrList, name)
|
||||
// Parse the null-separated list and verify attributes
|
||||
attrList := parseXattrList(listBuf[:size])
|
||||
expectedAttrs := []string{"user.attr1", "user.attr2", "user.attr3"}
|
||||
for _, expectedAttr := range expectedAttrs {
|
||||
require.Contains(t, attrList, expectedAttr, "Expected attribute should be in the list")
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"syscall"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -476,8 +477,11 @@ func (s *ExternalPOSIXTestSuite) testEdgeCases(t *testing.T, mountPoint string)
|
||||
// Note: filepath.Join(testDir, "") returns testDir itself
|
||||
err := os.WriteFile(testDir, []byte("test"), 0644)
|
||||
require.Error(t, err)
|
||||
// Verify the error indicates we're trying to write to a directory
|
||||
require.Contains(t, err.Error(), "directory", "Expected error to indicate target is a directory")
|
||||
// Verify the error is specifically about the target being a directory
|
||||
var pathErr *os.PathError
|
||||
if require.ErrorAs(t, err, &pathErr) {
|
||||
require.Equal(t, syscall.EISDIR, pathErr.Err)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("VeryLongFileName", func(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user