libFenrir/src/connection/stream/uudl/tests.rs
Luca Fulchir 62a71a2af5
[transport] uud/uudl, first tests
Signed-off-by: Luca Fulchir <luca.fulchir@runesauth.com>
2025-03-21 17:57:08 +01:00

57 lines
1.3 KiB
Rust

use crate::{
connection::stream::{self, uudl::*, Chunk},
enc::Random,
};
#[::tracing_test::traced_test]
#[test]
fn test_stream_uudl_sequential() {
let rand = Random::new();
let mut uudl = UnreliableUnorderedDatagramLimited::new();
let mut data = Vec::with_capacity(1024);
data.resize(data.capacity(), 0);
rand.fill(&mut data[..]);
//let start = uudl.window_start.0;
let start = Sequence(
::core::num::Wrapping(0)
);
let chunk = Chunk {
id: stream::ID(42),
flag_start: true,
flag_end: true,
sequence: start,
data: &data[..512],
};
let got = uudl.get().1;
assert!(&got[..] == &[], "uudl: got data?");
let _ = uudl.recv(chunk);
let got = uudl.get().1;
assert!(
&data[..512] == &got[..],
"UUDL1: DIFF: {:?} {:?}",
&data[..512].len(),
&got[..].len()
);
let chunk = Chunk {
id: stream::ID(42),
flag_start: true,
flag_end: true,
sequence: start + 512,
data: &data[512..],
};
let _ = uudl.recv(chunk);
let got = uudl.get().1;
assert!(
&data[512..] == &got[..],
"UUDL2: DIFF: {:?} {:?}",
&data[512..].len(),
&got[..].len()
);
let got = uudl.get().1;
assert!(&got[..] == &[], "uudl: got data?");
}