exporting_fixtures.c 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #include "test_exporting_engine.h"
  3. int setup_configured_engine(void **state)
  4. {
  5. struct engine *engine = __mock_read_exporting_config();
  6. engine->instance_root->data_is_ready = 1;
  7. *state = engine;
  8. return 0;
  9. }
  10. int teardown_configured_engine(void **state)
  11. {
  12. struct engine *engine = *state;
  13. struct instance *instance = engine->instance_root;
  14. free((void *)instance->config.destination);
  15. free((void *)instance->config.username);
  16. free((void *)instance->config.password);
  17. free((void *)instance->config.name);
  18. free((void *)instance->config.prefix);
  19. free((void *)instance->config.hostname);
  20. simple_pattern_free(instance->config.charts_pattern);
  21. simple_pattern_free(instance->config.hosts_pattern);
  22. free(instance);
  23. free((void *)engine->config.hostname);
  24. free(engine);
  25. return 0;
  26. }
  27. int setup_rrdhost()
  28. {
  29. localhost = calloc(1, sizeof(RRDHOST));
  30. localhost->rrd_update_every = 1;
  31. localhost->tags = strdupz("TAG1=VALUE1 TAG2=VALUE2");
  32. localhost->host_labels = rrdlabels_create();
  33. rrdlabels_add(localhost->host_labels, "key1", "value1", RRDLABEL_SRC_CONFIG);
  34. rrdlabels_add(localhost->host_labels, "key2", "value2", RRDLABEL_SRC_CONFIG);
  35. localhost->rrdset_root = calloc(1, sizeof(RRDSET));
  36. RRDSET *st = localhost->rrdset_root;
  37. st->rrdhost = localhost;
  38. strcpy(st->id, "chart_id");
  39. st->name = strdupz("chart_name");
  40. st->rrd_memory_mode |= RRD_MEMORY_MODE_SAVE;
  41. st->update_every = 1;
  42. localhost->rrdset_root->dimensions = calloc(1, sizeof(RRDDIM));
  43. RRDDIM *rd = localhost->rrdset_root->dimensions;
  44. rd->rrdset = st;
  45. rd->id = strdupz("dimension_id");
  46. rd->name = strdupz("dimension_name");
  47. rd->last_collected_value = 123000321;
  48. rd->last_collected_time.tv_sec = 15051;
  49. rd->collections_counter++;
  50. rd->next = NULL;
  51. rd->tiers[0] = calloc(1, sizeof(struct rrddim_tier));
  52. rd->tiers[0]->query_ops.oldest_time = __mock_rrddim_query_oldest_time;
  53. rd->tiers[0]->query_ops.latest_time = __mock_rrddim_query_latest_time;
  54. rd->tiers[0]->query_ops.init = __mock_rrddim_query_init;
  55. rd->tiers[0]->query_ops.is_finished = __mock_rrddim_query_is_finished;
  56. rd->tiers[0]->query_ops.next_metric = __mock_rrddim_query_next_metric;
  57. rd->tiers[0]->query_ops.finalize = __mock_rrddim_query_finalize;
  58. return 0;
  59. }
  60. int teardown_rrdhost()
  61. {
  62. RRDDIM *rd = localhost->rrdset_root->dimensions;
  63. free((void *)rd->name);
  64. free((void *)rd->id);
  65. free(rd->tiers[0]);
  66. free(rd);
  67. RRDSET *st = localhost->rrdset_root;
  68. free((void *)st->name);
  69. free(st);
  70. rrdlabels_destroy(localhost->host_labels);
  71. free((void *)localhost->tags);
  72. free(localhost);
  73. return 0;
  74. }
  75. int setup_initialized_engine(void **state)
  76. {
  77. setup_configured_engine(state);
  78. struct engine *engine = *state;
  79. init_connectors_in_tests(engine);
  80. setup_rrdhost();
  81. return 0;
  82. }
  83. int teardown_initialized_engine(void **state)
  84. {
  85. struct engine *engine = *state;
  86. teardown_rrdhost();
  87. buffer_free(engine->instance_root->labels_buffer);
  88. buffer_free(engine->instance_root->buffer);
  89. teardown_configured_engine(state);
  90. return 0;
  91. }
  92. int setup_prometheus(void **state)
  93. {
  94. (void)state;
  95. prometheus_exporter_instance = calloc(1, sizeof(struct instance));
  96. setup_rrdhost();
  97. prometheus_exporter_instance->config.update_every = 10;
  98. prometheus_exporter_instance->config.options |=
  99. EXPORTING_OPTION_SEND_NAMES | EXPORTING_OPTION_SEND_CONFIGURED_LABELS | EXPORTING_OPTION_SEND_AUTOMATIC_LABELS;
  100. prometheus_exporter_instance->config.charts_pattern = simple_pattern_create("*", NULL, SIMPLE_PATTERN_EXACT);
  101. prometheus_exporter_instance->config.hosts_pattern = simple_pattern_create("*", NULL, SIMPLE_PATTERN_EXACT);
  102. prometheus_exporter_instance->config.initialized = 1;
  103. return 0;
  104. }
  105. int teardown_prometheus(void **state)
  106. {
  107. (void)state;
  108. teardown_rrdhost();
  109. simple_pattern_free(prometheus_exporter_instance->config.charts_pattern);
  110. simple_pattern_free(prometheus_exporter_instance->config.hosts_pattern);
  111. free(prometheus_exporter_instance);
  112. return 0;
  113. }