exporting_fixtures.c 4.5 KB

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