initial commit
This commit is contained in:
60
lib/inferium/benches/client.rs
Normal file
60
lib/inferium/benches/client.rs
Normal file
@@ -0,0 +1,60 @@
|
||||
#![feature(test)]
|
||||
extern crate test;
|
||||
use std::collections::HashMap;
|
||||
|
||||
use test::Bencher;
|
||||
|
||||
extern crate inferium;
|
||||
use inferium::h1::{SyncClient, Response, ResponseHead, ProtocolVariant};
|
||||
use inferium::{Status, HeaderValue};
|
||||
use inferium::TestSyncStream;
|
||||
|
||||
fn parse_response_sync_inner() {
|
||||
let src = "HTTP/1.1 200 OK\r\nserver: inferium\r\n\r\n".as_bytes().to_vec();
|
||||
let stream = TestSyncStream::<4>::new(&src);
|
||||
let mut client = SyncClient::<TestSyncStream<4>>::new(stream);
|
||||
let target = Response::HeadersOnly(ResponseHead::new(
|
||||
Status::Ok,
|
||||
ProtocolVariant::HTTP1_1,
|
||||
HashMap::from([
|
||||
("server".into(), HeaderValue::new(vec!["inferium".to_string()]))
|
||||
])
|
||||
));
|
||||
assert_eq!(client.receive_response().unwrap(), target);
|
||||
}
|
||||
|
||||
fn parse_response_sync_inner_body() {
|
||||
let mut src = "HTTP/1.1 200 OK\r\ncontent-length: 50\r\n\r\n".as_bytes().to_vec();
|
||||
src.extend_from_slice(b"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
|
||||
let stream = TestSyncStream::<4>::new(&src);
|
||||
let mut client = SyncClient::<TestSyncStream<4>>::new(stream);
|
||||
let target_head = ResponseHead::new(
|
||||
Status::Ok,
|
||||
ProtocolVariant::HTTP1_1,
|
||||
HashMap::from([
|
||||
("content-length".into(), HeaderValue::new(vec!["50".to_string()]))
|
||||
])
|
||||
);
|
||||
let Response::WithSizedBody((h, mut b)) = client.receive_response().unwrap() else {
|
||||
panic!();
|
||||
};
|
||||
let b = b.recv_all().unwrap();
|
||||
assert_eq!(h, target_head);
|
||||
assert_eq!(b, b"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn parse_response_sync(b: &mut Bencher) {
|
||||
b.bytes = 37;
|
||||
b.iter(|| {
|
||||
parse_response_sync_inner();
|
||||
});
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn parse_response_sync_with_body(b: &mut Bencher) {
|
||||
b.bytes = 39 + 13;
|
||||
b.iter(|| {
|
||||
parse_response_sync_inner_body();
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user