57 lines
1.3 KiB
Rust
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?");
|
|
}
|
|
|