IPC (feature-gated) (#1654)
* moving ipc deriving to trait * refactoring of the client * all compiled * proved all working * warnings purged * allow hypervisor to specify initialization payload in two ways * using binary initialisation payload for sync * some docs * logger to separate crate * log settings for sync bin * forwarding logging arguments to the sync
This commit is contained in:
committed by
Arkadiy Paronyan
parent
7ae9e61d6c
commit
8ab56ea3d1
@@ -54,6 +54,7 @@ impl<T> BinaryConvertable for Option<T> where T: BinaryConvertable {
|
||||
}
|
||||
|
||||
fn from_bytes(buffer: &[u8], length_stack: &mut VecDeque<usize>) -> Result<Self, BinaryConvertError> {
|
||||
if buffer.len() == 0 { return Self::from_empty_bytes(); }
|
||||
Ok(Some(try!(T::from_bytes(buffer, length_stack))))
|
||||
}
|
||||
|
||||
@@ -779,6 +780,42 @@ fn serialize_into_deserialize_from() {
|
||||
assert_eq!(v, de_v);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn serialize_vec_str() {
|
||||
// empty
|
||||
let source = Vec::<String>::new();
|
||||
let serialized = serialize(&source).unwrap();
|
||||
let deserialized = deserialize::<Vec<String>>(&serialized).unwrap();
|
||||
|
||||
assert_eq!(source, deserialized);
|
||||
|
||||
// with few values
|
||||
let mut source = Vec::<String>::new();
|
||||
source.push("val1".to_owned());
|
||||
source.push("val2".to_owned());
|
||||
let serialized = serialize(&source).unwrap();
|
||||
let deserialized = deserialize::<Vec<String>>(&serialized).unwrap();
|
||||
|
||||
assert_eq!(source, deserialized);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn serialize_opt_str() {
|
||||
// none
|
||||
let source: Option<String> = None;
|
||||
let serialized = serialize(&source).unwrap();
|
||||
let deserialized = deserialize::<Option<String>>(&serialized).unwrap();
|
||||
|
||||
assert_eq!(source, deserialized);
|
||||
|
||||
// value
|
||||
let source: Option<String> = Some("i have value".to_owned());
|
||||
let serialized = serialize(&source).unwrap();
|
||||
let deserialized = deserialize::<Option<String>>(&serialized).unwrap();
|
||||
|
||||
assert_eq!(source, deserialized);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn serialize_opt_vec() {
|
||||
use std::io::Cursor;
|
||||
|
||||
Reference in New Issue
Block a user