refactor test infrastructure
This commit is contained in:
parent
8ec54e562a
commit
022a9e6ed7
|
|
@ -25,7 +25,37 @@ use bincode::{
|
||||||
SliceBox,
|
SliceBox,
|
||||||
};
|
};
|
||||||
|
|
||||||
use bincode::SizeLimit::{Infinite, Bounded};
|
use bincode::SizeLimit::{self, Infinite, Bounded};
|
||||||
|
|
||||||
|
fn proxy_encode<V>(element: V, size_limit: SizeLimit) -> Vec<u8>
|
||||||
|
where V: Encodable+Decodable+serde::Serialize+serde::Deserialize+PartialEq+Debug+'static
|
||||||
|
{
|
||||||
|
let v1 = bincode::encode(&element, size_limit);
|
||||||
|
let v2 = bincode::to_vec(&element, size_limit);
|
||||||
|
assert_eq!(v1, v2);
|
||||||
|
|
||||||
|
v1
|
||||||
|
}
|
||||||
|
|
||||||
|
fn proxy_decode<V>(slice: &[u8]) -> V
|
||||||
|
where V: Encodable+Decodable+serde::Serialize+serde::Deserialize+PartialEq+Debug+'static
|
||||||
|
{
|
||||||
|
let e1 = bincode::decode(slice);
|
||||||
|
let e2 = bincode::from_slice(slice);
|
||||||
|
|
||||||
|
assert_eq!(e1, e2);
|
||||||
|
|
||||||
|
e1
|
||||||
|
}
|
||||||
|
|
||||||
|
fn proxy_encoded_size<V>(element: V, size_limit: SizeLimit) -> usize
|
||||||
|
where V: Encodable+Decodable+serde::Serialize+serde::Deserialize+PartialEq+Debug+'static
|
||||||
|
{
|
||||||
|
let ser_size = bincode::encoded_size(obj);
|
||||||
|
let serde_size = bincode::serialized_size(obj);
|
||||||
|
assert_eq!(ser_size, serde_size);
|
||||||
|
ser_size;
|
||||||
|
}
|
||||||
|
|
||||||
fn the_same<V>(element: V)
|
fn the_same<V>(element: V)
|
||||||
where V: Encodable+Decodable+serde::Serialize+serde::Deserialize+PartialEq+Debug+'static
|
where V: Encodable+Decodable+serde::Serialize+serde::Deserialize+PartialEq+Debug+'static
|
||||||
|
|
@ -36,27 +66,20 @@ fn the_same<V>(element: V)
|
||||||
{
|
{
|
||||||
let rf = RefBox::new(v);
|
let rf = RefBox::new(v);
|
||||||
|
|
||||||
let encoded = encode(&rf, Infinite).unwrap();
|
let encoded = proxy_encode(&rf, Infinite).unwrap();
|
||||||
let decoded: RefBox<'static, V> = decode(&encoded[..]).unwrap();
|
let decoded: RefBox<'static, V> = proxy_decode(&encoded[..]).unwrap();
|
||||||
|
|
||||||
decoded.take().deref() == v
|
decoded.take().deref() == v
|
||||||
}
|
}
|
||||||
|
|
||||||
let size = encoded_size(&element);
|
let size = proxy_encoded_size(&element);
|
||||||
let encoded = encode(&element, Infinite).unwrap();
|
|
||||||
let decoded = decode(&encoded[..]).unwrap();
|
let encoded = proxy_encode(&element, Infinite).unwrap();
|
||||||
|
let decoded = proxy_decode(&encoded[..]).unwrap();
|
||||||
|
|
||||||
assert_eq!(element, decoded);
|
assert_eq!(element, decoded);
|
||||||
assert_eq!(size, encoded.len() as u64);
|
assert_eq!(size, encoded.len() as u64);
|
||||||
assert!(ref_box_correct(&element));
|
assert!(ref_box_correct(&element));
|
||||||
|
|
||||||
let serialized = bincode::to_vec(&element, Infinite).unwrap();
|
|
||||||
assert_eq!(encoded, serialized);
|
|
||||||
|
|
||||||
let deserialized = bincode::from_slice(&serialized[..], Infinite).unwrap();
|
|
||||||
assert_eq!(element, deserialized);
|
|
||||||
|
|
||||||
let size = bincode::serialized_size(&element);
|
|
||||||
assert_eq!(size, serialized.len() as u64);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue