You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
1 day ago | |
|---|---|---|
| .. | ||
| testdata | 1 day ago | |
| Makefile | 1 day ago | |
| README.md | 1 day ago | |
| basic_test.go | 1 day ago | |
| framework.go | 1 day ago | |
| go.mod | 1 day ago | |
| go.sum | 1 day ago | |
README.md
SeaweedFS SFTP Integration Tests
This directory contains integration tests for the SeaweedFS SFTP server.
Prerequisites
-
Build the SeaweedFS binary:
cd ../../weed go build -o weed . -
Ensure
ssh-keygenis available (for generating test SSH host keys)
Running Tests
Run all tests
make test
Run tests with verbose output
make test-verbose
Run a specific test
go test -v -run TestHomeDirPathTranslation
Skip long-running tests
go test -short ./...
Test Structure
framework.go- Test framework that starts SeaweedFS cluster with SFTPbasic_test.go- Basic SFTP operation tests including:- HomeDir path translation (fixes issue #7470)
- File upload/download
- Directory operations
- Large file handling
- Edge cases
Test Configuration
Tests use testdata/userstore.json which defines test users:
| Username | Password | HomeDir | Permissions |
|---|---|---|---|
| admin | adminpassword | / | Full access |
| testuser | testuserpassword | /sftp/testuser | Full access to home |
| readonly | readonlypassword | /public | Read-only |
Key Tests
TestHomeDirPathTranslation
Tests the fix for issue #7470 where
users with a non-root HomeDir (e.g., /sftp/testuser) could not upload files to /
because the path wasn't being translated to their home directory.
The test verifies:
- Uploading to
/correctly maps to the user's HomeDir - Creating directories at
/works - Listing
/shows the user's home directory contents - All path operations respect the HomeDir translation
Debugging
To debug test failures:
-
Enable verbose output:
go test -v -run TestName -
Keep test artifacts (don't cleanup):
config := DefaultTestConfig() config.SkipCleanup = true -
Enable debug logging:
config := DefaultTestConfig() config.EnableDebug = true