summaryrefslogtreecommitdiffstats
path: root/exporting/tests/exporting_fixtures.c
diff options
context:
space:
mode:
Diffstat (limited to 'exporting/tests/exporting_fixtures.c')
-rw-r--r--exporting/tests/exporting_fixtures.c95
1 files changed, 63 insertions, 32 deletions
diff --git a/exporting/tests/exporting_fixtures.c b/exporting/tests/exporting_fixtures.c
index aae1c53fb..c9fc9458c 100644
--- a/exporting/tests/exporting_fixtures.c
+++ b/exporting/tests/exporting_fixtures.c
@@ -33,31 +33,13 @@ int teardown_configured_engine(void **state)
return 0;
}
-int setup_rrdhost()
-{
- localhost = calloc(1, sizeof(RRDHOST));
-
- localhost->rrd_update_every = 1;
-
- localhost->tags = strdupz("TAG1=VALUE1 TAG2=VALUE2");
-
- localhost->host_labels = rrdlabels_create();
- rrdlabels_add(localhost->host_labels, "key1", "value1", RRDLABEL_SRC_CONFIG);
- rrdlabels_add(localhost->host_labels, "key2", "value2", RRDLABEL_SRC_CONFIG);
+static void rrddim_insert_callback(const DICTIONARY_ITEM *item __maybe_unused, void *rrddim, void *st) {
+ RRDDIM *rd = rrddim;
- localhost->rrdset_root = calloc(1, sizeof(RRDSET));
- RRDSET *st = localhost->rrdset_root;
- st->rrdhost = localhost;
- strcpy(st->id, "chart_id");
- st->name = strdupz("chart_name");
- st->rrd_memory_mode |= RRD_MEMORY_MODE_SAVE;
- st->update_every = 1;
+ rd->id = string_strdupz("dimension_id");
+ rd->name = string_strdupz("dimension_name");
- localhost->rrdset_root->dimensions = calloc(1, sizeof(RRDDIM));
- RRDDIM *rd = localhost->rrdset_root->dimensions;
- rd->rrdset = st;
- rd->id = strdupz("dimension_id");
- rd->name = strdupz("dimension_name");
+ rd->rrdset = (RRDSET *)st;
rd->last_collected_value = 123000321;
rd->last_collected_time.tv_sec = 15051;
rd->collections_counter++;
@@ -70,25 +52,74 @@ int setup_rrdhost()
rd->tiers[0]->query_ops.is_finished = __mock_rrddim_query_is_finished;
rd->tiers[0]->query_ops.next_metric = __mock_rrddim_query_next_metric;
rd->tiers[0]->query_ops.finalize = __mock_rrddim_query_finalize;
+}
+
+static void rrdset_insert_callback(const DICTIONARY_ITEM *item __maybe_unused, void *rrdset, void *constructor_data __maybe_unused) {
+ RRDHOST *host = localhost;
+ RRDSET *st = rrdset;
+
+ // const char *chart_full_id = dictionary_acquired_item_name(item);
+
+ st->id = string_strdupz("chart_id");
+ st->name = string_strdupz("chart_name");
+
+ st->update_every = 1;
+ st->rrd_memory_mode = RRD_MEMORY_MODE_SAVE;
+
+ st->rrdhost = host;
+
+ st->rrddim_root_index = dictionary_create(DICT_OPTION_DONT_OVERWRITE_VALUE);
+
+ dictionary_register_insert_callback(st->rrddim_root_index, rrddim_insert_callback, NULL);
+}
+
+int setup_rrdhost()
+{
+ localhost = calloc(1, sizeof(RRDHOST));
+
+ localhost->rrd_update_every = 1;
+
+ localhost->tags = string_strdupz("TAG1=VALUE1 TAG2=VALUE2");
+
+ localhost->rrdlabels = rrdlabels_create();
+ rrdlabels_add(localhost->rrdlabels, "key1", "value1", RRDLABEL_SRC_CONFIG);
+ rrdlabels_add(localhost->rrdlabels, "key2", "value2", RRDLABEL_SRC_CONFIG);
+
+ localhost->rrdset_root_index = dictionary_create(DICT_OPTION_DONT_OVERWRITE_VALUE);
+ dictionary_register_insert_callback(localhost->rrdset_root_index, rrdset_insert_callback, NULL);
+ RRDSET *st = dictionary_set_advanced(localhost->rrdset_root_index, "chart_id", -1, NULL, sizeof(RRDSET), NULL);
+
+ st->rrddim_root_index = dictionary_create(DICT_OPTION_DONT_OVERWRITE_VALUE);
+ dictionary_register_insert_callback(st->rrddim_root_index, rrddim_insert_callback, NULL);
+ st->dimensions = dictionary_set_advanced(st->rrddim_root_index, "dimension_id", -1, NULL, sizeof(RRDDIM), st);
return 0;
}
int teardown_rrdhost()
{
- RRDDIM *rd = localhost->rrdset_root->dimensions;
- free((void *)rd->name);
- free((void *)rd->id);
+ RRDSET *st;
+ rrdset_foreach_read(st, localhost);
+ break;
+ rrdset_foreach_done(st);
+
+ RRDDIM *rd;
+ rrddim_foreach_read(rd, st);
+ break;
+ rrddim_foreach_done(rd);
+
+ string_freez(rd->id);
+ string_freez(rd->name);
free(rd->tiers[0]);
- free(rd);
- RRDSET *st = localhost->rrdset_root;
- free((void *)st->name);
- free(st);
+ string_freez(st->id);
+ string_freez(st->name);
+ dictionary_destroy(st->rrddim_root_index);
- rrdlabels_destroy(localhost->host_labels);
+ rrdlabels_destroy(localhost->rrdlabels);
- free((void *)localhost->tags);
+ string_freez(localhost->tags);
+ dictionary_destroy(localhost->rrdset_root_index);
free(localhost);
return 0;