From 7a6ce2a35a73306e2239f49a77764a0fbb4b0960 Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Thu, 22 Sep 2022 17:20:57 +0800 Subject: [PATCH] Fix test on 32-bit architectures. --- src/tests.rs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/tests.rs b/src/tests.rs index d1ffd525..1d897871 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -7,6 +7,7 @@ fn check_struct_sizes() { use crate::*; use std::mem::size_of; + const IS_32_BIT: bool = cfg!(target_pointer_width = "32"); const PACKED: bool = cfg!(all( target_pointer_width = "32", feature = "only_i32", @@ -19,11 +20,25 @@ fn check_struct_sizes() { size_of::(), if cfg!(feature = "no_position") { 0 } else { 4 } ); - assert_eq!(size_of::(), 32); + assert_eq!( + size_of::(), + if IS_32_BIT { + if cfg!(feature = "decimal") { + 24 + } else { + 16 + } + } else { + 32 + } + ); assert_eq!(size_of::(), if PACKED { 12 } else { 16 }); assert_eq!(size_of::>(), if PACKED { 12 } else { 16 }); - assert_eq!(size_of::(), if PACKED { 12 } else { 16 }); - assert_eq!(size_of::>(), if PACKED { 12 } else { 16 }); + assert_eq!(size_of::(), if IS_32_BIT { 12 } else { 16 }); + assert_eq!( + size_of::>(), + if IS_32_BIT { 12 } else { 16 } + ); #[cfg(target_pointer_width = "64")] {