From dae8a503e49eb37ada864a88dbc8dad50eb4cdf3 Mon Sep 17 00:00:00 2001 From: Eremey Valetov Date: Sun, 3 May 2026 12:15:09 -0400 Subject: [PATCH] Fix int-truncation in test_merkle and test_dict Debug builds uc2_merkle_root() and uc2_dict_id() return uint64_t; the int _r temporaries from 97e05ad's NDEBUG fix truncated the high 32 bits. Under Release the assertion was stripped, hiding the bug; under Debug the truncated _r never matched the second uint64_t call. --- tests/src/test_dict.c | 2 +- tests/src/test_merkle.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/src/test_dict.c b/tests/src/test_dict.c index c52f7fb..5f3d3de 100644 --- a/tests/src/test_dict.c +++ b/tests/src/test_dict.c @@ -27,7 +27,7 @@ static void test_id_deterministic(void) struct uc2_dict d1, d2; uc2_dict_create(&d1, data, sizeof data); uc2_dict_create(&d2, data, sizeof data); - { int _r = uc2_dict_id(&d1); (void)_r; assert(_r == uc2_dict_id(&d2)); } + { uint64_t _r = uc2_dict_id(&d1); (void)_r; assert(_r == uc2_dict_id(&d2)); } assert(uc2_dict_match(&d1, &d2)); uc2_dict_free(&d1); uc2_dict_free(&d2); diff --git a/tests/src/test_merkle.c b/tests/src/test_merkle.c index 9cee458..db30e2b 100644 --- a/tests/src/test_merkle.c +++ b/tests/src/test_merkle.c @@ -32,7 +32,7 @@ static void test_build_empty(void) struct uc2_merkle tree; uc2_merkle_build(&tree, NULL, 0, 13); assert(tree.nchunks == 0); - { int _r = uc2_merkle_root(&tree); (void)_r; assert(_r == 0); } + { uint64_t _r = uc2_merkle_root(&tree); (void)_r; assert(_r == 0); } uc2_merkle_free(&tree); } @@ -58,7 +58,7 @@ static void test_identical_files(void) uc2_merkle_build(&t1, data, len, 13); uc2_merkle_build(&t2, data, len, 13); - { int _r = uc2_merkle_root(&t1); (void)_r; assert(_r == uc2_merkle_root(&t2)); } + { uint64_t _r = uc2_merkle_root(&t1); (void)_r; assert(_r == uc2_merkle_root(&t2)); } assert(t1.nchunks == t2.nchunks); { int _r = uc2_merkle_common(&t1, &t2); (void)_r; assert(_r == t1.nchunks); } assert(fabs(uc2_merkle_similarity(&t1, &t2) - 1.0) < 0.001);