diff options
Diffstat (limited to 'vendor/serde_json/tests')
-rw-r--r-- | vendor/serde_json/tests/lexical.rs | 1 | ||||
-rw-r--r-- | vendor/serde_json/tests/regression/issue1004.rs | 12 | ||||
-rw-r--r-- | vendor/serde_json/tests/test.rs | 22 |
3 files changed, 35 insertions, 0 deletions
diff --git a/vendor/serde_json/tests/lexical.rs b/vendor/serde_json/tests/lexical.rs index 6e0f07b8c..d3dfb852b 100644 --- a/vendor/serde_json/tests/lexical.rs +++ b/vendor/serde_json/tests/lexical.rs @@ -9,6 +9,7 @@ clippy::excessive_precision, clippy::float_cmp, clippy::if_not_else, + clippy::let_underscore_untyped, clippy::module_name_repetitions, clippy::needless_late_init, clippy::shadow_unrelated, diff --git a/vendor/serde_json/tests/regression/issue1004.rs b/vendor/serde_json/tests/regression/issue1004.rs new file mode 100644 index 000000000..3f5bd96aa --- /dev/null +++ b/vendor/serde_json/tests/regression/issue1004.rs @@ -0,0 +1,12 @@ +#![cfg(feature = "arbitrary_precision")] + +#[test] +fn test() { + let float = 5.55f32; + let value = serde_json::to_value(&float).unwrap(); + let json = serde_json::to_string(&value).unwrap(); + + // If the f32 were cast to f64 by Value before serialization, then this + // would incorrectly serialize as 5.550000190734863. + assert_eq!(json, "5.55"); +} diff --git a/vendor/serde_json/tests/test.rs b/vendor/serde_json/tests/test.rs index c2050724b..6c08cc8d2 100644 --- a/vendor/serde_json/tests/test.rs +++ b/vendor/serde_json/tests/test.rs @@ -6,6 +6,7 @@ clippy::excessive_precision, clippy::float_cmp, clippy::items_after_statements, + clippy::let_underscore_untyped, clippy::shadow_unrelated, clippy::too_many_lines, clippy::unreadable_literal, @@ -2180,6 +2181,27 @@ fn test_integer128() { ]); } +#[test] +fn test_integer128_to_value() { + let signed = &[i128::from(i64::min_value()), i128::from(u64::max_value())]; + let unsigned = &[0, u128::from(u64::max_value())]; + + for integer128 in signed { + let expected = integer128.to_string(); + assert_eq!(to_value(integer128).unwrap().to_string(), expected); + } + + for integer128 in unsigned { + let expected = integer128.to_string(); + assert_eq!(to_value(integer128).unwrap().to_string(), expected); + } + + if !cfg!(feature = "arbitrary_precision") { + let err = to_value(u128::from(u64::max_value()) + 1).unwrap_err(); + assert_eq!(err.to_string(), "number out of range"); + } +} + #[cfg(feature = "raw_value")] #[test] fn test_borrowed_raw_value() { |