mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-23 12:49:04 +00:00
docs(testing): describe fail-closed E2E tools
This commit is contained in:
@@ -325,8 +325,8 @@ slow-timeout = { period = "60s", terminate-after = 2, grace-period = "10s" }
|
|||||||
#
|
#
|
||||||
# Wired by .github/workflows/e2e-replication-nightly.yml (schedule +
|
# Wired by .github/workflows/e2e-replication-nightly.yml (schedule +
|
||||||
# workflow_dispatch), which builds the rustfs binary once, installs awscurl so
|
# workflow_dispatch), which builds the rustfs binary once, installs awscurl so
|
||||||
# the STS dual-node test actually exercises its path (it skips gracefully with
|
# the STS dual-node test actually exercises its path (the test fails when
|
||||||
# a visible log line when awscurl is absent), and routes scheduled failures
|
# awscurl is absent), and routes scheduled failures
|
||||||
# through .github/actions/schedule-failure-issue (ci-8). Explicit division of
|
# through .github/actions/schedule-failure-issue (ci-8). Explicit division of
|
||||||
# labor with e2e-full: these tests run only in the consolidated nightly
|
# labor with e2e-full: these tests run only in the consolidated nightly
|
||||||
# workflow, not in the merge/main lane.
|
# workflow, not in the merge/main lane.
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ via `create_s3_client(idx)` / `create_all_clients()`. See
|
|||||||
| `find_available_port` | Random free port (isolation primitive) |
|
| `find_available_port` | Random free port (isolation primitive) |
|
||||||
| `rustfs_binary_path` / `_with_features` | Locate/build the binary; honors `RUSTFS_BUILD_FEATURES` |
|
| `rustfs_binary_path` / `_with_features` | Locate/build the binary; honors `RUSTFS_BUILD_FEATURES` |
|
||||||
| `requested_rustfs_build_features` / `rustfs_build_feature_enabled` | Feature-gate a test to what the binary was built with |
|
| `requested_rustfs_build_features` / `rustfs_build_feature_enabled` | Feature-gate a test to what the binary was built with |
|
||||||
| `awscurl_available` + `execute_awscurl` / `awscurl_post` / `_get` / `_put` / `_delete` / `awscurl_post_sts_form_urlencoded` | Admin/STS API calls via `awscurl` (skip gracefully when absent) |
|
| `execute_awscurl` / `awscurl_post` / `_get` / `_put` / `_delete` / `awscurl_post_sts_form_urlencoded` | Admin/STS API calls via `awscurl`; missing binaries are test failures |
|
||||||
| `replication_fast_env` | Env vars that shrink replication timers (from repl-4); pass to `start_rustfs_server_with_env` |
|
| `replication_fast_env` | Env vars that shrink replication timers (from repl-4); pass to `start_rustfs_server_with_env` |
|
||||||
| `local_http_client` / `init_logging` | Loopback HTTP client; idempotent tracing init |
|
| `local_http_client` / `init_logging` | Loopback HTTP client; idempotent tracing init |
|
||||||
| `RustFSTestClusterEnvironment` (`new`/`start`/`start_node`/`stop_node`/`create_all_clients`) | Multi-node harness |
|
| `RustFSTestClusterEnvironment` (`new`/`start`/`start_node`/`stop_node`/`create_all_clients`) | Multi-node harness |
|
||||||
@@ -189,7 +189,7 @@ cargo nextest run --profile e2e-smoke -p e2e_test
|
|||||||
cargo nextest run --profile e2e-full -p e2e_test
|
cargo nextest run --profile e2e-full -p e2e_test
|
||||||
# Cluster fault nightly lane
|
# Cluster fault nightly lane
|
||||||
cargo nextest run --profile e2e-nightly -p e2e_test
|
cargo nextest run --profile e2e-nightly -p e2e_test
|
||||||
# Replication nightly lane; install awscurl so STS paths do not skip
|
# Replication nightly lane; awscurl is required for STS paths
|
||||||
cargo nextest run --profile e2e-repl-nightly -p e2e_test
|
cargo nextest run --profile e2e-repl-nightly -p e2e_test
|
||||||
# Fixed-port protocol nightly lane
|
# Fixed-port protocol nightly lane
|
||||||
RUSTFS_BUILD_FEATURES=ftps,webdav,sftp \
|
RUSTFS_BUILD_FEATURES=ftps,webdav,sftp \
|
||||||
@@ -221,9 +221,8 @@ The `s3s-e2e` CI job selects a random `RUSTFS_TEST_PORT` (see the `e2e-tests`
|
|||||||
job) to dodge this; local single-node tests already use random ports, so a
|
job) to dodge this; local single-node tests already use random ports, so a
|
||||||
lingering orphan is usually the cause of a spurious bind failure.
|
lingering orphan is usually the cause of a spurious bind failure.
|
||||||
|
|
||||||
**`awscurl` not found.** `awscurl`-dependent tests skip gracefully with a
|
**`awscurl` not found.** `awscurl`-dependent tests fail closed with a process
|
||||||
visible log line (`awscurl_available()`); install `awscurl` to actually run
|
spawn error. Install the pinned CI version before running their profiles.
|
||||||
them.
|
|
||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
@@ -258,10 +257,9 @@ A test module may join the smoke filter only if every test in it is:
|
|||||||
2. **Single-node** — spawns its own server via
|
2. **Single-node** — spawns its own server via
|
||||||
`RustFSTestEnvironment`/`start_rustfs_server` on a random port with an
|
`RustFSTestEnvironment`/`start_rustfs_server` on a random port with an
|
||||||
isolated temp dir. No `RustFSTestClusterEnvironment`, no fixed ports.
|
isolated temp dir. No `RustFSTestClusterEnvironment`, no fixed ports.
|
||||||
3. **Dependency-free** — no pre-started server at `localhost:9000`, no Vault,
|
3. **Hermetic dependencies** — no pre-started server at `localhost:9000`, no
|
||||||
no fixed protocol ports. Tools that may be absent on the runner (e.g.
|
Vault, and no fixed protocol ports. Any required CLI must be pinned and
|
||||||
`awscurl`) are acceptable only when the test skips gracefully with a
|
installed by the workflow; a missing CLI must fail the test.
|
||||||
visible log line (see `bucket_policy_check_test.rs`).
|
|
||||||
4. **Not `#[ignore]`** — ignored tests are activation work (backlog#1149
|
4. **Not `#[ignore]`** — ignored tests are activation work (backlog#1149
|
||||||
ci-13 / backlog#1148 ilm-3), not smoke candidates.
|
ci-13 / backlog#1148 ilm-3), not smoke candidates.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user