123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- // SPDX-License-Identifier: GPL-3.0-or-later
- #include "test_exporting_engine.h"
- int setup_configured_engine(void **state)
- {
- struct engine *engine = __mock_read_exporting_config();
- engine->instance_root->data_is_ready = 1;
- *state = engine;
- return 0;
- }
- int teardown_configured_engine(void **state)
- {
- struct engine *engine = *state;
- struct instance *instance = engine->instance_root;
- free((void *)instance->config.destination);
- free((void *)instance->config.username);
- free((void *)instance->config.password);
- free((void *)instance->config.name);
- free((void *)instance->config.prefix);
- free((void *)instance->config.hostname);
- simple_pattern_free(instance->config.charts_pattern);
- simple_pattern_free(instance->config.hosts_pattern);
- free(instance);
- free((void *)engine->config.hostname);
- free(engine);
- return 0;
- }
- static void rrddim_insert_callback(const DICTIONARY_ITEM *item __maybe_unused, void *rrddim, void *st) {
- RRDDIM *rd = rrddim;
- rd->id = string_strdupz("dimension_id");
- rd->name = string_strdupz("dimension_name");
- rd->rrdset = (RRDSET *)st;
- rd->last_collected_value = 123000321;
- rd->last_collected_time.tv_sec = 15051;
- rd->collections_counter++;
- rd->next = NULL;
- rd->tiers[0] = calloc(1, sizeof(struct rrddim_tier));
- rd->tiers[0]->query_ops.oldest_time = __mock_rrddim_query_oldest_time;
- rd->tiers[0]->query_ops.latest_time = __mock_rrddim_query_latest_time;
- rd->tiers[0]->query_ops.init = __mock_rrddim_query_init;
- 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, rrddim_size(), st);
- return 0;
- }
- int teardown_rrdhost()
- {
- 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]);
- string_freez(st->id);
- string_freez(st->name);
- dictionary_destroy(st->rrddim_root_index);
- rrdlabels_destroy(localhost->rrdlabels);
- string_freez(localhost->tags);
- dictionary_destroy(localhost->rrdset_root_index);
- free(localhost);
- return 0;
- }
- int setup_initialized_engine(void **state)
- {
- setup_configured_engine(state);
- struct engine *engine = *state;
- init_connectors_in_tests(engine);
- setup_rrdhost();
- return 0;
- }
- int teardown_initialized_engine(void **state)
- {
- struct engine *engine = *state;
- teardown_rrdhost();
- buffer_free(engine->instance_root->labels_buffer);
- buffer_free(engine->instance_root->buffer);
- teardown_configured_engine(state);
- return 0;
- }
- int setup_prometheus(void **state)
- {
- (void)state;
- prometheus_exporter_instance = calloc(1, sizeof(struct instance));
- setup_rrdhost();
- prometheus_exporter_instance->config.update_every = 10;
- prometheus_exporter_instance->config.options |=
- EXPORTING_OPTION_SEND_NAMES | EXPORTING_OPTION_SEND_CONFIGURED_LABELS | EXPORTING_OPTION_SEND_AUTOMATIC_LABELS;
- prometheus_exporter_instance->config.charts_pattern = simple_pattern_create("*", NULL, SIMPLE_PATTERN_EXACT);
- prometheus_exporter_instance->config.hosts_pattern = simple_pattern_create("*", NULL, SIMPLE_PATTERN_EXACT);
- prometheus_exporter_instance->config.initialized = 1;
- return 0;
- }
- int teardown_prometheus(void **state)
- {
- (void)state;
- teardown_rrdhost();
- simple_pattern_free(prometheus_exporter_instance->config.charts_pattern);
- simple_pattern_free(prometheus_exporter_instance->config.hosts_pattern);
- free(prometheus_exporter_instance);
- return 0;
- }
|