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;
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]);
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]);