00без протокола
Просто переслать
потери 30%дубли 30%задержка 1–3
01at most once
Не более одного раза
повторпотеря
02at least once
Не менее одного раза
потеряповтор
03exactly once
Ровно один раз
потеряповтор
04exactly once + ordered
Ровно один раз по порядку
потеряповторперестановка
05память и сеть
Ресурсы
Где помнить доставленное память Receiver AMO, сеть с отказами
RESEND_DELAY прогоны тестов с разными значениями
Запас до лимитов худший прогон, сеть с отказами
Все замеры
06tests/src/common.rs
Баг в проверке порядка
check_message_delivery_ordered · фикс
let mut next_idx = 0;for i in 0..delivered.len() { let msg = &delivered[i]; let mut matched = false; while !matched && next_idx < sent.len() { if msg.data == sent[next_idx].data { matched = true;+ next_idx += 1; } else { next_idx += 1; } } assume!(matched, "Order violation: …")?;}
тест, который ловит
let sent = [m("X"), m("Y"), m("X")];let delivered = [m("X"), m("X"), m("Y")]; assert!(check_message_delivery_ordered( &delivered, &sent,).is_err());
07-m 100 -c -o
Официальный прогон
08видят все, кто открыл ссылку