in src/primitives.rs [458:494]
fn test_corrupted_string_len() {
let vm = VersionMap::new();
let mut buffer = vec![0u8; 1024];
let string = String::from("Test string1");
string
.serialize(&mut buffer.as_mut_slice(), &vm, 1)
.unwrap();
// Test corrupt length field.
assert_eq!(
<String as Versionize>::deserialize(
&mut buffer.as_slice().split_first().unwrap().1,
&vm,
1
)
.unwrap_err(),
VersionizeError::StringLength(6052837899185946624)
);
// Test incomplete string.
assert_eq!(
<String as Versionize>::deserialize(&mut buffer.as_slice().split_at(6).0, &vm, 1)
.unwrap_err(),
VersionizeError::Deserialize(
"Io(Custom { kind: UnexpectedEof, error: \"failed to fill whole buffer\" })"
.to_owned()
)
);
// Test NULL string len.
buffer[0] = 0;
assert_eq!(
<String as Versionize>::deserialize(&mut buffer.as_slice(), &vm, 1).unwrap(),
String::new()
);
}