X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fdaemon%2Fcommon_test.c;h=f75621a612c6626fae28c8124b2cff4cd04fee08;hb=3b227016c5e2126d5064c19d29ab79f13a187b39;hp=1fa8f324461293c201b30440a8bb3e857062a993;hpb=f5adf265a374e5e0dba89a4a9903e7719dc57039;p=collectd.git diff --git a/src/daemon/common_test.c b/src/daemon/common_test.c index 1fa8f324..f75621a6 100644 --- a/src/daemon/common_test.c +++ b/src/daemon/common_test.c @@ -231,6 +231,62 @@ DEF_TEST(strunescape) return (0); } +DEF_TEST(parse_values) +{ + struct { + char buffer[64]; + int status; + gauge_t value; + } cases[] = { + {"1435044576:42", 0, 42.0}, + {"1435044576:42:23", -1, NAN}, + {"1435044576:U", 0, NAN}, + {"N:12.3", 0, 12.3}, + {"N:42.0:23", -1, NAN}, + {"N:U", 0, NAN}, + {"T:42.0", -1, NAN}, + }; + + size_t i; + for (i = 0; i < STATIC_ARRAY_SIZE (cases); i++) + { + data_source_t dsrc = { + .name = "value", + .type = DS_TYPE_GAUGE, + .min = 0.0, + .max = NAN, + }; + data_set_t ds = { + .type = "example", + .ds_num = 1, + .ds = &dsrc, + }; + + value_t v = { + .gauge = NAN, + }; + value_list_t vl = { + .values = &v, + .values_len = 1, + .time = 0, + .interval = 0, + .host = "example.com", + .plugin = "common_test", + .type = "example", + .meta = NULL, + }; + + int status = parse_values (cases[i].buffer, &vl, &ds); + OK(status == cases[i].status); + if (status != 0) + continue; + + OK(cases[i].value == vl.values[0].gauge); + } + + return (0); +} + int main (void) { RUN_TEST(sstrncpy); @@ -239,6 +295,7 @@ int main (void) RUN_TEST(strsplit); RUN_TEST(strjoin); RUN_TEST(strunescape); + RUN_TEST(parse_values); END_TEST; }