mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-24 05:06:28 +00:00
test(e2e): require zero KMS upload failures
This commit is contained in:
@@ -1,2 +1,2 @@
|
|||||||
sha256-darwin=9f767b37ed8b1c82da62ea441462d75487785c8086e56f08fb6f6cd89c6e2e52
|
sha256-darwin=c0c43689fe500083d8ec2f6654f5bc43e58bede775a5c897e78eaa477fd1f489
|
||||||
sha256-linux=fbdaf42b220958d4b1e8880e0f8b5a7992d38e21051bb60596dd4538424757d6
|
sha256-linux=a1361da501639f7f8fa02b3f8662ba8d4f916711f5be8023bafc9a6036c046c2
|
||||||
|
|||||||
@@ -393,11 +393,10 @@ async fn test_kms_multipart_upload_interruption() -> Result<(), Box<dyn std::err
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Test KMS resilience to temporary resource constraints
|
/// Test concurrent KMS encryption requests
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_kms_resource_constraints() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
async fn test_kms_concurrent_encryption_requests() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
||||||
init_logging();
|
init_logging();
|
||||||
info!("🧪 Testing KMS behavior under resource constraints");
|
|
||||||
|
|
||||||
let mut kms_env = LocalKMSTestEnvironment::new().await?;
|
let mut kms_env = LocalKMSTestEnvironment::new().await?;
|
||||||
let _default_key_id = kms_env.start_rustfs_for_local_kms().await?;
|
let _default_key_id = kms_env.start_rustfs_for_local_kms().await?;
|
||||||
@@ -431,29 +430,27 @@ async fn test_kms_resource_constraints() -> Result<(), Box<dyn std::error::Error
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Wait for all uploads to complete
|
// Wait for all uploads to complete
|
||||||
let mut successful_uploads = 0;
|
let mut failures = Vec::new();
|
||||||
let mut failed_uploads = 0;
|
|
||||||
|
|
||||||
for task in upload_tasks {
|
for task in upload_tasks {
|
||||||
let (object_key, result) = task.await.unwrap();
|
let (object_key, result) = task.await?;
|
||||||
match result {
|
match result {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
successful_uploads += 1;
|
|
||||||
info!("✅ Rapid upload {} succeeded", object_key);
|
info!("✅ Rapid upload {} succeeded", object_key);
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
failed_uploads += 1;
|
|
||||||
warn!("❌ Rapid upload {} failed: {}", object_key, e);
|
warn!("❌ Rapid upload {} failed: {}", object_key, e);
|
||||||
|
failures.push(format!("{object_key}: {e}"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
info!("📊 Rapid upload results: {} succeeded, {} failed", successful_uploads, failed_uploads);
|
assert!(
|
||||||
|
failures.is_empty(),
|
||||||
// We expect most uploads to succeed even under load
|
"all 10 concurrent KMS uploads must succeed; failures: {}",
|
||||||
assert!(successful_uploads >= 7, "Expected at least 7/10 rapid uploads to succeed");
|
failures.join("; ")
|
||||||
|
);
|
||||||
|
|
||||||
kms_env.base_env.delete_test_bucket(TEST_BUCKET).await?;
|
kms_env.base_env.delete_test_bucket(TEST_BUCKET).await?;
|
||||||
info!("✅ Resource constraints test completed successfully");
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user