2 * collectd - src/utils_format_stackdriver_test.c
5 * Copyright (C) 2017 Florian Forster
7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20 * Florian Forster <octo at collectd.org>
26 #include "utils_format_stackdriver.h"
28 DEF_TEST(sd_format_metric_descriptor) {
30 .host = "example.com", .plugin = "unit-test", .type = "example",
34 data_set_t ds_single = {
39 .name = "value", .type = DS_TYPE_GAUGE, .min = NAN, .max = NAN,
43 0, sd_format_metric_descriptor(got, sizeof(got), &ds_single, &vl, 0));
44 char const *want_single =
45 "{\"type\":\"custom.googleapis.com/collectd/unit_test/"
46 "example\",\"metricKind\":\"GAUGE\",\"valueType\":\"DOUBLE\",\"labels\":["
47 "{\"key\":\"host\",\"valueType\":\"STRING\"},{\"key\":\"plugin_"
48 "instance\",\"valueType\":\"STRING\"},{\"key\":\"type_instance\","
49 "\"valueType\":\"STRING\"}]}";
50 EXPECT_EQ_STR(want_single, got);
52 data_set_t ds_double = {
57 {.name = "one", .type = DS_TYPE_DERIVE, .min = 0, .max = NAN},
58 {.name = "two", .type = DS_TYPE_DERIVE, .min = 0, .max = NAN},
62 0, sd_format_metric_descriptor(got, sizeof(got), &ds_double, &vl, 0));
63 char const *want_double =
64 "{\"type\":\"custom.googleapis.com/collectd/unit_test/"
65 "example_one\",\"metricKind\":\"CUMULATIVE\",\"valueType\":\"INT64\","
66 "\"labels\":[{\"key\":\"host\",\"valueType\":\"STRING\"},{\"key\":"
67 "\"plugin_instance\",\"valueType\":\"STRING\"},{\"key\":\"type_"
68 "instance\",\"valueType\":\"STRING\"}]}";
69 EXPECT_EQ_STR(want_double, got);
73 int main(int argc, char **argv) {
74 RUN_TEST(sd_format_metric_descriptor);