mod common;
use common::{pace_time, run_test};
use futures::FutureExt;
use rfm69_async::{Address, Flags, TxError};
#[test]
fn send_ack_returns_timeout_after_exhausting_retries() {
run_test(async |stack, trx| {
let send = stack.send(Address::Unicast(2), Flags::Ack(2), &[0xCD]).fuse();
let pacer = pace_time(60, 20).fuse(); futures::pin_mut!(send);
futures::pin_mut!(pacer);
let res = futures::select! {
r = send => r,
_ = pacer => panic!("send didn't terminate within virtual budget"),
};
assert!(matches!(res, Err(TxError::AckTimeout)));
assert_eq!(trx.sent().len(), 2);
});
}