diff --git a/crates/e2e_test/src/cluster_multidrive_pool_test.rs b/crates/e2e_test/src/cluster_multidrive_pool_test.rs index 3f88e5af4..22b456ffa 100644 --- a/crates/e2e_test/src/cluster_multidrive_pool_test.rs +++ b/crates/e2e_test/src/cluster_multidrive_pool_test.rs @@ -76,6 +76,28 @@ async fn cluster_multidrive_single_pool_smoke() -> TestResult { Ok(()) } +/// 4 nodes x 4 drives, single pool: exercise the maximum local erasure layout +/// supported by the cluster harness. This remains in the nightly lane because +/// it starts four real server processes and sixteen data directories. +#[tokio::test] +async fn cluster_four_node_four_drive_single_pool_smoke() -> TestResult { + crate::common::init_logging(); + + let mut cluster = RustFSTestClusterEnvironment::with_topology(ClusterTopology::single_pool_multidrive(4, 4)).await?; + + let volumes = cluster.rustfs_volumes_arg(); + assert_eq!(volumes.split(' ').count(), 16, "expected 16 explicit endpoints, got: {volumes}"); + assert!(!volumes.contains('{'), "single-pool layout must not use ellipses: {volumes}"); + assert!(cluster.nodes.iter().all(|node| node.data_dirs.len() == 4)); + + cluster.start().await?; + cluster.create_test_bucket(BUCKET).await?; + + let payload = vec![0x3Cu8; 1024 * 1024]; + put_get_roundtrip(&cluster, "multidrive-4/object", &payload).await?; + Ok(()) +} + /// Two single-node pools, 2 drives each: the multi-pool layout boots and /// round-trips. Every pool is a distinct erasure pool (`pool_idx` 0 and 1). #[tokio::test] diff --git a/docs/testing/e2e-suite-inventory.md b/docs/testing/e2e-suite-inventory.md index c8412b236..eef3ea1c7 100644 --- a/docs/testing/e2e-suite-inventory.md +++ b/docs/testing/e2e-suite-inventory.md @@ -30,7 +30,7 @@ | chaos | 2 | | | checksum_upload_test | 7 | | | cluster_concurrency_test | 3 | 🌙 | -| cluster_multidrive_pool_test | 2 | 🌙 | +| cluster_multidrive_pool_test | 3 | 🌙 | | common | 17 | | | compression_test | 6 | ✅ | | connection_cap_test | 2 | | @@ -103,4 +103,4 @@ | tls_hot_reload_test | 1 | ✅ | | version_id_regression_test | 10 | ✅ | -**Total listed: 619 tests across 86 modules · PR smoke: 165 tests / 36 modules · merge/main full: 495 tests / 77 modules · nightly replication: 56 tests · nightly cluster faults: 29 tests / 7 modules · nightly protocols: 16 tests** · updated 2026-08-26. +**Total listed: 620 tests across 86 modules · PR smoke: 165 tests / 36 modules · merge/main full: 495 tests / 77 modules · nightly replication: 56 tests · nightly cluster faults: 30 tests / 7 modules · nightly protocols: 16 tests** · updated 2026-08-31.