From: Barbara Kaczorowska Date: Tue, 18 Aug 2020 21:37:33 +0000 (+0000) Subject: Fix tests for uc_get_percentile_by_name function X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7ce9dbe80d2526f3c99ec87ce482ec7672177dc6;p=thirdparty%2Fcollectd.git Fix tests for uc_get_percentile_by_name function --- diff --git a/src/daemon/utils_cache_test.c b/src/daemon/utils_cache_test.c index dc97adf14..d443bad63 100644 --- a/src/daemon/utils_cache_test.c +++ b/src/daemon/utils_cache_test.c @@ -278,7 +278,7 @@ DEF_TEST(uc_update) { }, .num_updates = (size_t[]){10, 6, 4}, .fam = create_metric_family_for_test7("test4-update", 3, 5, 23), - }, + } }; uc_init(); for (size_t i = 0; i < (sizeof(cases) / sizeof(cases[0])); ++i) { @@ -317,8 +317,8 @@ DEF_TEST(uc_get_percentile_by_name) { gauge_t ret_value; gauge_t want_ret_value; metric_family_t *fam; - double *updates; - int num_updates; + double **updates; + size_t *num_updates; } cases[] = { { /* TODO(bkjg): maybe change the return value to EINVAL when the @@ -328,6 +328,7 @@ DEF_TEST(uc_get_percentile_by_name) { (gauge_t[]){43.543, 654.32, 948.543, 1342.42}), .want_get = -1, .percent = 57.34, + .num_updates = (size_t[]){0, 0, 0, 0}, }, { .fam = create_metric_family_for_test2( @@ -336,23 +337,27 @@ DEF_TEST(uc_get_percentile_by_name) { (uint64_t[]){3, 543, 5, 654, 43, 4}), .want_get = -1, .percent = 49.23, + .num_updates = (size_t[]){0, 0, 0, 0, 0, 0}, }, { .fam = create_metric_family_for_test3( "test3-percentile-by-name", 2, (gauge_t[]){324.234, 52452.342}), .want_get = -1, .percent = 23.54, + .num_updates = (size_t[]){0, 0}, }, { .fam = create_metric_family_for_test4("test4-percentile-by-name"), .percent = 89.73, .want_ret_value = NAN, + .num_updates = (size_t[]){0}, }, { .fam = create_metric_family_for_test5("test5-percentile-by-name", 6, 104, 1.0012, 8), .want_get = -1, .percent = -76, + .num_updates = (size_t[]){0, 0, 0, 0, 0, 0}, }, { .fam = create_metric_family_for_test6( @@ -384,52 +389,81 @@ DEF_TEST(uc_get_percentile_by_name) { 99031.53623, 99147.69204}), .want_get = -1, .percent = 100.4, + .num_updates = (size_t[]){0, 0, 0, 0, 0, 0, 0, 0}, }, { .fam = create_metric_family_for_test7("test7-percentile-by-name", 4, 193, 47.97), .percent = 0, - .num_updates = 71, - .updates = - (double[]){82359.12294, 68158.41378, 48412.81238, 5904.4289, - 34826.95792, 57900.41609, 33671.55587, 24959.94718, - 93646.26915, 1520.75565, 14639.69397, 70222.39415, - 21981.56962, 16146.0281, 13983.92362, 52167.56135, - 27539.19779, 45057.29114, 3319.77024, 34066.56465, - 10173.62876, 91667.04402, 98416.81719, 96030.39534, - 79983.43468, 77316.03541, 5659.02605, 55984.92588, - 77457.94164, 3384.64733, 72593.37989, 66288.34529, - 17548.12711, 39080.58183, 70098.8097, 64922.09787, - 38622.17965, 63267.44964, 80319.19425, 57421.82315, - 54532.87389, 23394.05223, 6053.33071, 81659.40367, - 38240.65576, 85423.95662, 54837.08557, 30067.92726, - 60829.11685, 5428.52609, 6612.06311, 70475.98393, - 85464.98161, 20740.81419, 43986.23893, 70876.29799, - 1037.86676, 76031.71462, 53813.00219, 4035.65718, - 5811.23089, 58692.27907, 94178.50533, 12500.30161, - 81487.15188, 69029.50582, 49662.02744, 73422.53592, - 68386.53142, 91320.37996, 91735.92333}, + .num_updates = (size_t[]){71, 8, 45, 3}, + .updates = (double*[]) { + (double[]){8194, 68.41378, 488, 5904.4289, + 348.952, 5.41609, 33687, 24959.94718, + 93646.26915, 1520.5, 14639.697, 7022, + 281.52, 16146.0281, 1.92362, 52167.56135, + 29.19779, 45057.14, 3319.7724, 34066.55, + 1073.62876, 91667.0, 98416.1719, 96030.39534, + 783.438, 77316.03541, 5659.005, 55984.9258, + 7.94164, 3384.647, 72593.99, 6628.329, + 17548.12711, 3.58183, 70.8097, 64922.09787, + 3822.1765, 67.44964, 819.125, 57421.823, + 52.8739, 2394.23, 6053.3371, 81659.40367, + 38240.76, 8542.95662, 54837.08557, 7.92726, + 69.11685, 5428.26, 6612.06311, 70475.98393, + 85464.98161, 20740.9, 43986.93, 70876.29799, + 1037.866, 71.71462, 53813.0019, 4035.658, + 5811.23089, 582.7, 94178.50533, 12500.30161, + 81487.188, 690.50582, 49662.044, 73422.52, + 68386.53142, 91320.37996, 35.92333}, + (double[]){745.38815,481.05336,6.41994,1.95525,1156.20533,1268.7098,1295.84116,917.62886}, + (double[]){516.9201,4849.31623,7221.34863,7527.68604,1151.26575,6524.27975,705.95819,4513.90006,5128.38355,6394.32618,5547.92822,5852.66449,1573.28964,4182.4275,8472.49003,2649.24761,9031.21648,273.19715,9269.87663,3111.26556,5555.49909,1971.95879,4414.7191,6246.03113,4236.78126,8654.59594,1718.24435,7858.42398,5748.95136,1579.52587,3661.98626,2142.41081,7568.26255,5097.90185,5640.32226,3454.39562,9409.04172,4254.11444,4606.8975,8475.69705,4081.69481,6739.58349,7981.12462,8370.65351,7414.76374}, + (double[]){5454.43, 9854.432, 10000.432}, + }, .want_ret_value = 47.97, }, { .fam = create_metric_family_for_test5("test8-percentile-by-name", 5, 74, 1.065, 45.784), .percent = 100, - .num_updates = 42, - .updates = - (double[]){72506.34561, 91418.8635, 80572.52619, 38484.68244, - 87877.24226, 57174.59598, 1551.41153, 9145.58047, - 72967.20258, 53348.1573, 48132.4808, 39831.68688, - 78359.72224, 76905.47862, 5348.62723, 8070.63794, - 11716.49737, 29432.91898, 67222.86733, 29114.50366, - 67117.86881, 15388.23779, 48933.6252, 74134.36183, - 24786.55592, 42282.17781, 87869.09351, 26252.42492, - 7323.72669, 47943.4361, 29671.97547, 6225.43339, - 44457.12541, 34822.90173, 50059.94181, 26860.86093, - 71182.72552, 65944.4019, 21285.09149, 19641.2854, - 19254.37358, 61342.40975}, - .want_ret_value = 45.784, - }, + .num_updates = (size_t[]) {42, 0, 67, 5, 89}, + .updates = (double *[]) { + (double[]) {72506.34561, 91418.8635, 80572.52619, 38484.68244, + 87877.24226, 57174.59598, 1551.41153, 9145.58047, + 72967.20258, 53348.1573, 48132.4808, 39831.68688, + 78359.72224, 76905.47862, 5348.62723, 8070.63794, + 11716.49737, 29432.91898, 67222.86733, 29114.50366, + 67117.86881, 15388.23779, 48933.6252, 74134.36183, + 24786.55592, 42282.17781, 87869.09351, 26252.42492, + 7323.72669, 47943.4361, 29671.97547, 6225.43339, + 44457.12541, 34822.90173, 50059.94181, 26860.86093, + 71182.72552, 65944.4019, 21285.09149, 19641.2854, + 19254.37358, 61342.40975}, + (double[]) { + + }, + (double[]) {5586.54111, 3841.94096, 5834.15027, 8247.97183, 9499.93153, 7472.58943, 219.47985, 7686.70986, + 1219.55743, 2415.15816, 8955.29092, 3480.59525, 1879.67425, 1275.56004, 3295.58027, + 2139.82266, 456.72684, 562.50828, 1941.86819, 9780.2701, 4234.51139, 1287.71429, 571.7637, + 3018.60717, 3024.39436, 10317.61782, 3059.65791, 6248.61059, 10178.41514, 3430.92157, + 5205.66822, 3387.48332, 2669.69809, 7532.6, 6981.75202, 2897.25262, 8964.52642, 4209.86327, + 3735.92037, 878.27845, 4097.70763, 10419.35129, 2094.15747, 9162.93322, 6691.67488, + 1529.17463, 10293.11383, 10388.03797, 4898.96937, 9262.156, 833.49287, 1568.14635, 1187.62364, + 8168.1532, 8849.88077, 8484.26639, 10457.05272, 1759.43482, 288.39094, 7405.56667, 9778.09951, + 6290.33759, 7102.4534, 2172.31562, 8277.08193, 8824.99498, 5797.51546}, + (double[]) {56.43, 879.453, 5.324, 765.342, 64.4356}, + (double[]) {1013.25449, 9089.16126, 9854.27631, 9420.94215, 509.43821, 7299.78937, 2293.54321, 7308.0138, + 4066.37637, 6305.31349, 7006.66839, 2503.36452, 5787.31125, 4247.16623, 5803.29759, 8303.8097, + 9543.26322, 2027.47232, 486.42233, 6603.60027, 1440.39473, 9132.76392, 4395.65407, 6737.9134, + 6162.07532, 5855.29759, 802.30289, 10121.34827, 10029.5615, 2886.96024, 3185.46451, 517.43518, + 892.29103, 5515.76823, 8022.44596, 3888.66676, 4320.34148, 5751.74699, 5016.10839, 343.68796, + 2926.28764, 3061.87651, 4463.04963, 5255.43202, 4029.81862, 3254.9407, 6082.41397, 10433.08612, + 2011.06951, 2968.68571, 7948.21252, 4659.80086, 8464.0979, 1424.92974, 6664.08464, 7246.80407, + 4714.69846, 6168.91884, 6315.78325, 9857.07278, 5709.06859, 176.3125, 5244.00458, 3999.77758, + 7247.30445, 9108.6723, 7354.32423, 7918.81314, 3666.6743, 7315.87523, 5687.41806, 293.34054, + 1812.20181, 3585.62552, 6423.85917, 4389.82836, 3467.02384, 6070.2832, 8559.86769, 1225.99976, + 2808.22175, 4888.729, 7613.12619, 414.86679, 7449.10677, 6598.8391, 2551.38054, 9092.67749, + 5626.38473}, + }, .want_ret_value = INFINITY,}, { .fam = create_metric_family_for_test6( "test9-percentile-by-name", 3, 26, @@ -441,8 +475,8 @@ DEF_TEST(uc_get_percentile_by_name) { 84368.98886, 86621.73007, 94893.89038, 95883.59771, 96327.48458, 97958.59675}), .percent = 42.3, - .num_updates = 38, - .updates = + .num_updates = (size_t[]){38, 0, 2}, + .updates = (double*[]){ (double[]){71079.41279, 64378.08534, 58308.74218, 62899.70407, 43084.69866, 59286.43609, 95311.89101, 46082.97057, 21002.88808, 13767.93511, 6832.77194, 9641.53968, @@ -453,6 +487,8 @@ DEF_TEST(uc_get_percentile_by_name) { 11471.67096, 82920.8644, 57711.02046, 73579.12752, 35093.01442, 95393.57805, 17610.14104, 54931.47418, 19359.63012, 46414.44434}, + (double[]){}, + (double[]){468.435, 54267.54}, }, .want_ret_value = 7174.31149, }, }; @@ -460,10 +496,16 @@ DEF_TEST(uc_get_percentile_by_name) { uc_init(); for (size_t i = 0; i < (sizeof(cases) / sizeof(cases[0])); ++i) { printf("## Case %zu:\n", i); - for (int j = 0; j < cases[i].num_updates; ++j) { - CHECK_ZERO(distribution_update( - cases[i].fam->metric.ptr[0].value.distribution, cases[i].updates[j])); - } + + for (size_t k = 0; k < cases[i].fam->metric.num; ++k) { + for (size_t l = 0; l <= k; ++l) { + for (size_t j = 0; j < cases[i].num_updates[l]; ++j) { + CHECK_ZERO(distribution_update( + cases[i].fam->metric.ptr[k].value.distribution, cases[i].updates[l][j])); + } + } + } + /* TODO(bkjg): add test, where fam will be NULL */ CHECK_ZERO(uc_update(cases[i].fam));