Repository navigation
fix(test): make local VM execution portable - #135
Merged
Merged
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Escaped quotes corrupt environment values and prevent cluster startup, while malformed delete batches break versioned-bucket cleanup and upgrade seeding when trimming is needed.
3 open issues
What changed in this PR
This PR aims to make the live RustFS suites portable to local VM fleets while preserving the reference environment’s topology and test expectations.
Changes:
- Adjust benchmark fallback handling, remote privilege selection, and jq batching.
- Add a read-only environment preflight and local execution guidance.
- Add compatibility tests and a dedicated CI workflow.
| File | Description |
|---|---|
test_rustfs_table.py |
Tests remote privilege selection. |
test_rustfs_replication.py |
Tests portable jq batching. |
test_rustfs_performance_testing.py |
Tests help execution without HOME. |
test_check_execution_environment.py |
Tests environment preflight checks. |
scripts/lib/jq_nwise.jq |
Adds a shared array-batching helper. |
scripts/check_execution_environment.py |
Checks commands, Bash, AWS CLI, ports, and drives. |
rustfs-upgrade-test.sh |
Uses the shared helper for seed trimming. |
rustfs-table-test.sh |
Selects privileges remotely and permits sourcing for tests. |
rustfs-replication-test.sh |
Uses the shared helper for cleanup batching. |
rustfs_performance_test.sh |
Guards HOME access during benchmark resolution. |
README.md |
Documents preflight usage and local execution requirements. |
.github/workflows/environment-compatibility-tests.yml |
Adds compatibility checks to CI. |
Review effort: Balanced
Member
Author
|
All three review findings are addressed in
Verification: 24 focused tests pass, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
Make the live suites portable to local VM fleets without changing the default topology, assertions, thresholds, or execution order used by the existing reference environment.
Changes
HOMElookup in the performance suite and prefer the bundled benchmark script as a fallback._nwisebuiltin with a portable batching helper used by both replication cleanup and upgrade seed trimming.list-objects-v2CLI parser compatibilityRUSTFS_RECEIVER_PORT, four-drive layout expectations, andbash <script>fallback.No test topology, expected failure, product verdict, timeout, or case assertion is changed.
Verification
python3 -B -m unittest discover -v1332 tests,OK (skipped=1)python3 -B -m unittest -v test_check_execution_environment.py test_rustfs_table.py test_rustfs_performance_testing.py test_rustfs_replication.py22 tests OKenv -u HOME bash test_rustfs_pool_expand.shbash -non all changed suitesshellcheck -x -S erroron all four changed execution scriptsKnown base failure
scripts/test_functional_dispatch.py::test_registry_matches_ported_workflowsfails on the currentorigin/mainbefore this branch. The check rejectsrepository_dispatchinrustfs-validation-cases.yml. This branch does not modify that registry or workflow.Rollback
Revert this PR. Runtime defaults remain unchanged, so no data migration or configuration rollback is required.