histograms: add unit tests for histogram merge
Signed-off-by: Piotr Pelplinski <piotr.pelplinski@intel.com> Change-Id: I36eed5fdd593eb3df15859a3e29c600be0913899 Reviewed-on: https://review.gerrithub.io/432559 Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
a3f7d8aa4d
commit
8fb123553a
@ -47,6 +47,7 @@ uint64_t g_values[] = {
|
||||
|
||||
uint64_t *g_values_end = &g_values[SPDK_COUNTOF(g_values)];
|
||||
uint64_t g_total;
|
||||
uint64_t g_number_of_merged_histograms;
|
||||
|
||||
static void
|
||||
check_values(void *ctx, uint64_t start, uint64_t end, uint64_t count,
|
||||
@ -74,14 +75,13 @@ check_values(void *ctx, uint64_t start, uint64_t end, uint64_t count,
|
||||
* **values to equal end.
|
||||
*/
|
||||
CU_ASSERT(**values <= end);
|
||||
g_total++;
|
||||
count--;
|
||||
g_total += g_number_of_merged_histograms;
|
||||
count -= g_number_of_merged_histograms;
|
||||
(*values)++;
|
||||
if (*values == g_values_end || **values > end) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
CU_ASSERT(count == 0);
|
||||
}
|
||||
|
||||
@ -97,13 +97,38 @@ histogram_test(void)
|
||||
for (i = 0; i < SPDK_COUNTOF(g_values); i++) {
|
||||
spdk_histogram_data_tally(h, g_values[i]);
|
||||
}
|
||||
|
||||
g_total = 0;
|
||||
g_number_of_merged_histograms = 1;
|
||||
spdk_histogram_data_iterate(h, check_values, &values);
|
||||
|
||||
spdk_histogram_data_free(h);
|
||||
}
|
||||
|
||||
static void
|
||||
histogram_merge(void)
|
||||
{
|
||||
struct spdk_histogram_data *h1, *h2;
|
||||
uint64_t *values = g_values;
|
||||
uint32_t i;
|
||||
|
||||
h1 = spdk_histogram_data_alloc();
|
||||
h2 = spdk_histogram_data_alloc();
|
||||
|
||||
for (i = 0; i < SPDK_COUNTOF(g_values); i++) {
|
||||
spdk_histogram_data_tally(h1, g_values[i]);
|
||||
spdk_histogram_data_tally(h2, g_values[i]);
|
||||
}
|
||||
|
||||
spdk_histogram_data_merge(h1, h2);
|
||||
|
||||
g_total = 0;
|
||||
g_number_of_merged_histograms = 2;
|
||||
spdk_histogram_data_iterate(h1, check_values, &values);
|
||||
|
||||
spdk_histogram_data_free(h1);
|
||||
spdk_histogram_data_free(h2);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
@ -121,7 +146,8 @@ main(int argc, char **argv)
|
||||
}
|
||||
|
||||
if (
|
||||
CU_add_test(suite, "histogram_test", histogram_test) == NULL
|
||||
CU_add_test(suite, "histogram_test", histogram_test) == NULL ||
|
||||
CU_add_test(suite, "histogram_merge", histogram_merge) == NULL
|
||||
) {
|
||||
CU_cleanup_registry();
|
||||
return CU_get_error();
|
||||
|
Loading…
Reference in New Issue
Block a user