diff --git a/test_suite/tests/test_de_error.rs b/test_suite/tests/test_de_error.rs index a8564112..424376ab 100644 --- a/test_suite/tests/test_de_error.rs +++ b/test_suite/tests/test_de_error.rs @@ -60,6 +60,317 @@ enum EnumSkipAll { Skipped, } +#[test] +fn test_i8() { + let test = assert_de_tokens_error::; + + // from signed + test( + &[Token::I16(-129)], + "invalid value: integer `-129`, expected i8", + ); + test( + &[Token::I32(-129)], + "invalid value: integer `-129`, expected i8", + ); + test( + &[Token::I64(-129)], + "invalid value: integer `-129`, expected i8", + ); + test( + &[Token::I16(128)], + "invalid value: integer `128`, expected i8", + ); + test( + &[Token::I32(128)], + "invalid value: integer `128`, expected i8", + ); + test( + &[Token::I64(128)], + "invalid value: integer `128`, expected i8", + ); + + // from unsigned + test( + &[Token::U8(128)], + "invalid value: integer `128`, expected i8", + ); + test( + &[Token::U16(128)], + "invalid value: integer `128`, expected i8", + ); + test( + &[Token::U32(128)], + "invalid value: integer `128`, expected i8", + ); + test( + &[Token::U64(128)], + "invalid value: integer `128`, expected i8", + ); +} + +#[test] +fn test_i16() { + let test = assert_de_tokens_error::; + + // from signed + test( + &[Token::I32(-32769)], + "invalid value: integer `-32769`, expected i16", + ); + test( + &[Token::I64(-32769)], + "invalid value: integer `-32769`, expected i16", + ); + test( + &[Token::I32(32768)], + "invalid value: integer `32768`, expected i16", + ); + test( + &[Token::I64(32768)], + "invalid value: integer `32768`, expected i16", + ); + + // from unsigned + test( + &[Token::U16(32768)], + "invalid value: integer `32768`, expected i16", + ); + test( + &[Token::U32(32768)], + "invalid value: integer `32768`, expected i16", + ); + test( + &[Token::U64(32768)], + "invalid value: integer `32768`, expected i16", + ); +} + +#[test] +fn test_i32() { + let test = assert_de_tokens_error::; + + // from signed + test( + &[Token::I64(-2147483649)], + "invalid value: integer `-2147483649`, expected i32", + ); + test( + &[Token::I64(2147483648)], + "invalid value: integer `2147483648`, expected i32", + ); + + // from unsigned + test( + &[Token::U32(2147483648)], + "invalid value: integer `2147483648`, expected i32", + ); + test( + &[Token::U64(2147483648)], + "invalid value: integer `2147483648`, expected i32", + ); +} + +#[test] +fn test_i64() { + let test = assert_de_tokens_error::; + + // from unsigned + test( + &[Token::U64(9223372036854775808)], + "invalid value: integer `9223372036854775808`, expected i64", + ); +} + +#[test] +fn test_u8() { + let test = assert_de_tokens_error::; + + // from signed + test(&[Token::I8(-1)], "invalid value: integer `-1`, expected u8"); + test( + &[Token::I16(-1)], + "invalid value: integer `-1`, expected u8", + ); + test( + &[Token::I32(-1)], + "invalid value: integer `-1`, expected u8", + ); + test( + &[Token::I64(-1)], + "invalid value: integer `-1`, expected u8", + ); + test( + &[Token::I16(256)], + "invalid value: integer `256`, expected u8", + ); + test( + &[Token::I32(256)], + "invalid value: integer `256`, expected u8", + ); + test( + &[Token::I64(256)], + "invalid value: integer `256`, expected u8", + ); + + // from unsigned + test( + &[Token::U16(256)], + "invalid value: integer `256`, expected u8", + ); + test( + &[Token::U32(256)], + "invalid value: integer `256`, expected u8", + ); + test( + &[Token::U64(256)], + "invalid value: integer `256`, expected u8", + ); +} + +#[test] +fn test_u16() { + let test = assert_de_tokens_error::; + + // from signed + test( + &[Token::I8(-1)], + "invalid value: integer `-1`, expected u16", + ); + test( + &[Token::I16(-1)], + "invalid value: integer `-1`, expected u16", + ); + test( + &[Token::I32(-1)], + "invalid value: integer `-1`, expected u16", + ); + test( + &[Token::I64(-1)], + "invalid value: integer `-1`, expected u16", + ); + test( + &[Token::I32(65536)], + "invalid value: integer `65536`, expected u16", + ); + test( + &[Token::I64(65536)], + "invalid value: integer `65536`, expected u16", + ); + + // from unsigned + test( + &[Token::U32(65536)], + "invalid value: integer `65536`, expected u16", + ); + test( + &[Token::U64(65536)], + "invalid value: integer `65536`, expected u16", + ); +} + +#[test] +fn test_u32() { + let test = assert_de_tokens_error::; + + // from signed + test( + &[Token::I8(-1)], + "invalid value: integer `-1`, expected u32", + ); + test( + &[Token::I16(-1)], + "invalid value: integer `-1`, expected u32", + ); + test( + &[Token::I32(-1)], + "invalid value: integer `-1`, expected u32", + ); + test( + &[Token::I64(-1)], + "invalid value: integer `-1`, expected u32", + ); + test( + &[Token::I64(4294967296)], + "invalid value: integer `4294967296`, expected u32", + ); + + // from unsigned + test( + &[Token::U64(4294967296)], + "invalid value: integer `4294967296`, expected u32", + ); +} + +#[test] +fn test_u64() { + let test = assert_de_tokens_error::; + + // from signed + test( + &[Token::I8(-1)], + "invalid value: integer `-1`, expected u64", + ); + test( + &[Token::I16(-1)], + "invalid value: integer `-1`, expected u64", + ); + test( + &[Token::I32(-1)], + "invalid value: integer `-1`, expected u64", + ); + test( + &[Token::I64(-1)], + "invalid value: integer `-1`, expected u64", + ); +} + +#[test] +fn test_u128() { + let test = assert_de_tokens_error::; + + // from signed + test( + &[Token::I8(-1)], + "invalid value: integer `-1`, expected u128", + ); + test( + &[Token::I16(-1)], + "invalid value: integer `-1`, expected u128", + ); + test( + &[Token::I32(-1)], + "invalid value: integer `-1`, expected u128", + ); + test( + &[Token::I64(-1)], + "invalid value: integer `-1`, expected u128", + ); +} + +#[test] +fn test_usize() { + let test = assert_de_tokens_error::; + + // from signed + test( + &[Token::I8(-1)], + "invalid value: integer `-1`, expected usize", + ); + test( + &[Token::I16(-1)], + "invalid value: integer `-1`, expected usize", + ); + test( + &[Token::I32(-1)], + "invalid value: integer `-1`, expected usize", + ); + test( + &[Token::I64(-1)], + "invalid value: integer `-1`, expected usize", + ); +} + #[test] fn test_unknown_field() { assert_de_tokens_error::(