Support compilation with cmocka 2.0.0+

The `assert_in_range()` function was deprecated in favor of
`assert_int_in_range()` and `assert_uint_in_range()`. Add compatibility
shims for cmocka<2.0.0 and use the new functions.

(cherry picked from commit 6843a4bd9a)
This commit is contained in:
Nicki Křížek 2025-12-29 13:37:34 +01:00
parent c967fa58c2
commit 0a09df0b7a
7 changed files with 23 additions and 12 deletions

View file

@ -175,7 +175,7 @@ ISC_LOOP_TEST_IMPL(dns_dbfind_staleok) {
count = 0;
do {
count++;
assert_in_range(count, 1, 21); /* loop sanity */
assert_int_in_range(count, 1, 21); /* loop sanity */
assert_int_equal(rdataset.attributes &
DNS_RDATASETATTR_STALE,
0);
@ -210,7 +210,8 @@ ISC_LOOP_TEST_IMPL(dns_dbfind_staleok) {
count = 0;
do {
count++;
assert_in_range(count, 0, 49); /* loop sanity */
assert_int_in_range(count, 0, 49); /* loop
sanity */
assert_int_equal(result, ISC_R_SUCCESS);
assert_int_equal(rdataset.attributes &
DNS_RDATASETATTR_STALE,
@ -229,7 +230,7 @@ ISC_LOOP_TEST_IMPL(dns_dbfind_staleok) {
* usleep(100000) can be slightly less than 10ms so
* allow the count to reach 11.
*/
assert_in_range(count, 1, 11);
assert_int_in_range(count, 1, 11);
assert_int_equal(result, ISC_R_NOTFOUND);
break;
case 2:

View file

@ -52,7 +52,7 @@ dns_ede_test_equals(const ede_test_expected_t *expected, size_t expected_count,
uint16_t code;
const unsigned char *txt;
assert_in_range(count, 0, expected_count);
assert_uint_in_range(count, 0, expected_count);
assert_int_equal(edns->code, DNS_OPT_EDE);
code = ISC_U8TO16_BE(edns->value);

View file

@ -178,7 +178,7 @@ ISC_RUN_TEST_IMPL(qpkey_sort) {
static void
check_leaf(void *uctx, void *pval, uint32_t ival) {
uint32_t *items = uctx;
assert_in_range(ival, 1, ITER_ITEMS - 1);
assert_uint_in_range(ival, 1, ITER_ITEMS - 1);
assert_ptr_equal(items + ival, pval);
}
@ -250,7 +250,7 @@ ISC_RUN_TEST_IMPL(qpiter) {
while (dns_qpiter_next(&qpi, NULL, &pval, &ival) ==
ISC_R_SUCCESS)
{
assert_in_range(ival, prev + 1, ITER_ITEMS - 1);
assert_uint_in_range(ival, prev + 1, ITER_ITEMS - 1);
assert_int_equal(ival, item[ival]);
assert_ptr_equal(pval, &item[ival]);
order[inserted++] = ival;

View file

@ -161,7 +161,7 @@ ISC_LOOP_TEST_IMPL(settimeout_belowmin) {
dns_resolver_settimeout(resolver, 300);
timeout = dns_resolver_gettimeout(resolver);
assert_in_range(timeout, default_timeout, 3999999);
assert_uint_in_range(timeout, default_timeout, 3999999);
destroy_resolver(&resolver);
isc_loopmgr_shutdown(loopmgr);
@ -178,7 +178,7 @@ ISC_LOOP_TEST_IMPL(settimeout_overmax) {
dns_resolver_settimeout(resolver, 4000000);
timeout = dns_resolver_gettimeout(resolver);
assert_in_range(timeout, default_timeout, 3999999);
assert_uint_in_range(timeout, default_timeout, 3999999);
destroy_resolver(&resolver);
isc_loopmgr_shutdown(loopmgr);

View file

@ -66,6 +66,16 @@ teardown_managers(void **state);
#define TESTS_DIR "./"
#endif
/* cmocka<2.0.0 compatibility */
#ifndef assert_int_in_range
#define assert_int_in_range(value, min, max) \
assert_in_range((value), (min), (max))
#endif
#ifndef assert_uint_in_range
#define assert_uint_in_range(value, min, max) \
assert_in_range((value), (min), (max))
#endif
/* clang-format off */
/* Copied from cmocka */
#define ISC_TEST_ENTRY(name) \

View file

@ -213,9 +213,9 @@ ISC_RUN_TEST_IMPL(quantiles) {
uint i = (quantum + base - key) * 2;
/* check fenceposts */
assert_in_range(value[i - 0], lomin, himin);
assert_in_range(value[i - 1], lomid, himid);
assert_in_range(value[i - 2], lomax, himax);
assert_uint_in_range(value[i - 0], lomin, himin);
assert_uint_in_range(value[i - 1], lomid, himid);
assert_uint_in_range(value[i - 2], lomax, himax);
/* these tests can be slow */
if (isc_time_monotonic() > start + TIME_LIMIT) {

View file

@ -470,7 +470,7 @@ ISC_RUN_TEST_IMPL(isc_mem_traceflag) {
assert_non_null(p);
p = strchr(p + 1, '\n');
assert_non_null(p);
assert_in_range(p, 0, buf + sizeof(buf) - 3);
assert_uint_in_range(p, 0, buf + sizeof(buf) - 3);
assert_memory_equal(p + 2, "ptr ", 4);
p = strchr(p + 1, '\n');
assert_non_null(p);