add streaming body to requests and responses #3
1 changed files with 0 additions and 95 deletions
95
src/send.rs
95
src/send.rs
|
@ -199,98 +199,3 @@ pub(crate) trait SendLoop: Sync {
|
|||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
|
||||
fn empty_data() -> DataReader {
|
||||
type Item = Packet;
|
||||
let stream: Pin<Box<dyn futures::Stream<Item = Item> + Send + 'static>> =
|
||||
Box::pin(futures::stream::empty::<Packet>());
|
||||
stream.into()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_priority_queue() {
|
||||
let i1 = SendQueueItem {
|
||||
id: 1,
|
||||
prio: PRIO_NORMAL,
|
||||
data: empty_data(),
|
||||
};
|
||||
let i2 = SendQueueItem {
|
||||
id: 2,
|
||||
prio: PRIO_HIGH,
|
||||
data: empty_data(),
|
||||
};
|
||||
let i2bis = SendQueueItem {
|
||||
id: 20,
|
||||
prio: PRIO_HIGH,
|
||||
data: empty_data(),
|
||||
};
|
||||
let i3 = SendQueueItem {
|
||||
id: 3,
|
||||
prio: PRIO_HIGH | PRIO_SECONDARY,
|
||||
data: empty_data(),
|
||||
};
|
||||
let i4 = SendQueueItem {
|
||||
id: 4,
|
||||
prio: PRIO_BACKGROUND | PRIO_SECONDARY,
|
||||
data: empty_data(),
|
||||
};
|
||||
let i5 = SendQueueItem {
|
||||
id: 5,
|
||||
prio: PRIO_BACKGROUND | PRIO_PRIMARY,
|
||||
data: empty_data(),
|
||||
};
|
||||
|
||||
let mut q = SendQueue::new();
|
||||
|
||||
q.push(i1); // 1
|
||||
let a = q.pop().unwrap(); // empty -> 1
|
||||
assert_eq!(a.id, 1);
|
||||
assert!(q.pop().is_none());
|
||||
|
||||
q.push(a); // 1
|
||||
q.push(i2); // 2 1
|
||||
q.push(i2bis); // [2 20] 1
|
||||
let a = q.pop().unwrap(); // 20 1 -> 2
|
||||
assert_eq!(a.id, 2);
|
||||
let b = q.pop().unwrap(); // 1 -> 20
|
||||
assert_eq!(b.id, 20);
|
||||
let c = q.pop().unwrap(); // empty -> 1
|
||||
assert_eq!(c.id, 1);
|
||||
assert!(q.pop().is_none());
|
||||
|
||||
q.push(a); // 2
|
||||
q.push(b); // [2 20]
|
||||
q.push(c); // [2 20] 1
|
||||
q.push(i3); // [2 20] 3 1
|
||||
q.push(i4); // [2 20] 3 1 4
|
||||
q.push(i5); // [2 20] 3 1 5 4
|
||||
|
||||
let a = q.pop().unwrap(); // 20 3 1 5 4 -> 2
|
||||
assert_eq!(a.id, 2);
|
||||
q.push(a); // [20 2] 3 1 5 4
|
||||
|
||||
let a = q.pop().unwrap(); // 2 3 1 5 4 -> 20
|
||||
assert_eq!(a.id, 20);
|
||||
let b = q.pop().unwrap(); // 3 1 5 4 -> 2
|
||||
assert_eq!(b.id, 2);
|
||||
q.push(b); // 2 3 1 5 4
|
||||
let b = q.pop().unwrap(); // 3 1 5 4 -> 2
|
||||
assert_eq!(b.id, 2);
|
||||
let c = q.pop().unwrap(); // 1 5 4 -> 3
|
||||
assert_eq!(c.id, 3);
|
||||
q.push(b); // 2 1 5 4
|
||||
let b = q.pop().unwrap(); // 1 5 4 -> 2
|
||||
assert_eq!(b.id, 2);
|
||||
let e = q.pop().unwrap(); // 5 4 -> 1
|
||||
assert_eq!(e.id, 1);
|
||||
let f = q.pop().unwrap(); // 4 -> 5
|
||||
assert_eq!(f.id, 5);
|
||||
let g = q.pop().unwrap(); // empty -> 4
|
||||
assert_eq!(g.id, 4);
|
||||
assert!(q.pop().is_none());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue