mirror of
https://github.com/rustfs/rustfs.git
synced 2026-09-07 20:46:11 +00:00
fix(heal): drop test locks before awaits
Limit synchronous mock mutex guards to pre-await scopes in canonical outcome tests. Co-Authored-By: heihutu <heihutu@gmail.com> Co-Authored-By: zhi22915 <qiuzgang@gmail.com>
This commit is contained in:
@@ -171,8 +171,11 @@ mod canonical_outcome {
|
|||||||
.find(|item| item.identity.object == "object-a")
|
.find(|item| item.identity.object == "object-a")
|
||||||
.expect("failed object");
|
.expect("failed object");
|
||||||
assert_eq!(failed.disposition, HealObjectDisposition::Failed(HealFailureClass::RetryExhausted));
|
assert_eq!(failed.disposition, HealObjectDisposition::Failed(HealFailureClass::RetryExhausted));
|
||||||
let calls = storage.heal_object_calls.lock().expect("calls");
|
let object_b_calls = {
|
||||||
assert_eq!(calls.iter().filter(|object| object.as_str() == "object-b").count(), 1);
|
let calls = storage.heal_object_calls.lock().expect("calls");
|
||||||
|
calls.iter().filter(|object| object.as_str() == "object-b").count()
|
||||||
|
};
|
||||||
|
assert_eq!(object_b_calls, 1);
|
||||||
let progress = task.get_progress().await;
|
let progress = task.get_progress().await;
|
||||||
assert_eq!((progress.objects_scanned, progress.objects_healed, progress.objects_failed), (2, 1, 1));
|
assert_eq!((progress.objects_scanned, progress.objects_healed, progress.objects_failed), (2, 1, 1));
|
||||||
}
|
}
|
||||||
@@ -357,8 +360,11 @@ mod canonical_outcome {
|
|||||||
request.options.set_index = Some(3);
|
request.options.set_index = Some(3);
|
||||||
let task = HealTask::from_request(request, storage.clone());
|
let task = HealTask::from_request(request, storage.clone());
|
||||||
task.execute().await.expect("decode fixture");
|
task.execute().await.expect("decode fixture");
|
||||||
let options = storage.object_heal_opts.lock().expect("storage options");
|
let pool_and_set = {
|
||||||
assert_eq!((options[0].pool, options[0].set), (Some(2), Some(3)));
|
let options = storage.object_heal_opts.lock().expect("storage options");
|
||||||
|
(options[0].pool, options[0].set)
|
||||||
|
};
|
||||||
|
assert_eq!(pool_and_set, (Some(2), Some(3)));
|
||||||
let outcome = task.get_outcome().await;
|
let outcome = task.get_outcome().await;
|
||||||
let identity = &outcome.objects[0].identity;
|
let identity = &outcome.objects[0].identity;
|
||||||
assert_eq!((identity.pool_index, identity.set_index), (Some(2), Some(3)));
|
assert_eq!((identity.pool_index, identity.set_index), (Some(2), Some(3)));
|
||||||
|
|||||||
Reference in New Issue
Block a user