|
28 | 28 | #include <cmetrics/cmt_encode_opentelemetry.h> |
29 | 29 | #include <cmetrics/cmt_decode_prometheus_remote_write.h> |
30 | 30 | #include <cmetrics/cmt_encode_prometheus_remote_write.h> |
| 31 | +#include <cmetrics/cmt_decode_statsd.h> |
31 | 32 |
|
32 | 33 | #include "cmt_tests.h" |
33 | 34 |
|
@@ -197,9 +198,40 @@ void test_prometheus_remote_write() |
197 | 198 | cfl_sds_destroy(payload); |
198 | 199 | } |
199 | 200 |
|
| 201 | +void test_statsd() |
| 202 | +{ |
| 203 | + int ret; |
| 204 | + struct cmt *decoded_context; |
| 205 | + cfl_sds_t payload = read_file(CMT_TESTS_DATA_PATH "/statsd_payload.txt"); |
| 206 | + size_t len = 0; |
| 207 | + cfl_sds_t text = NULL; |
| 208 | + int flags = 0; |
| 209 | + |
| 210 | + /* For strtok_r, fill the last byte as \0. */ |
| 211 | + len = cfl_sds_len(payload); |
| 212 | + cfl_sds_set_len(payload, len + 1); |
| 213 | + payload[len] = '\0'; |
| 214 | + |
| 215 | + cmt_initialize(); |
| 216 | + |
| 217 | + flags |= CMT_DECODE_STATSD_GAUGE_OBSERVER; |
| 218 | + |
| 219 | + ret = cmt_decode_statsd_create(&decoded_context, payload, cfl_sds_len(payload), flags); |
| 220 | + TEST_CHECK(ret == CMT_DECODE_PROMETHEUS_REMOTE_WRITE_SUCCESS); |
| 221 | + text = cmt_encode_prometheus_create(decoded_context, CMT_FALSE); |
| 222 | + |
| 223 | + printf("%s\n", text); |
| 224 | + cmt_encode_prometheus_destroy(text); |
| 225 | + |
| 226 | + cmt_decode_statsd_destroy(decoded_context); |
| 227 | + |
| 228 | + cfl_sds_destroy(payload); |
| 229 | +} |
| 230 | + |
200 | 231 |
|
201 | 232 | TEST_LIST = { |
202 | 233 | {"opentelemetry", test_opentelemetry}, |
203 | 234 | {"prometheus_remote_write", test_prometheus_remote_write}, |
| 235 | + {"statsd", test_statsd}, |
204 | 236 | { 0 } |
205 | 237 | }; |
0 commit comments