diff --git a/rmp-serde/Cargo.toml b/rmp-serde/Cargo.toml index d53ae672..a36474c4 100644 --- a/rmp-serde/Cargo.toml +++ b/rmp-serde/Cargo.toml @@ -17,6 +17,7 @@ serde = "1.0.99" rmp = { version = "0.8.8", path = "../rmp" } [dev-dependencies] +rmpv = { path = "../rmpv" } serde_bytes = "0.11.2" serde_derive = "1.0.99" diff --git a/rmp-serde/tests/round.rs b/rmp-serde/tests/round.rs index 8a55b665..a042a7f1 100644 --- a/rmp-serde/tests/round.rs +++ b/rmp-serde/tests/round.rs @@ -399,9 +399,22 @@ fn roundtrip_some() { assert_roundtrips(Some("hi".to_string())); } +#[ignore] +#[test] +fn roundtrip_some_failures() { + // FIXME + assert_roundtrips(Err::<(),_>(222)); + assert_roundtrips(Some(None::<()>)); +} + #[cfg(test)] fn assert_roundtrips Deserialize<'a>>(val: T) { let seriaized = rmp_serde::to_vec(&val).unwrap(); - let val2: T = rmp_serde::from_slice(&seriaized).unwrap(); + let val2: T = match rmp_serde::from_slice(&seriaized) { + Ok(t) => t, + Err(e) => { + panic!("Does not deserialize: {}\nSerialized {:?}\nGot {:?}\n", e, val, rmpv::decode::value::read_value(&mut seriaized.as_slice()).expect("rmp didn't serialize corerctly at all")); + }, + }; assert_eq!(val2, val); }