mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 08:18:18 +00:00
test(ilm): cover queue terminal partial reports (#5277)
Cover manual transition terminal job records for queue closed and queue send timeout outcomes so backpressure summaries remain partial with the expected counters and queue snapshots. Co-authored-by: heihutu <heihutu@gmail.com>
This commit is contained in:
@@ -7391,6 +7391,53 @@ mod tests {
|
||||
assert!(report.has_partial_enqueue());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn manual_transition_job_record_closed_and_timeout_reports_are_partial() {
|
||||
let options = ManualTransitionRunOptions::default();
|
||||
|
||||
for (bucket, outcome, skipped_queue_closed, skipped_queue_timeout, queue_snapshot) in [
|
||||
(
|
||||
"manual-queue-closed-bucket",
|
||||
TransitionEnqueueOutcome::QueueClosed,
|
||||
1,
|
||||
0,
|
||||
ManualTransitionQueueSnapshot {
|
||||
queue_capacity: 1,
|
||||
workers: 1,
|
||||
..Default::default()
|
||||
},
|
||||
),
|
||||
(
|
||||
"manual-queue-timeout-bucket",
|
||||
TransitionEnqueueOutcome::QueueSendTimedOut,
|
||||
0,
|
||||
1,
|
||||
ManualTransitionQueueSnapshot {
|
||||
queue_capacity: 1,
|
||||
workers: 1,
|
||||
queue_send_timeout: 1,
|
||||
..Default::default()
|
||||
},
|
||||
),
|
||||
] {
|
||||
let mut report = ManualTransitionRunReport::new(bucket, &options);
|
||||
report.record_enqueue_outcome(outcome);
|
||||
assert!(report.has_partial_enqueue());
|
||||
|
||||
let mut record = ManualTransitionJobRecord::new(Uuid::new_v4(), bucket, &options, "owner");
|
||||
record.complete(report, queue_snapshot);
|
||||
|
||||
assert_eq!(record.state, ManualTransitionJobState::Partial);
|
||||
assert_eq!(record.report.enqueued, 0);
|
||||
assert_eq!(record.report.skipped_queue_full, 0);
|
||||
assert_eq!(record.report.skipped_queue_closed, skipped_queue_closed);
|
||||
assert_eq!(record.report.skipped_queue_timeout, skipped_queue_timeout);
|
||||
assert_eq!(record.queue_snapshot.queue_send_timeout, queue_snapshot.queue_send_timeout);
|
||||
assert!(record.completed_at_unix_nanos.is_some());
|
||||
assert!(record.error.is_none());
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn manual_transition_version_marker_preserves_null_version_cursor() {
|
||||
let null_version = ObjectInfo {
|
||||
|
||||
Reference in New Issue
Block a user