1
Fork 0

rollup merge of #19764: lifthrasiir/that-stray-nul

Fixes #19719.
This commit is contained in:
Alex Crichton 2014-12-17 08:33:54 -08:00
commit 6089699411

View file

@ -367,8 +367,8 @@ fn escape_str(writer: &mut io::Writer, v: &str) -> Result<(), io::IoError> {
fn escape_char(writer: &mut io::Writer, v: char) -> Result<(), io::IoError> { fn escape_char(writer: &mut io::Writer, v: char) -> Result<(), io::IoError> {
let mut buf = [0, .. 4]; let mut buf = [0, .. 4];
v.encode_utf8(&mut buf); let len = v.encode_utf8(&mut buf).unwrap();
escape_bytes(writer, &mut buf) escape_bytes(writer, buf[mut ..len])
} }
fn spaces(wr: &mut io::Writer, mut n: uint) -> Result<(), io::IoError> { fn spaces(wr: &mut io::Writer, mut n: uint) -> Result<(), io::IoError> {
@ -2729,37 +2729,39 @@ mod tests {
); );
} }
#[test] macro_rules! check_encoder_for_simple(
fn test_write_some() { ($value:expr, $expected:expr) => ({
let value = Some("jodhpurs".into_string());
let s = with_str_writer(|writer| { let s = with_str_writer(|writer| {
let mut encoder = Encoder::new(writer); let mut encoder = Encoder::new(writer);
value.encode(&mut encoder).unwrap(); $value.encode(&mut encoder).unwrap();
}); });
assert_eq!(s, "\"jodhpurs\""); assert_eq!(s, $expected);
let value = Some("jodhpurs".into_string());
let s = with_str_writer(|writer| { let s = with_str_writer(|writer| {
let mut encoder = PrettyEncoder::new(writer); let mut encoder = PrettyEncoder::new(writer);
value.encode(&mut encoder).unwrap(); $value.encode(&mut encoder).unwrap();
}); });
assert_eq!(s, "\"jodhpurs\""); assert_eq!(s, $expected);
})
)
#[test]
fn test_write_some() {
check_encoder_for_simple!(Some("jodhpurs".to_string()), "\"jodhpurs\"");
} }
#[test] #[test]
fn test_write_none() { fn test_write_none() {
let value: Option<string::String> = None; check_encoder_for_simple!(None::<string::String>, "null");
let s = with_str_writer(|writer| { }
let mut encoder = Encoder::new(writer);
value.encode(&mut encoder).unwrap();
});
assert_eq!(s, "null");
let s = with_str_writer(|writer| { #[test]
let mut encoder = Encoder::new(writer); fn test_write_char() {
value.encode(&mut encoder).unwrap(); check_encoder_for_simple!('a', "\"a\"");
}); check_encoder_for_simple!('\t', "\"\\t\"");
assert_eq!(s, "null"); check_encoder_for_simple!('\u00a0', "\"\u00a0\"");
check_encoder_for_simple!('\uabcd', "\"\uabcd\"");
check_encoder_for_simple!('\U0010ffff', "\"\U0010ffff\"");
} }
#[test] #[test]