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/format_stackdriver.h"
28 DEF_TEST(sd_format_metric_descriptor) {
30 .host = "example.com",
31 .plugin = "unit-test",
36 data_set_t ds_single = {
42 .type = DS_TYPE_GAUGE,
48 0, sd_format_metric_descriptor(got, sizeof(got), &ds_single, &vl, 0));
49 char const *want_single =
50 "{\"type\":\"custom.googleapis.com/collectd/unit_test/"
51 "example\",\"metricKind\":\"GAUGE\",\"valueType\":\"DOUBLE\",\"labels\":["
52 "{\"key\":\"host\",\"valueType\":\"STRING\"},{\"key\":\"plugin_"
53 "instance\",\"valueType\":\"STRING\"},{\"key\":\"type_instance\","
54 "\"valueType\":\"STRING\"}]}";
55 EXPECT_EQ_STR(want_single, got);
57 data_set_t ds_double = {
62 {.name = "one", .type = DS_TYPE_DERIVE, .min = 0, .max = NAN},
63 {.name = "two", .type = DS_TYPE_DERIVE, .min = 0, .max = NAN},
67 0, sd_format_metric_descriptor(got, sizeof(got), &ds_double, &vl, 0));
68 char const *want_double =
69 "{\"type\":\"custom.googleapis.com/collectd/unit_test/"
70 "example_one\",\"metricKind\":\"CUMULATIVE\",\"valueType\":\"INT64\","
71 "\"labels\":[{\"key\":\"host\",\"valueType\":\"STRING\"},{\"key\":"
72 "\"plugin_instance\",\"valueType\":\"STRING\"},{\"key\":\"type_"
73 "instance\",\"valueType\":\"STRING\"}]}";
74 EXPECT_EQ_STR(want_double, got);
78 int main(int argc, char **argv) {
79 RUN_TEST(sd_format_metric_descriptor);