Add tests for CStr(ing) ser/de

This commit is contained in:
Jon Gjengset
2017-03-03 18:06:04 -05:00
parent 0d6d077e6a
commit d90eecd4a2
2 changed files with 29 additions and 0 deletions
+18
View File
@@ -6,6 +6,7 @@ use std::net;
use std::path::PathBuf; use std::path::PathBuf;
use std::time::Duration; use std::time::Duration;
use std::default::Default; use std::default::Default;
use std::ffi::CString;
extern crate serde; extern crate serde;
use serde::Deserialize; use serde::Deserialize;
@@ -878,6 +879,11 @@ declare_tests! {
Token::String("/usr/local/lib".to_owned()), Token::String("/usr/local/lib".to_owned()),
], ],
} }
test_cstring {
CString::new("abc").unwrap() => &[
Token::Bytes(b"abc"),
],
}
} }
#[cfg(feature = "unstable")] #[cfg(feature = "unstable")]
@@ -995,4 +1001,16 @@ declare_error_tests! {
], ],
Error::Message("invalid length 1, expected an array of length 3".into()), Error::Message("invalid length 1, expected an array of length 3".into()),
} }
test_cstring_internal_null<CString> {
&[
Token::Bytes(b"a\0c"),
],
Error::Message("unexpected NULL at byte 1".into()),
}
test_cstring_internal_null_end<CString> {
&[
Token::Bytes(b"ac\0"),
],
Error::Message("unexpected NULL at byte 2".into()),
}
} }
+11
View File
@@ -6,6 +6,7 @@ use std::net;
use std::path::{Path, PathBuf}; use std::path::{Path, PathBuf};
use std::str; use std::str;
use std::time::Duration; use std::time::Duration;
use std::ffi::CString;
extern crate serde; extern crate serde;
@@ -389,6 +390,16 @@ declare_tests! {
Token::Str("/usr/local/lib"), Token::Str("/usr/local/lib"),
], ],
} }
test_cstring {
CString::new("abc").unwrap() => &[
Token::Bytes(b"abc"),
],
}
test_cstr {
(&*CString::new("abc").unwrap()) => &[
Token::Bytes(b"abc"),
],
}
} }