Eliminate Sep tokens in serde_test

This commit is contained in:
David Tolnay
2017-04-05 09:42:24 -07:00
parent 9b51be4ba6
commit 67ed7a0edd
9 changed files with 47 additions and 519 deletions
+2 -69
View File
@@ -87,23 +87,18 @@ fn test_default_struct() {
&[
Token::StructStart("DefaultStruct", 3),
Token::StructSep,
Token::Str("a1"),
Token::I32(1),
Token::StructSep,
Token::Str("a2"),
Token::I32(2),
Token::StructSep,
Token::Str("a3"),
Token::I32(3),
Token::StructSep,
Token::Str("a4"),
Token::I32(4),
Token::StructSep,
Token::Str("a5"),
Token::I32(5),
@@ -116,7 +111,6 @@ fn test_default_struct() {
&[
Token::StructStart("DefaultStruct", 1),
Token::StructSep,
Token::Str("a1"),
Token::I32(1),
@@ -150,23 +144,18 @@ fn test_default_enum() {
&[
Token::EnumMapStart("DefaultEnum", "Struct", 3),
Token::EnumMapSep,
Token::Str("a1"),
Token::I32(1),
Token::EnumMapSep,
Token::Str("a2"),
Token::I32(2),
Token::EnumMapSep,
Token::Str("a3"),
Token::I32(3),
Token::EnumMapSep,
Token::Str("a4"),
Token::I32(4),
Token::EnumMapSep,
Token::Str("a5"),
Token::I32(5),
@@ -179,7 +168,6 @@ fn test_default_enum() {
&[
Token::EnumMapStart("DefaultEnum", "Struct", 3),
Token::EnumMapSep,
Token::Str("a1"),
Token::I32(1),
@@ -221,7 +209,6 @@ fn test_no_std_default() {
&[
Token::StructStart("ContainsNoStdDefault", 1),
Token::StructSep,
Token::Str("a"),
Token::StructNewType("NoStdDefault"),
Token::I8(8),
@@ -304,30 +291,23 @@ fn test_ignore_unknown() {
&[
Token::StructStart("DefaultStruct", 5),
Token::StructSep,
Token::Str("whoops1"),
Token::I32(2),
Token::StructSep,
Token::Str("a1"),
Token::I32(1),
Token::StructSep,
Token::Str("whoops2"),
Token::SeqStart(Some(1)),
Token::SeqSep,
Token::I32(2),
Token::SeqEnd,
Token::StructSep,
Token::Str("a2"),
Token::I32(2),
Token::StructSep,
Token::Str("whoops3"),
Token::I32(2),
Token::StructSep,
Token::Str("a3"),
Token::I32(3),
@@ -339,11 +319,9 @@ fn test_ignore_unknown() {
&[
Token::StructStart("DenyUnknown", 2),
Token::StructSep,
Token::Str("a1"),
Token::I32(1),
Token::StructSep,
Token::Str("whoops"),
],
Error::Message("unknown field `whoops`, expected `a1`".to_owned())
@@ -373,11 +351,9 @@ fn test_rename_struct() {
&[
Token::StructStart("Superhero", 2),
Token::StructSep,
Token::Str("a1"),
Token::I32(1),
Token::StructSep,
Token::Str("a3"),
Token::I32(2),
@@ -390,11 +366,9 @@ fn test_rename_struct() {
&[
Token::StructStart("SuperheroSer", 2),
Token::StructSep,
Token::Str("a1"),
Token::I32(1),
Token::StructSep,
Token::Str("a4"),
Token::I32(2),
@@ -407,11 +381,9 @@ fn test_rename_struct() {
&[
Token::StructStart("SuperheroDe", 2),
Token::StructSep,
Token::Str("a1"),
Token::I32(1),
Token::StructSep,
Token::Str("a5"),
Token::I32(2),
@@ -469,13 +441,8 @@ fn test_rename_enum() {
&RenameEnum::WonderWoman(0, 1),
&[
Token::EnumSeqStart("Superhero", "diana_prince", 2),
Token::EnumSeqSep,
Token::I8(0),
Token::EnumSeqSep,
Token::I8(1),
Token::EnumSeqEnd,
]
);
@@ -485,7 +452,6 @@ fn test_rename_enum() {
&[
Token::EnumMapStart("Superhero", "barry_allan", 1),
Token::EnumMapSep,
Token::Str("b"),
Token::I32(1),
@@ -501,11 +467,9 @@ fn test_rename_enum() {
&[
Token::EnumMapStart("SuperheroSer", "dick_grayson", 2),
Token::EnumMapSep,
Token::Str("a"),
Token::I8(0),
Token::EnumMapSep,
Token::Str("c"),
Token::Str(""),
@@ -521,11 +485,9 @@ fn test_rename_enum() {
&[
Token::EnumMapStart("SuperheroDe", "jason_todd", 2),
Token::EnumMapSep,
Token::Str("a"),
Token::I8(0),
Token::EnumMapSep,
Token::Str("d"),
Token::Str(""),
@@ -555,11 +517,9 @@ fn test_skip_serializing_struct() {
&[
Token::StructStart("SkipSerializingStruct", 2),
Token::StructSep,
Token::Str("a"),
Token::I8(1),
Token::StructSep,
Token::Str("c"),
Token::I32(3),
@@ -576,7 +536,6 @@ fn test_skip_serializing_struct() {
&[
Token::StructStart("SkipSerializingStruct", 1),
Token::StructSep,
Token::Str("a"),
Token::I8(1),
@@ -608,11 +567,9 @@ fn test_skip_serializing_enum() {
&[
Token::EnumMapStart("SkipSerializingEnum", "Struct", 2),
Token::EnumMapSep,
Token::Str("a"),
Token::I8(1),
Token::EnumMapSep,
Token::Str("c"),
Token::I32(3),
@@ -629,7 +586,6 @@ fn test_skip_serializing_enum() {
&[
Token::EnumMapStart("SkipSerializingEnum", "Struct", 1),
Token::EnumMapSep,
Token::Str("a"),
Token::I8(1),
@@ -676,12 +632,10 @@ fn test_elt_not_serialize() {
&[
Token::StructStart("ContainsNotSerialize", 2),
Token::StructSep,
Token::Str("a"),
Token::Option(true),
Token::I8(1),
Token::StructSep,
Token::Str("d"),
Token::Str("trouble"),
@@ -708,11 +662,9 @@ fn test_serialize_with_struct() {
&[
Token::StructStart("SerializeWithStruct", 2),
Token::StructSep,
Token::Str("a"),
Token::I8(1),
Token::StructSep,
Token::Str("b"),
Token::Bool(false),
@@ -728,11 +680,9 @@ fn test_serialize_with_struct() {
&[
Token::StructStart("SerializeWithStruct", 2),
Token::StructSep,
Token::Str("a"),
Token::I8(1),
Token::StructSep,
Token::Str("b"),
Token::Bool(true),
@@ -761,11 +711,9 @@ fn test_serialize_with_enum() {
&[
Token::EnumMapStart("SerializeWithEnum", "Struct", 2),
Token::EnumMapSep,
Token::Str("a"),
Token::I8(1),
Token::EnumMapSep,
Token::Str("b"),
Token::Bool(false),
@@ -781,11 +729,9 @@ fn test_serialize_with_enum() {
&[
Token::EnumMapStart("SerializeWithEnum", "Struct", 2),
Token::EnumMapSep,
Token::Str("a"),
Token::I8(1),
Token::EnumMapSep,
Token::Str("b"),
Token::Bool(true),
@@ -811,11 +757,9 @@ fn test_deserialize_with_struct() {
&[
Token::StructStart("DeserializeWithStruct", 2),
Token::StructSep,
Token::Str("a"),
Token::I8(1),
Token::StructSep,
Token::Str("b"),
Token::Bool(false),
@@ -831,11 +775,9 @@ fn test_deserialize_with_struct() {
&[
Token::StructStart("DeserializeWithStruct", 2),
Token::StructSep,
Token::Str("a"),
Token::I8(1),
Token::StructSep,
Token::Str("b"),
Token::Bool(true),
@@ -863,11 +805,9 @@ fn test_deserialize_with_enum() {
&[
Token::EnumMapStart("DeserializeWithEnum", "Struct", 2),
Token::EnumMapSep,
Token::Str("a"),
Token::I8(1),
Token::EnumMapSep,
Token::Str("b"),
Token::Bool(false),
@@ -883,11 +823,9 @@ fn test_deserialize_with_enum() {
&[
Token::EnumMapStart("DeserializeWithEnum", "Struct", 2),
Token::EnumMapSep,
Token::Str("a"),
Token::I8(1),
Token::EnumMapSep,
Token::Str("b"),
Token::Bool(true),
@@ -902,7 +840,6 @@ fn test_missing_renamed_field_struct() {
&[
Token::StructStart("Superhero", 2),
Token::StructSep,
Token::Str("a1"),
Token::I32(1),
@@ -915,7 +852,6 @@ fn test_missing_renamed_field_struct() {
&[
Token::StructStart("SuperheroDe", 2),
Token::StructSep,
Token::Str("a1"),
Token::I32(1),
@@ -940,7 +876,6 @@ fn test_missing_renamed_field_enum() {
&[
Token::EnumMapStart("SuperheroDe", "jason_todd", 2),
Token::EnumMapSep,
Token::Str("a"),
Token::I8(0),
@@ -961,8 +896,7 @@ fn test_invalid_length_enum() {
assert_de_tokens_error::<InvalidLengthEnum>(
&[
Token::EnumSeqStart("InvalidLengthEnum", "A", 3),
Token::EnumSeqSep,
Token::I32(1),
Token::I32(1),
Token::EnumSeqEnd,
],
Error::Message("invalid length 1, expected tuple of 3 elements".to_owned()),
@@ -970,8 +904,7 @@ fn test_invalid_length_enum() {
assert_de_tokens_error::<InvalidLengthEnum>(
&[
Token::EnumSeqStart("InvalidLengthEnum", "B", 3),
Token::EnumSeqSep,
Token::I32(1),
Token::I32(1),
Token::EnumSeqEnd,
],
Error::Message("invalid length 1, expected tuple of 2 elements".to_owned()),
-9
View File
@@ -90,13 +90,8 @@ fn test_tuple() {
&("str", &b"bytes"[..]),
&[
Token::TupleStart(2),
Token::TupleSep,
Token::BorrowedStr("str"),
Token::TupleSep,
Token::BorrowedBytes(b"bytes"),
Token::TupleEnd,
]
);
@@ -115,11 +110,9 @@ fn test_struct() {
&[
Token::StructStart("Borrowing", 2),
Token::StructSep,
Token::BorrowedStr("bs"),
Token::BorrowedStr("str"),
Token::StructSep,
Token::BorrowedStr("bb"),
Token::BorrowedBytes(b"bytes"),
@@ -141,11 +134,9 @@ fn test_cow() {
let tokens = &[
Token::StructStart("Cows", 2),
Token::StructSep,
Token::Str("copied"),
Token::BorrowedStr("copied"),
Token::StructSep,
Token::Str("borrowed"),
Token::BorrowedStr("borrowed"),
-6
View File
@@ -37,21 +37,15 @@ fn test_byte_buf() {
assert_de_tokens(&buf, &[Token::String("ABC")]);
assert_de_tokens(&buf, &[
Token::SeqStart(None),
Token::SeqSep,
Token::U8(65),
Token::SeqSep,
Token::U8(66),
Token::SeqSep,
Token::U8(67),
Token::SeqEnd,
]);
assert_de_tokens(&buf, &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::U8(65),
Token::SeqSep,
Token::U8(66),
Token::SeqSep,
Token::U8(67),
Token::SeqEnd,
]);
+4 -152
View File
@@ -152,11 +152,9 @@ fn assert_de_tokens_ignore(ignorable_tokens: &[Token]) {
// stream for an IgnoreBase type
let concated_tokens : Vec<Token> = vec![
Token::MapStart(Some(2)),
Token::MapSep,
Token::Str("a"),
Token::I32(1),
Token::MapSep,
Token::Str("ignored")
]
.into_iter()
@@ -264,49 +262,29 @@ declare_tests! {
test_tuple_struct {
TupleStruct(1, 2, 3) => &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::I32(1),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
],
TupleStruct(1, 2, 3) => &[
Token::SeqStart(None),
Token::SeqSep,
Token::I32(1),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
],
TupleStruct(1, 2, 3) => &[
Token::TupleStructStart("TupleStruct", 3),
Token::TupleStructSep,
Token::I32(1),
Token::TupleStructSep,
Token::I32(2),
Token::TupleStructSep,
Token::I32(3),
Token::TupleStructEnd,
],
TupleStruct(1, 2, 3) => &[
Token::TupleStructStart("TupleStruct", 3),
Token::TupleStructSep,
Token::I32(1),
Token::TupleStructSep,
Token::I32(2),
Token::TupleStructSep,
Token::I32(3),
Token::TupleStructEnd,
],
@@ -318,22 +296,15 @@ declare_tests! {
],
btreeset![btreeset![], btreeset![1], btreeset![2, 3]] => &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::SeqStart(Some(0)),
Token::SeqEnd,
Token::SeqSep,
Token::SeqStart(Some(1)),
Token::SeqSep,
Token::I32(1),
Token::SeqEnd,
Token::SeqSep,
Token::SeqStart(Some(2)),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
Token::SeqEnd,
@@ -350,13 +321,8 @@ declare_tests! {
],
hashset![1, 2, 3] => &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::I32(1),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
],
@@ -366,13 +332,8 @@ declare_tests! {
],
hashset![FnvHasher @ 1, 2, 3] => &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::I32(1),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
],
@@ -384,22 +345,15 @@ declare_tests! {
],
vec![vec![], vec![1], vec![2, 3]] => &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::SeqStart(Some(0)),
Token::SeqEnd,
Token::SeqSep,
Token::SeqStart(Some(1)),
Token::SeqSep,
Token::I32(1),
Token::SeqEnd,
Token::SeqSep,
Token::SeqStart(Some(2)),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
Token::SeqEnd,
@@ -420,44 +374,30 @@ declare_tests! {
],
([0; 0], [1], [2, 3]) => &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::SeqStart(Some(0)),
Token::SeqEnd,
Token::SeqSep,
Token::SeqStart(Some(1)),
Token::SeqSep,
Token::I32(1),
Token::SeqEnd,
Token::SeqSep,
Token::SeqStart(Some(2)),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
Token::SeqEnd,
],
([0; 0], [1], [2, 3]) => &[
Token::SeqArrayStart(3),
Token::SeqSep,
Token::SeqArrayStart(0),
Token::SeqEnd,
Token::SeqSep,
Token::SeqArrayStart(1),
Token::SeqSep,
Token::I32(1),
Token::SeqEnd,
Token::SeqSep,
Token::SeqArrayStart(2),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
Token::SeqEnd,
@@ -470,37 +410,25 @@ declare_tests! {
test_tuple {
(1,) => &[
Token::SeqStart(Some(1)),
Token::SeqSep,
Token::I32(1),
Token::SeqEnd,
],
(1, 2, 3) => &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::I32(1),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
],
(1,) => &[
Token::TupleStart(1),
Token::TupleSep,
Token::I32(1),
Token::TupleEnd,
],
(1, 2, 3) => &[
Token::TupleStart(3),
Token::TupleSep,
Token::I32(1),
Token::TupleSep,
Token::I32(2),
Token::TupleSep,
Token::I32(3),
Token::TupleEnd,
],
@@ -512,37 +440,30 @@ declare_tests! {
],
btreemap![1 => 2] => &[
Token::MapStart(Some(1)),
Token::MapSep,
Token::I32(1),
Token::I32(2),
Token::MapEnd,
],
btreemap![1 => 2, 3 => 4] => &[
Token::MapStart(Some(2)),
Token::MapSep,
Token::I32(1),
Token::I32(2),
Token::MapSep,
Token::I32(3),
Token::I32(4),
Token::MapEnd,
],
btreemap![1 => btreemap![], 2 => btreemap![3 => 4, 5 => 6]] => &[
Token::MapStart(Some(2)),
Token::MapSep,
Token::I32(1),
Token::MapStart(Some(0)),
Token::MapEnd,
Token::MapSep,
Token::I32(2),
Token::MapStart(Some(2)),
Token::MapSep,
Token::I32(3),
Token::I32(4),
Token::MapSep,
Token::I32(5),
Token::I32(6),
Token::MapEnd,
@@ -560,37 +481,30 @@ declare_tests! {
],
hashmap![1 => 2] => &[
Token::MapStart(Some(1)),
Token::MapSep,
Token::I32(1),
Token::I32(2),
Token::MapEnd,
],
hashmap![1 => 2, 3 => 4] => &[
Token::MapStart(Some(2)),
Token::MapSep,
Token::I32(1),
Token::I32(2),
Token::MapSep,
Token::I32(3),
Token::I32(4),
Token::MapEnd,
],
hashmap![1 => hashmap![], 2 => hashmap![3 => 4, 5 => 6]] => &[
Token::MapStart(Some(2)),
Token::MapSep,
Token::I32(1),
Token::MapStart(Some(0)),
Token::MapEnd,
Token::MapSep,
Token::I32(2),
Token::MapStart(Some(2)),
Token::MapSep,
Token::I32(3),
Token::I32(4),
Token::MapSep,
Token::I32(5),
Token::I32(6),
Token::MapEnd,
@@ -602,11 +516,9 @@ declare_tests! {
],
hashmap![FnvHasher @ 1 => 2, 3 => 4] => &[
Token::MapStart(Some(2)),
Token::MapSep,
Token::I32(1),
Token::I32(2),
Token::MapSep,
Token::I32(3),
Token::I32(4),
Token::MapEnd,
@@ -615,32 +527,25 @@ declare_tests! {
test_struct {
Struct { a: 1, b: 2, c: 0 } => &[
Token::MapStart(Some(3)),
Token::MapSep,
Token::Str("a"),
Token::I32(1),
Token::MapSep,
Token::Str("b"),
Token::I32(2),
Token::MapEnd,
],
Struct { a: 1, b: 2, c: 0 } => &[
Token::StructStart("Struct", 3),
Token::StructSep,
Token::Str("a"),
Token::I32(1),
Token::StructSep,
Token::Str("b"),
Token::I32(2),
Token::StructEnd,
],
Struct { a: 1, b: 2, c: 0 } => &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::I32(1),
Token::SeqSep,
Token::I32(2),
Token::SeqEnd,
],
@@ -648,38 +553,30 @@ declare_tests! {
test_struct_with_skip {
Struct { a: 1, b: 2, c: 0 } => &[
Token::MapStart(Some(3)),
Token::MapSep,
Token::Str("a"),
Token::I32(1),
Token::MapSep,
Token::Str("b"),
Token::I32(2),
Token::MapSep,
Token::Str("c"),
Token::I32(3),
Token::MapSep,
Token::Str("d"),
Token::I32(4),
Token::MapEnd,
],
Struct { a: 1, b: 2, c: 0 } => &[
Token::StructStart("Struct", 3),
Token::StructSep,
Token::Str("a"),
Token::I32(1),
Token::StructSep,
Token::Str("b"),
Token::I32(2),
Token::StructSep,
Token::Str("c"),
Token::I32(3),
Token::StructSep,
Token::Str("d"),
Token::I32(4),
Token::StructEnd,
@@ -692,11 +589,9 @@ declare_tests! {
],
StructSkipAll { a: 0 } => &[
Token::StructStart("StructSkipAll", 1),
Token::StructSep,
Token::Str("a"),
Token::I32(1),
Token::StructSep,
Token::Str("b"),
Token::I32(2),
Token::StructEnd,
@@ -711,11 +606,9 @@ declare_tests! {
test_struct_default {
StructDefault { a: 50, b: "overwritten".to_string() } => &[
Token::StructStart("StructDefault", 1),
Token::StructSep,
Token::Str("a"),
Token::I32(50),
Token::StructSep,
Token::Str("b"),
Token::String("overwritten"),
Token::StructEnd,
@@ -739,13 +632,8 @@ declare_tests! {
test_enum_seq {
Enum::Seq(1, 2, 3) => &[
Token::EnumSeqStart("Enum", "Seq", 3),
Token::EnumSeqSep,
Token::I32(1),
Token::EnumSeqSep,
Token::I32(2),
Token::EnumSeqSep,
Token::I32(3),
Token::EnumSeqEnd,
],
@@ -753,15 +641,12 @@ declare_tests! {
test_enum_map {
Enum::Map { a: 1, b: 2, c: 3 } => &[
Token::EnumMapStart("Enum", "Map", 3),
Token::EnumMapSep,
Token::Str("a"),
Token::I32(1),
Token::EnumMapSep,
Token::Str("b"),
Token::I32(2),
Token::EnumMapSep,
Token::Str("c"),
Token::I32(3),
Token::EnumMapEnd,
@@ -787,11 +672,8 @@ declare_tests! {
test_boxed_slice {
Box::new([0, 1, 2]) => &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::I32(0),
Token::SeqSep,
Token::I32(1),
Token::SeqSep,
Token::I32(2),
Token::SeqEnd,
],
@@ -799,21 +681,16 @@ declare_tests! {
test_duration {
Duration::new(1, 2) => &[
Token::StructStart("Duration", 2),
Token::StructSep,
Token::Str("secs"),
Token::U64(1),
Token::StructSep,
Token::Str("nanos"),
Token::U32(2),
Token::StructEnd,
],
Duration::new(1, 2) => &[
Token::SeqStart(Some(2)),
Token::SeqSep,
Token::I64(1),
Token::SeqSep,
Token::I64(2),
Token::SeqEnd,
],
@@ -821,21 +698,16 @@ declare_tests! {
test_range {
1u32..2u32 => &[
Token::StructStart("Range", 2),
Token::StructSep,
Token::Str("start"),
Token::U32(1),
Token::StructSep,
Token::Str("end"),
Token::U32(2),
Token::StructEnd,
],
1u32..2u32 => &[
Token::SeqStart(Some(2)),
Token::SeqSep,
Token::U64(1),
Token::SeqSep,
Token::U64(2),
Token::SeqEnd,
],
@@ -873,13 +745,8 @@ fn test_osstring() {
Token::EnumStart("OsString"),
Token::Str("Unix"),
Token::SeqStart(Some(2)),
Token::SeqSep,
Token::U8(1),
Token::SeqSep,
Token::U8(2),
Token::SeqSep,
Token::U8(3),
Token::SeqEnd,
];
@@ -898,13 +765,8 @@ fn test_osstring() {
Token::EnumStart("OsString"),
Token::Str("Windows"),
Token::SeqStart(Some(2)),
Token::SeqSep,
Token::U16(1),
Token::SeqSep,
Token::U16(2),
Token::SeqSep,
Token::U16(3),
Token::SeqEnd,
];
@@ -955,11 +817,9 @@ declare_error_tests! {
test_unknown_field<StructDenyUnknown> {
&[
Token::StructStart("StructDenyUnknown", 2),
Token::StructSep,
Token::Str("a"),
Token::I32(0),
Token::StructSep,
Token::Str("d"),
],
Error::Message("unknown field `d`, expected `a`".to_owned()),
@@ -967,7 +827,6 @@ declare_error_tests! {
test_skipped_field_is_unknown<StructDenyUnknown> {
&[
Token::StructStart("StructDenyUnknown", 2),
Token::StructSep,
Token::Str("b"),
],
Error::Message("unknown field `b`, expected `a`".to_owned()),
@@ -975,7 +834,6 @@ declare_error_tests! {
test_skip_all_deny_unknown<StructSkipAllDenyUnknown> {
&[
Token::StructStart("StructSkipAllDenyUnknown", 1),
Token::StructSep,
Token::Str("a"),
],
Error::Message("unknown field `a`, there are no fields".to_owned()),
@@ -1001,20 +859,18 @@ declare_error_tests! {
test_struct_seq_too_long<Struct> {
&[
Token::SeqStart(Some(4)),
Token::SeqSep, Token::I32(1),
Token::SeqSep, Token::I32(2),
Token::SeqSep, Token::I32(3),
Token::I32(1),
Token::I32(2),
Token::I32(3),
],
Error::UnexpectedToken(Token::SeqSep),
Error::UnexpectedToken(Token::I32(3)),
}
test_duplicate_field_struct<Struct> {
&[
Token::MapStart(Some(3)),
Token::MapSep,
Token::Str("a"),
Token::I32(1),
Token::MapSep,
Token::Str("a"),
],
Error::Message("duplicate field `a`".to_owned()),
@@ -1022,11 +878,9 @@ declare_error_tests! {
test_duplicate_field_enum<Enum> {
&[
Token::EnumMapStart("Enum", "Map", 3),
Token::EnumMapSep,
Token::Str("a"),
Token::I32(1),
Token::EnumMapSep,
Token::Str("a"),
],
Error::Message("duplicate field `a`".to_owned()),
@@ -1042,7 +896,6 @@ declare_error_tests! {
test_short_tuple<(u8, u8, u8)> {
&[
Token::TupleStart(1),
Token::TupleSep,
Token::U8(1),
Token::TupleEnd,
],
@@ -1051,7 +904,6 @@ declare_error_tests! {
test_short_array<[u8; 3]> {
&[
Token::SeqStart(Some(1)),
Token::SeqSep,
Token::U8(1),
Token::SeqEnd,
],
-142
View File
@@ -165,15 +165,9 @@ fn test_ser_named_tuple() {
&SerNamedTuple(&a, &mut b, c),
&[
Token::TupleStructStart("SerNamedTuple", 3),
Token::TupleStructSep,
Token::I32(5),
Token::TupleStructSep,
Token::I32(6),
Token::TupleStructSep,
Token::I32(7),
Token::TupleStructEnd,
],
);
@@ -185,15 +179,9 @@ fn test_de_named_tuple() {
&DeNamedTuple(5, 6, 7),
&[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::I32(5),
Token::SeqSep,
Token::I32(6),
Token::SeqSep,
Token::I32(7),
Token::SeqEnd,
]
);
@@ -202,15 +190,9 @@ fn test_de_named_tuple() {
&DeNamedTuple(5, 6, 7),
&[
Token::TupleStructStart("DeNamedTuple", 3),
Token::TupleStructSep,
Token::I32(5),
Token::TupleStructSep,
Token::I32(6),
Token::TupleStructSep,
Token::I32(7),
Token::TupleStructEnd,
]
);
@@ -231,15 +213,12 @@ fn test_ser_named_map() {
&[
Token::StructStart("SerNamedMap", 3),
Token::StructSep,
Token::Str("a"),
Token::I32(5),
Token::StructSep,
Token::Str("b"),
Token::I32(6),
Token::StructSep,
Token::Str("c"),
Token::I32(7),
@@ -259,15 +238,12 @@ fn test_de_named_map() {
&[
Token::StructStart("DeNamedMap", 3),
Token::StructSep,
Token::Str("a"),
Token::I32(5),
Token::StructSep,
Token::Str("b"),
Token::I32(6),
Token::StructSep,
Token::Str("c"),
Token::I32(7),
@@ -302,19 +278,10 @@ fn test_ser_enum_seq() {
),
&[
Token::EnumSeqStart("SerEnum", "Seq", 4),
Token::EnumSeqSep,
Token::I8(1),
Token::EnumSeqSep,
Token::I32(2),
Token::EnumSeqSep,
Token::I32(3),
Token::EnumSeqSep,
Token::I32(4),
Token::EnumSeqEnd,
],
);
@@ -337,19 +304,15 @@ fn test_ser_enum_map() {
&[
Token::EnumMapStart("SerEnum", "Map", 4),
Token::EnumMapSep,
Token::Str("a"),
Token::I8(1),
Token::EnumMapSep,
Token::Str("b"),
Token::I32(2),
Token::EnumMapSep,
Token::Str("c"),
Token::I32(3),
Token::EnumMapSep,
Token::Str("d"),
Token::I32(4),
@@ -384,19 +347,10 @@ fn test_de_enum_seq() {
),
&[
Token::EnumSeqStart("DeEnum", "Seq", 4),
Token::EnumSeqSep,
Token::I8(1),
Token::EnumSeqSep,
Token::I32(2),
Token::EnumSeqSep,
Token::I32(3),
Token::EnumSeqSep,
Token::I32(4),
Token::EnumSeqEnd,
],
);
@@ -419,19 +373,15 @@ fn test_de_enum_map() {
&[
Token::EnumMapStart("DeEnum", "Map", 4),
Token::EnumMapSep,
Token::Str("a"),
Token::I8(1),
Token::EnumMapSep,
Token::Str("b"),
Token::I32(2),
Token::EnumMapSep,
Token::Str("c"),
Token::I32(3),
Token::EnumMapSep,
Token::Str("d"),
Token::I32(4),
@@ -465,7 +415,6 @@ fn test_lifetimes() {
&[
Token::EnumMapStart("Lifetimes", "LifetimeMap", 1),
Token::EnumMapSep,
Token::Str("a"),
Token::I32(5),
@@ -478,7 +427,6 @@ fn test_lifetimes() {
&[
Token::EnumMapStart("Lifetimes", "NoLifetimeMap", 1),
Token::EnumMapSep,
Token::Str("a"),
Token::I32(5),
@@ -494,7 +442,6 @@ fn test_generic_struct() {
&[
Token::StructStart("GenericStruct", 1),
Token::StructSep,
Token::Str("x"),
Token::U32(5),
@@ -520,13 +467,8 @@ fn test_generic_tuple_struct() {
&GenericTupleStruct(5u32, 6u32),
&[
Token::TupleStructStart("GenericTupleStruct", 2),
Token::TupleStructSep,
Token::U32(5),
Token::TupleStructSep,
Token::U32(6),
Token::TupleStructEnd,
]
);
@@ -559,13 +501,8 @@ fn test_generic_enum_seq() {
&GenericEnum::Seq::<u32, u32>(5, 6),
&[
Token::EnumSeqStart("GenericEnum", "Seq", 2),
Token::EnumSeqSep,
Token::U32(5),
Token::EnumSeqSep,
Token::U32(6),
Token::EnumSeqEnd,
]
);
@@ -578,11 +515,9 @@ fn test_generic_enum_map() {
&[
Token::EnumMapStart("GenericEnum", "Map", 2),
Token::EnumMapSep,
Token::Str("x"),
Token::U32(5),
Token::EnumMapSep,
Token::Str("y"),
Token::U32(6),
@@ -598,7 +533,6 @@ fn test_default_ty_param() {
&[
Token::StructStart("DefaultTyParam", 1),
Token::StructSep,
Token::Str("phantom"),
Token::UnitStruct("PhantomData"),
@@ -619,11 +553,9 @@ fn test_enum_state_field() {
&[
Token::EnumMapStart("SomeEnum", "Key", 2),
Token::EnumMapSep,
Token::Str("key"),
Token::Char('a'),
Token::EnumMapSep,
Token::Str("state"),
Token::Bool(true),
@@ -654,7 +586,6 @@ fn test_untagged_enum() {
&[
Token::StructStart("Untagged", 1),
Token::StructSep,
Token::Str("a"),
Token::U8(1),
@@ -667,7 +598,6 @@ fn test_untagged_enum() {
&[
Token::StructStart("Untagged", 1),
Token::StructSep,
Token::Str("b"),
Token::U8(2),
@@ -699,13 +629,8 @@ fn test_untagged_enum() {
&Untagged::F(1, 2),
&[
Token::TupleStart(2),
Token::TupleSep,
Token::U8(1),
Token::TupleSep,
Token::U8(2),
Token::TupleEnd,
]
);
@@ -720,10 +645,7 @@ fn test_untagged_enum() {
assert_de_tokens_error::<Untagged>(
&[
Token::TupleStart(1),
Token::TupleSep,
Token::U8(1),
Token::TupleEnd,
],
Error::Message("data did not match any variant of untagged enum Untagged".to_owned()),
@@ -732,16 +654,9 @@ fn test_untagged_enum() {
assert_de_tokens_error::<Untagged>(
&[
Token::TupleStart(3),
Token::TupleSep,
Token::U8(1),
Token::TupleSep,
Token::U8(2),
Token::TupleSep,
Token::U8(3),
Token::TupleEnd,
],
Error::Message("data did not match any variant of untagged enum Untagged".to_owned()),
@@ -778,11 +693,9 @@ fn test_internally_tagged_enum() {
&[
Token::StructStart("InternallyTagged", 2),
Token::StructSep,
Token::Str("type"),
Token::Str("A"),
Token::StructSep,
Token::Str("a"),
Token::U8(1),
@@ -795,11 +708,9 @@ fn test_internally_tagged_enum() {
&[
Token::StructStart("InternallyTagged", 2),
Token::StructSep,
Token::Str("type"),
Token::Str("B"),
Token::StructSep,
Token::Str("b"),
Token::U8(2),
@@ -812,7 +723,6 @@ fn test_internally_tagged_enum() {
&[
Token::StructStart("InternallyTagged", 1),
Token::StructSep,
Token::Str("type"),
Token::Str("C"),
@@ -825,7 +735,6 @@ fn test_internally_tagged_enum() {
&[
Token::MapStart(Some(1)),
Token::MapSep,
Token::Str("type"),
Token::Str("D"),
@@ -838,7 +747,6 @@ fn test_internally_tagged_enum() {
&[
Token::MapStart(Some(1)),
Token::MapSep,
Token::Str("type"),
Token::Str("E"),
@@ -851,11 +759,9 @@ fn test_internally_tagged_enum() {
&[
Token::StructStart("Struct", 2),
Token::StructSep,
Token::Str("type"),
Token::Str("F"),
Token::StructSep,
Token::Str("f"),
Token::U8(6),
@@ -875,7 +781,6 @@ fn test_internally_tagged_enum() {
&[
Token::MapStart(Some(1)),
Token::MapSep,
Token::Str("type"),
Token::Str("Z"),
@@ -902,7 +807,6 @@ fn test_adjacently_tagged_enum() {
&[
Token::StructStart("AdjacentlyTagged", 1),
Token::StructSep,
Token::Str("t"),
Token::Str("Unit"),
@@ -916,11 +820,9 @@ fn test_adjacently_tagged_enum() {
&[
Token::StructStart("AdjacentlyTagged", 1),
Token::StructSep,
Token::Str("t"),
Token::Str("Unit"),
Token::StructSep,
Token::Str("c"),
Token::Unit,
@@ -934,11 +836,9 @@ fn test_adjacently_tagged_enum() {
&[
Token::StructStart("AdjacentlyTagged", 1),
Token::StructSep,
Token::Str("c"),
Token::Unit,
Token::StructSep,
Token::Str("t"),
Token::Str("Unit"),
@@ -952,11 +852,9 @@ fn test_adjacently_tagged_enum() {
&[
Token::StructStart("AdjacentlyTagged", 2),
Token::StructSep,
Token::Str("t"),
Token::Str("Newtype"),
Token::StructSep,
Token::Str("c"),
Token::U8(1),
@@ -970,11 +868,9 @@ fn test_adjacently_tagged_enum() {
&[
Token::StructStart("AdjacentlyTagged", 2),
Token::StructSep,
Token::Str("c"),
Token::U8(1),
Token::StructSep,
Token::Str("t"),
Token::Str("Newtype"),
@@ -988,16 +884,12 @@ fn test_adjacently_tagged_enum() {
&[
Token::StructStart("AdjacentlyTagged", 2),
Token::StructSep,
Token::Str("t"),
Token::Str("Tuple"),
Token::StructSep,
Token::Str("c"),
Token::TupleStart(2),
Token::TupleSep,
Token::U8(1),
Token::TupleSep,
Token::U8(1),
Token::TupleEnd,
@@ -1011,16 +903,12 @@ fn test_adjacently_tagged_enum() {
&[
Token::StructStart("AdjacentlyTagged", 2),
Token::StructSep,
Token::Str("c"),
Token::TupleStart(2),
Token::TupleSep,
Token::U8(1),
Token::TupleSep,
Token::U8(1),
Token::TupleEnd,
Token::StructSep,
Token::Str("t"),
Token::Str("Tuple"),
@@ -1034,14 +922,11 @@ fn test_adjacently_tagged_enum() {
&[
Token::StructStart("AdjacentlyTagged", 2),
Token::StructSep,
Token::Str("t"),
Token::Str("Struct"),
Token::StructSep,
Token::Str("c"),
Token::StructStart("Struct", 1),
Token::StructSep,
Token::Str("f"),
Token::U8(1),
Token::StructEnd,
@@ -1056,15 +941,12 @@ fn test_adjacently_tagged_enum() {
&[
Token::StructStart("AdjacentlyTagged", 2),
Token::StructSep,
Token::Str("c"),
Token::StructStart("Struct", 1),
Token::StructSep,
Token::Str("f"),
Token::U8(1),
Token::StructEnd,
Token::StructSep,
Token::Str("t"),
Token::Str("Struct"),
@@ -1094,11 +976,9 @@ fn test_enum_in_internally_tagged_enum() {
&[
Token::MapStart(Some(2)),
Token::MapSep,
Token::Str("type"),
Token::Str("Inner"),
Token::MapSep,
Token::Str("Unit"),
Token::Unit,
@@ -1111,11 +991,9 @@ fn test_enum_in_internally_tagged_enum() {
&[
Token::MapStart(Some(2)),
Token::MapSep,
Token::Str("type"),
Token::Str("Inner"),
Token::MapSep,
Token::Str("Newtype"),
Token::U8(1),
@@ -1128,16 +1006,12 @@ fn test_enum_in_internally_tagged_enum() {
&[
Token::MapStart(Some(2)),
Token::MapSep,
Token::Str("type"),
Token::Str("Inner"),
Token::MapSep,
Token::Str("Tuple"),
Token::TupleStructStart("Tuple", 2),
Token::TupleStructSep,
Token::U8(1),
Token::TupleStructSep,
Token::U8(1),
Token::TupleStructEnd,
@@ -1150,14 +1024,11 @@ fn test_enum_in_internally_tagged_enum() {
&[
Token::MapStart(Some(2)),
Token::MapSep,
Token::Str("type"),
Token::Str("Inner"),
Token::MapSep,
Token::Str("Struct"),
Token::StructStart("Struct", 1),
Token::StructSep,
Token::Str("f"),
Token::U8(1),
Token::StructEnd,
@@ -1202,12 +1073,8 @@ fn test_enum_in_untagged_enum() {
&Outer::Inner(Inner::Tuple(1, 1)),
&[
Token::EnumSeqStart("Inner", "Tuple", 2),
Token::EnumSeqSep,
Token::U8(1),
Token::EnumSeqSep,
Token::U8(1),
Token::EnumSeqEnd,
]
);
@@ -1217,7 +1084,6 @@ fn test_enum_in_untagged_enum() {
&[
Token::EnumMapStart("Inner", "Struct", 1),
Token::EnumMapSep,
Token::Str("f"),
Token::U8(1),
@@ -1259,10 +1125,8 @@ fn test_rename_all() {
&E::Serialize { serialize: true, serialize_seq: true },
&[
Token::EnumMapStart("E", "serialize", 2),
Token::EnumMapSep,
Token::Str("serialize"),
Token::Bool(true),
Token::EnumMapSep,
Token::Str("serializeSeq"),
Token::Bool(true),
Token::EnumMapEnd,
@@ -1273,10 +1137,8 @@ fn test_rename_all() {
&E::SerializeSeq { serialize: true, serialize_seq: true },
&[
Token::EnumMapStart("E", "serialize_seq", 2),
Token::EnumMapSep,
Token::Str("serialize"),
Token::Bool(true),
Token::EnumMapSep,
Token::Str("serialize-seq"),
Token::Bool(true),
Token::EnumMapEnd,
@@ -1287,10 +1149,8 @@ fn test_rename_all() {
&E::SerializeMap { serialize: true, serialize_seq: true },
&[
Token::EnumMapStart("E", "serialize_map", 2),
Token::EnumMapSep,
Token::Str("SERIALIZE"),
Token::Bool(true),
Token::EnumMapSep,
Token::Str("SERIALIZE_SEQ"),
Token::Bool(true),
Token::EnumMapEnd,
@@ -1301,10 +1161,8 @@ fn test_rename_all() {
&S { serialize: true, serialize_seq: true },
&[
Token::StructStart("S", 2),
Token::StructSep,
Token::Str("Serialize"),
Token::Bool(true),
Token::StructSep,
Token::Str("SerializeSeq"),
Token::Bool(true),
Token::StructEnd,
-54
View File
@@ -125,13 +125,8 @@ declare_tests! {
],
&[1, 2, 3][..] => &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::I32(1),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
],
@@ -143,13 +138,8 @@ declare_tests! {
],
[1, 2, 3] => &[
Token::SeqArrayStart(3),
Token::SeqSep,
Token::I32(1),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
],
@@ -161,22 +151,15 @@ declare_tests! {
],
vec![vec![], vec![1], vec![2, 3]] => &[
Token::SeqStart(Some(3)),
Token::SeqSep,
Token::SeqStart(Some(0)),
Token::SeqEnd,
Token::SeqSep,
Token::SeqStart(Some(1)),
Token::SeqSep,
Token::I32(1),
Token::SeqEnd,
Token::SeqSep,
Token::SeqStart(Some(2)),
Token::SeqSep,
Token::I32(2),
Token::SeqSep,
Token::I32(3),
Token::SeqEnd,
Token::SeqEnd,
@@ -189,13 +172,11 @@ declare_tests! {
],
hashset![1] => &[
Token::SeqStart(Some(1)),
Token::SeqSep,
Token::I32(1),
Token::SeqEnd,
],
hashset![FnvHasher @ 1] => &[
Token::SeqStart(Some(1)),
Token::SeqSep,
Token::I32(1),
Token::SeqEnd,
],
@@ -203,19 +184,13 @@ declare_tests! {
test_tuple {
(1,) => &[
Token::TupleStart(1),
Token::TupleSep,
Token::I32(1),
Token::TupleEnd,
],
(1, 2, 3) => &[
Token::TupleStart(3),
Token::TupleSep,
Token::I32(1),
Token::TupleSep,
Token::I32(2),
Token::TupleSep,
Token::I32(3),
Token::TupleEnd,
],
@@ -223,37 +198,30 @@ declare_tests! {
test_btreemap {
btreemap![1 => 2] => &[
Token::MapStart(Some(1)),
Token::MapSep,
Token::I32(1),
Token::I32(2),
Token::MapEnd,
],
btreemap![1 => 2, 3 => 4] => &[
Token::MapStart(Some(2)),
Token::MapSep,
Token::I32(1),
Token::I32(2),
Token::MapSep,
Token::I32(3),
Token::I32(4),
Token::MapEnd,
],
btreemap![1 => btreemap![], 2 => btreemap![3 => 4, 5 => 6]] => &[
Token::MapStart(Some(2)),
Token::MapSep,
Token::I32(1),
Token::MapStart(Some(0)),
Token::MapEnd,
Token::MapSep,
Token::I32(2),
Token::MapStart(Some(2)),
Token::MapSep,
Token::I32(3),
Token::I32(4),
Token::MapSep,
Token::I32(5),
Token::I32(6),
Token::MapEnd,
@@ -267,14 +235,12 @@ declare_tests! {
],
hashmap![1 => 2] => &[
Token::MapStart(Some(1)),
Token::MapSep,
Token::I32(1),
Token::I32(2),
Token::MapEnd,
],
hashmap![FnvHasher @ 1 => 2] => &[
Token::MapStart(Some(1)),
Token::MapSep,
Token::I32(1),
Token::I32(2),
Token::MapEnd,
@@ -286,13 +252,8 @@ declare_tests! {
test_tuple_struct {
TupleStruct(1, 2, 3) => &[
Token::TupleStructStart("TupleStruct", 3),
Token::TupleStructSep,
Token::I32(1),
Token::TupleStructSep,
Token::I32(2),
Token::TupleStructSep,
Token::I32(3),
Token::TupleStructEnd,
],
@@ -300,15 +261,12 @@ declare_tests! {
test_struct {
Struct { a: 1, b: 2, c: 3 } => &[
Token::StructStart("Struct", 3),
Token::StructSep,
Token::Str("a"),
Token::I32(1),
Token::StructSep,
Token::Str("b"),
Token::I32(2),
Token::StructSep,
Token::Str("c"),
Token::I32(3),
Token::StructEnd,
@@ -319,20 +277,15 @@ declare_tests! {
Enum::One(42) => &[Token::EnumNewType("Enum", "One"), Token::I32(42)],
Enum::Seq(1, 2) => &[
Token::EnumSeqStart("Enum", "Seq", 2),
Token::EnumSeqSep,
Token::I32(1),
Token::EnumSeqSep,
Token::I32(2),
Token::EnumSeqEnd,
],
Enum::Map { a: 1, b: 2 } => &[
Token::EnumMapStart("Enum", "Map", 2),
Token::EnumMapSep,
Token::Str("a"),
Token::I32(1),
Token::EnumMapSep,
Token::Str("b"),
Token::I32(2),
Token::EnumMapEnd,
@@ -344,11 +297,8 @@ declare_tests! {
test_boxed_slice {
Box::new([0, 1, 2]) => &[
Token::SeqArrayStart(3),
Token::SeqSep,
Token::I32(0),
Token::SeqSep,
Token::I32(1),
Token::SeqSep,
Token::I32(2),
Token::SeqEnd,
],
@@ -356,11 +306,9 @@ declare_tests! {
test_duration {
Duration::new(1, 2) => &[
Token::StructStart("Duration", 2),
Token::StructSep,
Token::Str("secs"),
Token::U64(1),
Token::StructSep,
Token::Str("nanos"),
Token::U32(2),
Token::StructEnd,
@@ -369,11 +317,9 @@ declare_tests! {
test_range {
1u32..2u32 => &[
Token::StructStart("Range", 2),
Token::StructSep,
Token::Str("start"),
Token::U32(1),
Token::StructSep,
Token::Str("end"),
Token::U32(2),
Token::StructEnd,