diff --git a/serde_test/src/assert.rs b/serde_test/src/assert.rs index e580aa8a..892850e4 100644 --- a/serde_test/src/assert.rs +++ b/serde_test/src/assert.rs @@ -22,13 +22,14 @@ pub fn assert_ser_tokens(value: &T, tokens: &[Token]) assert_eq!(ser.next_token(), None); } -// Expect an error deserializing tokens into a T +// Expect an error serializing T pub fn assert_ser_tokens_error(value: &T, tokens: &[Token], error: Error) where T: Serialize + PartialEq + Debug, { let mut ser = Serializer::new(tokens.iter()); let v: Result<(), Error> = Serialize::serialize(value, &mut ser); assert_eq!(v.as_ref(), Err(&error)); + assert_eq!(ser.next_token(), None); } pub fn assert_de_tokens(value: &T, tokens: Vec>) @@ -47,4 +48,7 @@ pub fn assert_de_tokens_error(tokens: Vec>, error: Error) let mut de = Deserializer::new(tokens.into_iter()); let v: Result = Deserialize::deserialize(&mut de); assert_eq!(v, Err(error)); + // There may be one token left if a peek caused the error + de.next_token(); + assert_eq!(de.next_token(), None); } diff --git a/testing/tests/test_annotations.rs b/testing/tests/test_annotations.rs index 544f2c3b..bb1564cd 100644 --- a/testing/tests/test_annotations.rs +++ b/testing/tests/test_annotations.rs @@ -342,9 +342,6 @@ fn test_ignore_unknown() { Token::StructSep, Token::Str("whoops"), - Token::I32(2), - - Token::StructEnd, ], Error::UnknownFieldError("whoops".to_owned()) ); diff --git a/testing/tests/test_de.rs b/testing/tests/test_de.rs index a03081ab..85f515cd 100644 --- a/testing/tests/test_de.rs +++ b/testing/tests/test_de.rs @@ -786,8 +786,6 @@ declare_error_tests! { Token::SeqSep, Token::I32(1), Token::SeqSep, Token::I32(2), Token::SeqSep, Token::I32(3), - Token::SeqSep, Token::I32(4), - Token::SeqEnd, ], Error::UnexpectedToken(Token::SeqSep), } @@ -800,8 +798,6 @@ declare_error_tests! { Token::MapSep, Token::Str("a"), - Token::I32(3), - Token::MapEnd, ], Error::DuplicateFieldError("a"), } @@ -814,8 +810,6 @@ declare_error_tests! { Token::EnumMapSep, Token::Str("a"), - Token::I32(3), - Token::EnumMapEnd, ], Error::DuplicateFieldError("a"), } diff --git a/testing/tests/test_ser.rs b/testing/tests/test_ser.rs index 8521877b..ef1fa361 100644 --- a/testing/tests/test_ser.rs +++ b/testing/tests/test_ser.rs @@ -362,7 +362,7 @@ fn test_cannot_serialize_paths() { }; assert_ser_tokens_error( &Path::new(path), - &[Token::Str("Hello �World")], + &[], Error::InvalidValue("Path contains invalid UTF-8 characters".to_owned())); let mut path_buf = PathBuf::new(); @@ -370,6 +370,6 @@ fn test_cannot_serialize_paths() { assert_ser_tokens_error( &path_buf, - &[Token::Str("Hello �World")], + &[], Error::InvalidValue("Path contains invalid UTF-8 characters".to_owned())); }