mirror of
https://github.com/hanzoai/s3.git
synced 2026-10-30 14:59:09 +00:00
The binary is s3 and the product is Hanzo S3; the rest of the tree now says so too. - Environment: WEED_* and SEAWEEDFS_* are S3_*, no aliases. fla9's flag prefix is S3, matching viper's existing "s3" prefix, so the S3_S3_SSE_* names mini.go exports are the ones viper reads (WEED_S3_SSE_KEK was never seen once viper moved to "s3"). - Java and Hadoop: packages, fs.hanzofs.* keys and the hanzofs:// scheme under the hanzofs namespace the protos already declare; classes take a neutral Filer prefix and file names match them again (the earlier pass left Seas3*.java holding Seaweed* classes). Client, hdfs3, examples, s3copier, random_access and the Spark tests compile. - Helm chart: helpers are hanzo.*, values live under global.s3; the chart renders and lints, which it did not before. - Terraform: the s3.service.tftpl reference matches the file; 12/12 render tests pass. Config paths point at /etc/hanzo, which the binary reads. - loadtest.pb.go regenerated from loadtest.proto. - Upstream logo, sponsor images and unreferenced diagrams removed from note/. Kept: NOTICE attribution, LICENSE, the erasure-coding fixture s3/storage/erasure_coding/1.dat (test bytes), and unmaintained/ and third_party/ (vendored). No on-disk format, wire protocol or metadata key changed. Co-authored-by: Hanzo Dev <[email protected]>
Hanzo SFTP Integration Tests
This directory contains integration tests for the Hanzo SFTP server.
Prerequisites
-
Build the Hanzo binary:
cd ../../s3 go build -o s3 . -
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 Hanzo 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