exporting_fixtures.c 4.5 KB

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