From 6cd03dce8d25a18e30e50b6b622b0a50adcc395b Mon Sep 17 00:00:00 2001 From: David Ross Date: Fri, 16 Jun 2017 15:06:07 -0700 Subject: [PATCH] Add failure tests for serde implementations Thanks to @camlorn for the idea. --- tests/serde.rs | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/tests/serde.rs b/tests/serde.rs index 1660d69..62acf25 100644 --- a/tests/serde.rs +++ b/tests/serde.rs @@ -5,7 +5,7 @@ extern crate serde_test; mod array_vec { use arrayvec::ArrayVec; - use serde_test::{Token, assert_tokens}; + use serde_test::{Token, assert_tokens, assert_de_tokens_error}; #[test] fn test_ser_de_empty() { @@ -33,12 +33,22 @@ mod array_vec { Token::SeqEnd, ]); } + + #[test] + fn test_de_too_large() { + assert_de_tokens_error::>(&[ + Token::Seq { len: Some(3) }, + Token::U32(13), + Token::U32(42), + Token::U32(68), + ], "invalid length 3, expected an array with no more than 2 items"); + } } mod array_string { use arrayvec::ArrayString; - use serde_test::{Token, assert_tokens}; + use serde_test::{Token, assert_tokens, assert_de_tokens_error}; #[test] fn test_ser_de_empty() { @@ -59,4 +69,11 @@ mod array_string { Token::Str("1234 abcd"), ]); } + + #[test] + fn test_de_too_large() { + assert_de_tokens_error::>(&[ + Token::Str("afd") + ], "invalid length 3, expected a string no more than 2 bytes long"); + } }