diff --git a/lib/isc/tests/quota_test.c b/lib/isc/tests/quota_test.c index 36b661c3c8..99ba08f75b 100644 --- a/lib/isc/tests/quota_test.c +++ b/lib/isc/tests/quota_test.c @@ -52,19 +52,29 @@ isc_quota_get_set_test(void **state) { isc_quota_destroy("a); } -#define add_quota(quota, quotasp, exp, attached, exp_used) \ - { \ - *quotasp = NULL; \ - isc_result_t result = isc_quota_attach(quota, quotasp); \ - assert_int_equal(result, exp); \ - if (attached) { \ - assert_ptr_equal(*quotasp, quota); \ - } else { \ - assert_null(*quotasp); \ - } \ - assert_int_equal(isc_quota_getused(quota), exp_used); \ +static void +add_quota(isc_quota_t *source, isc_quota_t **target, + isc_result_t expected_result, int expected_used) { + isc_result_t result; + + *target = NULL; + + result = isc_quota_attach(source, target); + assert_int_equal(result, expected_result); + + switch (expected_result) { + case ISC_R_SUCCESS: + case ISC_R_SOFTQUOTA: + assert_ptr_equal(*target, source); + break; + default: + assert_null(*target); + break; } + assert_int_equal(isc_quota_getused(source), expected_used); +} + static void isc_quota_hard_test(void **state) { isc_quota_t quota; @@ -75,18 +85,18 @@ isc_quota_hard_test(void **state) { isc_quota_init("a, 100); for (i = 0; i < 100; i++) { - add_quota("a, "as[i], ISC_R_SUCCESS, true, i + 1); + add_quota("a, "as[i], ISC_R_SUCCESS, i + 1); } - add_quota("a, "as[100], ISC_R_QUOTA, false, 100); + add_quota("a, "as[100], ISC_R_QUOTA, 100); assert_int_equal(isc_quota_getused("a), 100); isc_quota_detach("as[0]); assert_null(quotas[0]); - add_quota("a, "as[100], ISC_R_SUCCESS, true, 100); - add_quota("a, "as[101], ISC_R_QUOTA, false, 100); + add_quota("a, "as[100], ISC_R_SUCCESS, 100); + add_quota("a, "as[101], ISC_R_QUOTA, 100); for (i = 100; i > 0; i--) { isc_quota_detach("as[i]); @@ -108,13 +118,13 @@ isc_quota_soft_test(void **state) { isc_quota_soft("a, 50); for (i = 0; i < 50; i++) { - add_quota("a, "as[i], ISC_R_SUCCESS, true, i + 1); + add_quota("a, "as[i], ISC_R_SUCCESS, i + 1); } for (i = 50; i < 100; i++) { - add_quota("a, "as[i], ISC_R_SOFTQUOTA, true, i + 1); + add_quota("a, "as[i], ISC_R_SOFTQUOTA, i + 1); } - add_quota("a, "as[i], ISC_R_QUOTA, false, 100); + add_quota("a, "as[i], ISC_R_QUOTA, 100); for (i = 99; i >= 0; i--) { isc_quota_detach("as[i]);