Merge branch 'collectd-5.7' into collectd-5.8
[collectd.git] / src / utils_format_graphite_test.c
index 415a283..a82142f 100644 (file)
@@ -49,12 +49,12 @@ static data_set_t ds_double = {
 
 DEF_TEST(metric_name) {
   struct {
-    char *plugin_instance;
-    char *type_instance;
-    char *prefix;
-    char *suffix;
+    const char *plugin_instance;
+    const char *type_instance;
+    const char *prefix;
+    const char *suffix;
     unsigned int flags;
-    char *want_name;
+    const char *want_name;
   } cases[] = {
       {
           .want_name = "example@com.test.single",
@@ -157,8 +157,35 @@ DEF_TEST(metric_name) {
   return 0;
 }
 
+DEF_TEST(null_termination) {
+  value_list_t vl = {
+      .values = &(value_t){.gauge = 1337},
+      .values_len = 1,
+      .time = TIME_T_TO_CDTIME_T_STATIC(1480063672),
+      .interval = TIME_T_TO_CDTIME_T_STATIC(10),
+      .host = "example.com",
+      .plugin = "test",
+      .type = "single",
+  };
+  char const *want = "example_com.test.single 1337 1480063672\r\n";
+
+  char buffer[128];
+  for (size_t i = 0; i < sizeof(buffer); i++)
+    buffer[i] = (char)i;
+
+  EXPECT_EQ_INT(0, format_graphite(buffer, sizeof(buffer), &ds_single, &vl,
+                                   NULL, NULL, '_', 0));
+  EXPECT_EQ_STR(want, buffer);
+  EXPECT_EQ_INT(0, buffer[strlen(want)]);
+  for (size_t i = strlen(want) + 1; i < sizeof(buffer); i++)
+    EXPECT_EQ_INT((int)i, (int)buffer[i]);
+
+  return 0;
+}
+
 int main(void) {
   RUN_TEST(metric_name);
+  RUN_TEST(null_termination);
 
   END_TEST;
 }