Skip to content

Commit 878de47

Browse files
committed
tests: lib: json: zero-initialize structs before using memcmp in tests
Zero-initialize the `test_int_limits` and `test_enums` structs before assignment and decoding in their respective tests. This ensures that all padding bytes are set to zero, making `memcmp`-based comparisons reliable and portable across different architectures and compilers. Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
1 parent c719e2c commit 878de47

File tree

1 file changed

+35
-37
lines changed

1 file changed

+35
-37
lines changed

tests/lib/json/src/main.c

Lines changed: 35 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -596,35 +596,35 @@ ZTEST(lib_json_test, test_json_limits)
596596
"\"uint8_min\":0"
597597
"}";
598598

599-
struct test_int_limits limits = {
600-
.int_max = INT_MAX,
601-
.int_cero = 0,
602-
.int_min = INT_MIN,
603-
.int64_max = INT64_MAX,
604-
.int64_cero = 0,
605-
.int64_min = INT64_MIN,
606-
.uint64_max = UINT64_MAX,
607-
.uint64_cero = 0,
608-
.uint64_min = 0,
609-
.uint32_max = UINT32_MAX,
610-
.uint32_cero = 0,
611-
.uint32_min = 0,
612-
.int16_max = INT16_MAX,
613-
.int16_cero = 0,
614-
.int16_min = INT16_MIN,
615-
.uint16_max = UINT16_MAX,
616-
.uint16_cero = 0,
617-
.uint16_min = 0,
618-
.int8_max = INT8_MAX,
619-
.int8_cero = 0,
620-
.int8_min = INT8_MIN,
621-
.uint8_max = UINT8_MAX,
622-
.uint8_cero = 0,
623-
.uint8_min = 0,
624-
};
599+
struct test_int_limits limits = {0};
600+
struct test_int_limits limits_decoded = {0};
601+
602+
limits.int_max = INT_MAX;
603+
limits.int_cero = 0;
604+
limits.int_min = INT_MIN;
605+
limits.int64_max = INT64_MAX;
606+
limits.int64_cero = 0;
607+
limits.int64_min = INT64_MIN;
608+
limits.uint64_max = UINT64_MAX;
609+
limits.uint64_cero = 0;
610+
limits.uint64_min = 0;
611+
limits.uint32_max = UINT32_MAX;
612+
limits.uint32_cero = 0;
613+
limits.uint32_min = 0;
614+
limits.int16_max = INT16_MAX;
615+
limits.int16_cero = 0;
616+
limits.int16_min = INT16_MIN;
617+
limits.uint16_max = UINT16_MAX;
618+
limits.uint16_cero = 0;
619+
limits.uint16_min = 0;
620+
limits.int8_max = INT8_MAX;
621+
limits.int8_cero = 0;
622+
limits.int8_min = INT8_MIN;
623+
limits.uint8_max = UINT8_MAX;
624+
limits.uint8_cero = 0;
625+
limits.uint8_min = 0;
625626

626627
char buffer[sizeof(encoded)];
627-
struct test_int_limits limits_decoded = {0};
628628

629629
ret = json_obj_encode_buf(obj_limits_descr, ARRAY_SIZE(obj_limits_descr),
630630
&limits, buffer, sizeof(buffer));
@@ -2156,18 +2156,16 @@ ZTEST(lib_json_test, test_json_enums)
21562156
"\"i32\":-2147483648,"
21572157
"\"u32\":4294967295"
21582158
"}";
2159-
2160-
struct test_enums enums = {
2161-
.i8 = I8_MIN,
2162-
.u8 = U8_MAX,
2163-
.i16 = I16_MIN,
2164-
.u16 = U16_MAX,
2165-
.i32 = I32_MIN,
2166-
.u32 = U32_MAX,
2167-
};
2168-
21692159
char buffer[sizeof(encoded)];
21702160
struct test_enums enums_decoded = {0};
2161+
struct test_enums enums = {0};
2162+
2163+
enums.i8 = I8_MIN;
2164+
enums.u8 = U8_MAX;
2165+
enums.i16 = I16_MIN;
2166+
enums.u16 = U16_MAX;
2167+
enums.i32 = I32_MIN;
2168+
enums.u32 = U32_MAX;
21712169

21722170
ret = json_obj_encode_buf(enums_descr, ARRAY_SIZE(enums_descr),
21732171
&enums, buffer, sizeof(buffer));

0 commit comments

Comments
 (0)