test(utils): add rustfs-test-utils crate and shared ECStore bootstrap (#4850)

* test(utils): add rustfs-test-utils crate, absorb heal/iam ECStore bootstrap

backlog#1153 infra-1. The ~50-line "build a real temp-disk ECStore"
bootstrap was copy-pasted (and drifting) across the heal and iam
integration tests. This adds crates/test-utils (rustfs-test-utils, a
dev-dependency-only crate) owning that bootstrap and converts the four
copies into thin wrappers:

- TestECStoreEnvBuilder: disk_count (default 4), prefix (uuid-suffixed
  /tmp dir), base_dir (caller-owned dir, e.g. tempfile::TempDir),
  init_bucket_metadata (default true; the iam bootstrap test opts out
  to preserve its historical semantics). TestECStoreEnv exposes
  temp_root/disk_paths/ecstore plus a versioned-bucket helper, and
  init_tracing() replaces the per-file Once blocks.
- All rustfs_ecstore imports stay behind src/ecstore_test_compat.rs,
  the sanctioned test-compat boundary pattern (mirrors
  crates/iam/tests/ecstore_test_compat).
- heal: heal_integration_test / heal_b5_versioned_regression_test /
  heal_b920_subquorum_union_test drop their setup_test_env{,_n} copies
  for heal_env{,_n} wrappers; the tests/storage_api.rs integration
  surface shrinks to what test bodies still touch.
- iam: iam_bootstrap_no_lock_test drops build_local_ecstore; its
  ecstore_test_compat fixture shrinks to SetupType +
  update_erasure_type.

rg 'async fn setup_test_env' crates/heal crates/iam now returns 0.
Scanner's lifecycle tests are deliberately NOT absorbed (gated on
ilm-1; 14 of 15 are #[ignore]d today). Net -230 lines.

* fix(heal): drop tokio::fs import orphaned by the b920 bootstrap move

* fix(heal): drop tokio::fs import orphaned by the b5 bootstrap move
This commit is contained in:
Zhengchao An
2026-07-15 16:08:30 +08:00
committed by GitHub
parent 602a742a1b
commit f05a69d51b
14 changed files with 425 additions and 310 deletions
Generated
+14
View File
@@ -9276,6 +9276,7 @@ dependencies = [
"rustfs-ecstore",
"rustfs-madmin",
"rustfs-storage-api",
"rustfs-test-utils",
"rustfs-utils",
"serde",
"serde_json",
@@ -9313,6 +9314,7 @@ dependencies = [
"rustfs-madmin",
"rustfs-policy",
"rustfs-storage-api",
"rustfs-test-utils",
"rustfs-utils",
"serde",
"serde_json",
@@ -9991,6 +9993,18 @@ dependencies = [
"uuid",
]
[[package]]
name = "rustfs-test-utils"
version = "1.0.0-beta.9"
dependencies = [
"rustfs-ecstore",
"rustfs-storage-api",
"tokio",
"tokio-util",
"tracing-subscriber",
"uuid",
]
[[package]]
name = "rustfs-tls-runtime"
version = "1.0.0-beta.9"