From: Barbara Kaczorowska Date: Tue, 18 Aug 2020 06:54:37 +0000 (+0000) Subject: Add test for uc_update function X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=67d44ab76de65c2fa7cb0006d3fbd29a2bd3eddd;p=thirdparty%2Fcollectd.git Add test for uc_update function --- diff --git a/src/daemon/utils_cache_test.c b/src/daemon/utils_cache_test.c index be294af60..7238122ef 100644 --- a/src/daemon/utils_cache_test.c +++ b/src/daemon/utils_cache_test.c @@ -26,34 +26,94 @@ #include "collectd.h" +#include "distribution.h" #include "testing.h" #include "utils_cache.h" -DEF_TEST(uc_insert) { +static metric_family_t create_metric_family(char *name) { + metric_family_t fam = { + .name = name, + .type = METRIC_TYPE_DISTRIBUTION, + }; - return 0; + metric_t m[] = {{ + .family = &fam, + .value.distribution = distribution_new_linear(5, 23), + .time = cdtime_mock++, + }, + { + .family = &fam, + .value.distribution = distribution_new_linear(5, 23), + .time = cdtime_mock++, + }, + { + .family = &fam, + .value.distribution = distribution_new_linear(5, 23), + .time = cdtime_mock++, + }}; + + for (int i = 0; i < (sizeof(m) / sizeof(m[0])); ++i) { + metric_family_metric_append(&fam, m[i]); + } + + return fam; } DEF_TEST(uc_update) { + struct { + int want_get; + double **updates; + int *num_updates; + metric_family_t fam; + } cases[] = { + { + .want_get = 0, - return 0; -} + .updates = + (double *[]){ + (double[]){5.432, 5.4234, 6.3424, 7.5453, 902.3525, + 52352.523523, 523524.524524, 90342.4325, 136.352, + 90.8}, + (double[]){5.432, 5.4234, 6.3424, 7.5453, 902.3525, + 52352.523523, 523524.524524, 90342.4325, 136.352, + 90.8, 1.214, 90432.31434, 43141.1342, 41412.4314, + 97.47, 90.78}, + (double[]){ + 5.432, 5.4234, 6.3424, 7.5453, + 902.3525, 52352.523523, 523524.524524, 90342.4325, + 136.352, 90.8, 1.214, 90432.31434, + 43141.1342, 41412.4314, 97.47, 90.78, + 78.57, 90.467, 89.658, 879.67}, + }, + .num_updates = (int[]){10, 16, 20}, + .fam = create_metric_family("abc"), + }, + }; + for (int i = 0; i < (sizeof(cases) / sizeof(cases[0])); ++i) { + uc_init(); + for (int k = 0; k < cases[i].fam.metric.num; ++k) { + for (int j = 0; j < cases[i].num_updates[k]; ++j) { + CHECK_ZERO( + distribution_update(cases[i].fam.metric.ptr[k].value.distribution, + cases[i].updates[k][j])); + } + } -DEF_TEST(uc_get_percentile) { + EXPECT_EQ_INT(cases[i].want_get, uc_update(&cases[i].fam)); + metric_family_metric_reset(&cases[i].fam); + } return 0; } -DEF_TEST(uc_get_rate) { +DEF_TEST(uc_get_percentile) { return 0; } - return 0; -} +DEF_TEST(uc_get_rate) { return 0; } int main() { - RUN_TEST(uc_insert); RUN_TEST(uc_update); RUN_TEST(uc_get_percentile); RUN_TEST(uc_get_rate); - return 0; + END_TEST; }