exporting_fixtures.c 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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. *state = engine;
  7. return 0;
  8. }
  9. int teardown_configured_engine(void **state)
  10. {
  11. struct engine *engine = *state;
  12. struct instance *instance = engine->instance_root;
  13. free((void *)instance->config.destination);
  14. free((void *)instance->config.name);
  15. simple_pattern_free(instance->config.charts_pattern);
  16. simple_pattern_free(instance->config.hosts_pattern);
  17. free(instance);
  18. free((void *)engine->config.prefix);
  19. free((void *)engine->config.hostname);
  20. free(engine);
  21. return 0;
  22. }
  23. int setup_rrdhost()
  24. {
  25. localhost = calloc(1, sizeof(RRDHOST));
  26. localhost->rrd_update_every = 1;
  27. localhost->tags = strdupz("TAG1=VALUE1 TAG2=VALUE2");
  28. struct label *label = calloc(1, sizeof(struct label));
  29. label->key = strdupz("key1");
  30. label->value = strdupz("value1");
  31. label->label_source = LABEL_SOURCE_NETDATA_CONF;
  32. localhost->labels = label;
  33. label = calloc(1, sizeof(struct label));
  34. label->key = strdupz("key2");
  35. label->value = strdupz("value2");
  36. label->label_source = LABEL_SOURCE_AUTO;
  37. localhost->labels->next = label;
  38. localhost->rrdset_root = calloc(1, sizeof(RRDSET));
  39. RRDSET *st = localhost->rrdset_root;
  40. st->rrdhost = localhost;
  41. strcpy(st->id, "chart_id");
  42. st->name = strdupz("chart_name");
  43. st->flags |= RRDSET_FLAG_ENABLED;
  44. st->rrd_memory_mode |= RRD_MEMORY_MODE_SAVE;
  45. st->update_every = 1;
  46. localhost->rrdset_root->dimensions = calloc(1, sizeof(RRDDIM));
  47. RRDDIM *rd = localhost->rrdset_root->dimensions;
  48. rd->rrdset = st;
  49. rd->id = strdupz("dimension_id");
  50. rd->name = strdupz("dimension_name");
  51. rd->last_collected_value = 123000321;
  52. rd->last_collected_time.tv_sec = 15051;
  53. rd->collections_counter++;
  54. rd->next = NULL;
  55. rd->state = calloc(1, sizeof(*rd->state));
  56. rd->state->query_ops.oldest_time = __mock_rrddim_query_oldest_time;
  57. rd->state->query_ops.latest_time = __mock_rrddim_query_latest_time;
  58. rd->state->query_ops.init = __mock_rrddim_query_init;
  59. rd->state->query_ops.is_finished = __mock_rrddim_query_is_finished;
  60. rd->state->query_ops.next_metric = __mock_rrddim_query_next_metric;
  61. rd->state->query_ops.finalize = __mock_rrddim_query_finalize;
  62. return 0;
  63. }
  64. int teardown_rrdhost()
  65. {
  66. RRDDIM *rd = localhost->rrdset_root->dimensions;
  67. free((void *)rd->name);
  68. free((void *)rd->id);
  69. free(rd->state);
  70. free(rd);
  71. RRDSET *st = localhost->rrdset_root;
  72. free((void *)st->name);
  73. free(st);
  74. free(localhost->labels->next->key);
  75. free(localhost->labels->next->value);
  76. free(localhost->labels->next);
  77. free(localhost->labels->key);
  78. free(localhost->labels->value);
  79. free(localhost->labels);
  80. free((void *)localhost->tags);
  81. free(localhost);
  82. return 0;
  83. }
  84. int setup_initialized_engine(void **state)
  85. {
  86. setup_configured_engine(state);
  87. struct engine *engine = *state;
  88. init_connectors_in_tests(engine);
  89. setup_rrdhost();
  90. return 0;
  91. }
  92. int teardown_initialized_engine(void **state)
  93. {
  94. struct engine *engine = *state;
  95. teardown_rrdhost();
  96. buffer_free(engine->instance_root->labels);
  97. buffer_free(engine->instance_root->buffer);
  98. teardown_configured_engine(state);
  99. return 0;
  100. }
  101. int setup_prometheus(void **state)
  102. {
  103. (void)state;
  104. prometheus_exporter_instance = calloc(1, sizeof(struct instance));
  105. setup_rrdhost();
  106. prometheus_exporter_instance->config.update_every = 10;
  107. prometheus_exporter_instance->config.options |=
  108. EXPORTING_OPTION_SEND_NAMES | EXPORTING_OPTION_SEND_CONFIGURED_LABELS | EXPORTING_OPTION_SEND_AUTOMATIC_LABELS;
  109. prometheus_exporter_instance->config.charts_pattern = simple_pattern_create("*", NULL, SIMPLE_PATTERN_EXACT);
  110. prometheus_exporter_instance->config.hosts_pattern = simple_pattern_create("*", NULL, SIMPLE_PATTERN_EXACT);
  111. return 0;
  112. }
  113. int teardown_prometheus(void **state)
  114. {
  115. (void)state;
  116. teardown_rrdhost();
  117. simple_pattern_free(prometheus_exporter_instance->config.charts_pattern);
  118. simple_pattern_free(prometheus_exporter_instance->config.hosts_pattern);
  119. free(prometheus_exporter_instance);
  120. return 0;
  121. }