[monitoring-plugins] Move np extractvar from library to ntp_peer ...
GitHub
git at monitoring-plugins.org
Wed Sep 16 16:50:15 CEST 2026
Module: monitoring-plugins
Branch: master
Commit: 3afb69a70f837b2a486502294cbea01397fc85d2
Author: Lorenz Kästle <12514511+RincewindsHat at users.noreply.github.com>
Committer: GitHub <noreply at github.com>
Date: Wed Sep 16 16:45:35 2026 +0200
URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=3afb69a7
Move np extractvar from library to ntp_peer plugin (#2347)
* move np_extractvar to where it is used
* rename extract var functions
* Fix tests
---------
Co-authored-by: Lorenz Kästle <lorenz.kaestle+gitub-mopl at mailbox.org>
---
.gitignore | 3 +
NPTest.pm | 2 +-
configure.ac | 3 +-
lib/tests/test_utils.c | 80 +--------------------
lib/utils_base.c | 70 ------------------
lib/utils_base.h | 16 +----
plugins/Makefile.am | 6 ++
plugins/check_ntp_peer.c | 24 ++++---
plugins/check_ntp_peer.d/check_ntp_peer_helper.c | 80 +++++++++++++++++++++
plugins/check_ntp_peer.d/check_ntp_peer_helper.h | 13 ++++
plugins/tests/test_check_ntp_peer.c | 91 ++++++++++++++++++++++++
plugins/tests/test_check_ntp_peer.t | 12 ++++
12 files changed, 222 insertions(+), 178 deletions(-)
diff --git a/.gitignore b/.gitignore
index 9e19ffa6..1b4d0d10 100644
--- a/.gitignore
+++ b/.gitignore
@@ -185,6 +185,8 @@ plugins/check_disk.d/.dirstamp
/plugins/check_nntp
/plugins/check_nntps
/plugins/check_ntp_peer
+/plugins/check_ntp_peer.d/.deps
+/plugins/check_ntp_peer.d/.dirstamp
/plugins/check_ntp_time
/plugins/check_pgsql
/plugins/check_ping
@@ -234,6 +236,7 @@ plugins/check_disk.d/.dirstamp
/plugins/tests/test_sslutils
/plugins/tests/test_utils
/plugins/tests/test_check_disk
+/plugins/tests/test_check_ntp_peer
/plugins/tests/test_check_swap
/plugins/tests/test_check_snmp
/plugins/tests/.deps
diff --git a/NPTest.pm b/NPTest.pm
index bbbe579a..da076bb2 100644
--- a/NPTest.pm
+++ b/NPTest.pm
@@ -546,7 +546,7 @@ sub TestsFrom
if ( $excludeIfAppMissing )
{
$application = basename( $filename, ".t" );
- if ( ! -e $application and ! -e $application.'.pm' and ! -e $directory."/".$application )
+ if ( ! -e $application and ! -e $application.'.pm' and ! -e ($directory."/".$application) )
{
print STDERR "No application (${application}) found for test harness (${filename})\n";
next;
diff --git a/configure.ac b/configure.ac
index e8651cbc..b3e881b8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -175,8 +175,7 @@ if test "$enable_libtap" = "yes" ; then
EXTRA_TEST="test_utils test_tcp test_cmd test_base64 test_generic_output"
AC_SUBST(EXTRA_TEST)
- EXTRA_PLUGIN_TESTS="tests/test_check_swap tests/test_check_disk tests/test_sslutils"
-
+ EXTRA_PLUGIN_TESTS="tests/test_check_swap tests/test_check_disk tests/test_sslutils tests/test_check_ntp_peer"
AC_SUBST(EXTRA_PLUGIN_TESTS)
fi
diff --git a/lib/tests/test_utils.c b/lib/tests/test_utils.c
index 8040dec8..ce374a4f 100644
--- a/lib/tests/test_utils.c
+++ b/lib/tests/test_utils.c
@@ -28,7 +28,7 @@
#include "utils_base.c"
int main(int argc, char **argv) {
- plan_tests(155);
+ plan_tests(132);
ok(this_monitoring_plugin == NULL, "monitoring_plugin not initialised");
@@ -217,84 +217,6 @@ int main(int argc, char **argv) {
test = np_escaped_string("everything");
ok(strcmp(test, "everything") == 0, "everything okay");
- /* np_extract_ntpvar tests (23) */
- test = np_extract_ntpvar("foo=bar, bar=foo, foobar=barfoo\n", "foo");
- ok(test && !strcmp(test, "bar"), "1st test as expected");
- free(test);
-
- test = np_extract_ntpvar("foo=bar,bar=foo,foobar=barfoo\n", "bar");
- ok(test && !strcmp(test, "foo"), "2nd test as expected");
- free(test);
-
- test = np_extract_ntpvar("foo=bar, bar=foo, foobar=barfoo\n", "foobar");
- ok(test && !strcmp(test, "barfoo"), "3rd test as expected");
- free(test);
-
- test = np_extract_ntpvar("foo=bar\n", "foo");
- ok(test && !strcmp(test, "bar"), "Single test as expected");
- free(test);
-
- test = np_extract_ntpvar("foo=bar, bar=foo, foobar=barfooi\n", "abcd");
- ok(!test, "Key not found 1");
-
- test = np_extract_ntpvar("foo=bar\n", "abcd");
- ok(!test, "Key not found 2");
-
- test = np_extract_ntpvar("foo=bar=foobar", "foo");
- ok(test && !strcmp(test, "bar=foobar"), "Strange string 1");
- free(test);
-
- test = np_extract_ntpvar("foo", "foo");
- ok(!test, "Malformed string 1");
-
- test = np_extract_ntpvar("foo,", "foo");
- ok(!test, "Malformed string 2");
-
- test = np_extract_ntpvar("foo=", "foo");
- ok(!test, "Malformed string 3");
-
- test = np_extract_ntpvar("foo=,bar=foo", "foo");
- ok(!test, "Malformed string 4");
-
- test = np_extract_ntpvar(",foo", "foo");
- ok(!test, "Malformed string 5");
-
- test = np_extract_ntpvar("=foo", "foo");
- ok(!test, "Malformed string 6");
-
- test = np_extract_ntpvar("=foo,", "foo");
- ok(!test, "Malformed string 7");
-
- test = np_extract_ntpvar(",,,", "foo");
- ok(!test, "Malformed string 8");
-
- test = np_extract_ntpvar("===", "foo");
- ok(!test, "Malformed string 9");
-
- test = np_extract_ntpvar(",=,=,", "foo");
- ok(!test, "Malformed string 10");
-
- test = np_extract_ntpvar("=,=,=", "foo");
- ok(!test, "Malformed string 11");
-
- test = np_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "foo");
- ok(test && !strcmp(test, "bar"), "Random spaces and newlines 1");
- free(test);
-
- test = np_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "bar");
- ok(test && !strcmp(test, "foo"), "Random spaces and newlines 2");
- free(test);
-
- test = np_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "foobar");
- ok(test && !strcmp(test, "barfoo"), "Random spaces and newlines 3");
- free(test);
-
- test = np_extract_ntpvar(" foo=bar ,\n bar\n \n= \n foo\n , foobar=barfoo \n ", "bar");
- ok(test && !strcmp(test, "foo"), "Random spaces and newlines 4");
- free(test);
-
- test = np_extract_ntpvar("", "foo");
- ok(!test, "Empty string return NULL");
ok(mp_suid() == false, "Test aren't suid");
diff --git a/lib/utils_base.c b/lib/utils_base.c
index 7450bd30..812bed65 100644
--- a/lib/utils_base.c
+++ b/lib/utils_base.c
@@ -47,8 +47,6 @@ monitoring_plugin *this_monitoring_plugin = NULL;
mp_state_enum timeout_state = STATE_CRITICAL;
unsigned int timeout_interval = DEFAULT_SOCKET_TIMEOUT;
-bool _np_state_read_file(FILE *state_file);
-
void np_init(char *plugin_name, int argc, char **argv) {
if (this_monitoring_plugin == NULL) {
this_monitoring_plugin = calloc(1, sizeof(monitoring_plugin));
@@ -324,75 +322,7 @@ char *np_escaped_string(const char *string) {
int np_check_if_root(void) { return (geteuid() == 0); }
-/*
- * Extract the value from key/value pairs, or return NULL. The value returned
- * can be free()ed.
- * This function can be used to parse NTP control packet data and performance
- * data strings.
- */
-char *np_extract_value(const char *varlist, const char *name, char sep) {
- char *tmp = NULL;
- char *value = NULL;
-
- while (true) {
- /* Strip any leading space */
- for (; isspace(varlist[0]); varlist++) {
- ;
- }
- if (strncmp(name, varlist, strlen(name)) == 0) {
- varlist += strlen(name);
- /* strip trailing spaces */
- for (; isspace(varlist[0]); varlist++) {
- ;
- }
-
- if (varlist[0] == '=') {
- /* We matched the key, go past the = sign */
- varlist++;
- /* strip leading spaces */
- for (; isspace(varlist[0]); varlist++) {
- ;
- }
-
- if ((tmp = index(varlist, sep))) {
- /* Value is delimited by a comma */
- if (tmp - varlist == 0) {
- continue;
- }
- value = (char *)calloc(1, (unsigned long)(tmp - varlist + 1));
- strncpy(value, varlist, (unsigned long)(tmp - varlist));
- value[tmp - varlist] = '\0';
- } else {
- /* Value is delimited by a \0 */
- if (strlen(varlist) == 0) {
- continue;
- }
- value = (char *)calloc(1, strlen(varlist) + 1);
- strncpy(value, varlist, strlen(varlist));
- value[strlen(varlist)] = '\0';
- }
- break;
- }
- }
- if ((tmp = index(varlist, sep))) {
- /* More keys, keep going... */
- varlist = tmp + 1;
- } else {
- /* We're done */
- break;
- }
- }
-
- /* Clean-up trailing spaces/newlines */
- if (value) {
- for (unsigned long i = strlen(value) - 1; isspace(value[i]); i--) {
- value[i] = '\0';
- }
- }
-
- return value;
-}
const char *state_text(mp_state_enum result) {
switch (result) {
diff --git a/lib/utils_base.h b/lib/utils_base.h
index 1da96f78..aaf236ee 100644
--- a/lib/utils_base.h
+++ b/lib/utils_base.h
@@ -63,20 +63,6 @@ int np_check_if_root(void);
* running a suid plugin */
#define mp_suid() (getuid() != geteuid())
-/*
- * Extract the value from key/value pairs, or return NULL. The value returned
- * can be free()ed.
- * This function can be used to parse NTP control packet data and performance
- * data strings.
- */
-char *np_extract_value(const char *, const char *, char);
-
-/*
- * Same as np_extract_value with separator suitable for NTP control packet
- * payloads (comma)
- */
-#define np_extract_ntpvar(l, n) np_extract_value(l, n, ',')
-
/*
* Read a string representing a state (ok, warning... or numeric: 0, 1) and
* return the corresponding NP_STATE or ERROR)
@@ -85,7 +71,7 @@ int mp_translate_state(char *);
void np_init(char *, int argc, char **argv);
void np_set_args(int argc, char **argv);
-void np_cleanup(void);
+// void np_cleanup(void);
const char *state_text(mp_state_enum);
#endif /* _UTILS_BASE_ */
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index c04a5dee..d1697d56 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -50,6 +50,7 @@ EXTRA_PROGRAMS = check_mysql check_radius check_pgsql check_hpjd \
tests/test_check_swap \
tests/test_check_snmp \
tests/test_check_disk \
+ tests/test_check_ntp_peer \
tests/test_sslutils
SUBDIRS = picohttpparser
@@ -61,12 +62,14 @@ mopl_test_scripts = tests/check_curl.t \
tests/test_check_disk.t \
tests/test_check_snmp.t \
tests/test_check_swap.t \
+ tests/test_check_ntp_peer.t \
tests/test_sslutils.t
mopl_test_sources = tests/check_snmp_agent.pl \
tests/test_check_disk.c \
tests/test_check_snmp.c \
tests/test_check_swap.c \
+ tests/test_check_ntp_peer.c \
tests/test_sslutils.c
EXTRA_DIST = t \
@@ -172,6 +175,7 @@ check_mysql_query_CFLAGS = $(AM_CFLAGS) $(MYSQLCFLAGS)
check_mysql_query_CPPFLAGS = $(AM_CPPFLAGS) $(MYSQLINCLUDE)
check_mysql_query_LDADD = $(NETLIBS) $(MYSQLLIBS)
check_nagios_LDADD = $(BASEOBJS)
+check_ntp_peer_SOURCES = check_ntp_peer.c check_ntp_peer.d/check_ntp_peer_helper.c
check_ntp_peer_LDADD = $(NETLIBS) $(MATHLIBS)
check_pgsql_LDADD = $(NETLIBS) $(PGLIBS)
check_ping_LDADD = $(NETLIBS)
@@ -211,6 +215,8 @@ tests_test_check_disk_LDADD = $(BASEOBJS) $(tap_ldflags) check_disk.d/utils_disk
tests_test_check_disk_SOURCES = tests/test_check_disk.c
tests_test_sslutils_LDADD = $(SSLOBJS) $(tap_ldflags) -ltap
tests_test_sslutils_SOURCES = tests/test_sslutils.c
+tests_test_check_ntp_peer_LDADD = $(BASEOBJS) $(tap_ldflags) check_ntp_peer.d/check_ntp_peer_helper.c -ltap
+tests_test_check_ntp_peer_SOURCES = tests/test_check_ntp_peer.c
##############################################################################
# secondary dependencies
diff --git a/plugins/check_ntp_peer.c b/plugins/check_ntp_peer.c
index b9947945..71d71d20 100644
--- a/plugins/check_ntp_peer.c
+++ b/plugins/check_ntp_peer.c
@@ -48,6 +48,7 @@ const char *email = "devel at monitoring-plugins.org";
#include "utils.h"
#include "../lib/states.h"
#include "check_ntp_peer.d/config.h"
+#include "check_ntp_peer.d/check_ntp_peer_helper.h"
static int verbose = 0;
@@ -374,7 +375,7 @@ ntp_request_result ntp_request(const check_ntp_peer_config config) {
DBG_PRINT_1("parsing offset from peer %.2x: ", ntohs(peers[i].assoc));
- value = np_extract_ntpvar(data, "offset");
+ value = check_ntp_peer_extract_ntpvar(data, "offset");
nptr = NULL;
/* Convert the value if we have one */
if (value != NULL) {
@@ -400,8 +401,8 @@ ntp_request_result ntp_request(const check_ntp_peer_config config) {
DBG_PRINT_1("parsing %s from peer %.2x: ",
strstr(getvar, "dispersion") != NULL ? "dispersion" : "jitter",
ntohs(peers[i].assoc));
- value = np_extract_ntpvar(data, strstr(getvar, "dispersion") != NULL ? "dispersion"
- : "jitter");
+ value = check_ntp_peer_extract_ntpvar(
+ data, strstr(getvar, "dispersion") != NULL ? "dispersion" : "jitter");
nptr = NULL;
/* Convert the value if we have one */
if (value != NULL) {
@@ -419,7 +420,7 @@ ntp_request_result ntp_request(const check_ntp_peer_config config) {
if (config.do_stratum) {
/* get the stratum */
DBG_PRINT_1("parsing stratum from peer %.2x: ", ntohs(peers[i].assoc));
- value = np_extract_ntpvar(data, "stratum");
+ value = check_ntp_peer_extract_ntpvar(data, "stratum");
nptr = NULL;
/* Convert the value if we have one */
if (value != NULL) {
@@ -624,24 +625,25 @@ check_ntp_peer_config_wrapper process_arguments(int argc, char **argv) {
char *perfd_offset(double offset, thresholds *offset_thresholds) {
return mopl_utils_fperfdata("offset", offset, "s", true, offset_thresholds->warning->end, true,
- offset_thresholds->critical->end, false, 0, false, 0);
+ offset_thresholds->critical->end, false, 0, false, 0);
}
char *perfd_jitter(double jitter, bool do_jitter, thresholds *jitter_thresholds) {
- return mopl_utils_fperfdata("jitter", jitter, "", do_jitter, jitter_thresholds->warning->end, do_jitter,
- jitter_thresholds->critical->end, true, 0, false, 0);
+ return mopl_utils_fperfdata("jitter", jitter, "", do_jitter, jitter_thresholds->warning->end,
+ do_jitter, jitter_thresholds->critical->end, true, 0, false, 0);
}
char *perfd_stratum(int stratum, bool do_stratum, thresholds *stratum_thresholds) {
- return mopl_utils_perfdata("stratum", stratum, "", do_stratum, (int)stratum_thresholds->warning->end,
- do_stratum, (int)stratum_thresholds->critical->end, true, 0, true, 16);
+ return mopl_utils_perfdata("stratum", stratum, "", do_stratum,
+ (int)stratum_thresholds->warning->end, do_stratum,
+ (int)stratum_thresholds->critical->end, true, 0, true, 16);
}
char *perfd_truechimers(int num_truechimers, const bool do_truechimers,
thresholds *truechimer_thresholds) {
return mopl_utils_perfdata("truechimers", num_truechimers, "", do_truechimers,
- (int)truechimer_thresholds->warning->end, do_truechimers,
- (int)truechimer_thresholds->critical->end, true, 0, false, 0);
+ (int)truechimer_thresholds->warning->end, do_truechimers,
+ (int)truechimer_thresholds->critical->end, true, 0, false, 0);
}
int main(int argc, char *argv[]) {
diff --git a/plugins/check_ntp_peer.d/check_ntp_peer_helper.c b/plugins/check_ntp_peer.d/check_ntp_peer_helper.c
new file mode 100644
index 00000000..7c639b0d
--- /dev/null
+++ b/plugins/check_ntp_peer.d/check_ntp_peer_helper.c
@@ -0,0 +1,80 @@
+#include "./check_ntp_peer_helper.h"
+#include "../../config.h"
+#include <ctype.h>
+#include <stddef.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+/*
+ * Extract the value from key/value pairs, or return NULL. The value returned
+ * can be free()ed.
+ * This function can be used to parse NTP control packet data and performance
+ * data strings.
+ */
+char *check_ntp_peer_extract_value(const char *varlist, const char *name, char sep) {
+ char *tmp = NULL;
+ char *value = NULL;
+
+ while (true) {
+ /* Strip any leading space */
+ for (; isspace(varlist[0]); varlist++) {
+ ;
+ }
+
+ if (strncmp(name, varlist, strlen(name)) == 0) {
+ varlist += strlen(name);
+ /* strip trailing spaces */
+ for (; isspace(varlist[0]); varlist++) {
+ ;
+ }
+
+ if (varlist[0] == '=') {
+ /* We matched the key, go past the = sign */
+ varlist++;
+ /* strip leading spaces */
+ for (; isspace(varlist[0]); varlist++) {
+ ;
+ }
+
+ if ((tmp = index(varlist, sep))) {
+ /* Value is delimited by a comma */
+ if (tmp - varlist == 0) {
+ continue;
+ }
+ value = (char *)calloc(1, (unsigned long)(tmp - varlist + 1));
+ strncpy(value, varlist, (unsigned long)(tmp - varlist));
+ value[tmp - varlist] = '\0';
+ } else {
+ /* Value is delimited by a \0 */
+ if (strlen(varlist) == 0) {
+ continue;
+ }
+ value = (char *)calloc(1, strlen(varlist) + 1);
+ strncpy(value, varlist, strlen(varlist));
+ value[strlen(varlist)] = '\0';
+ }
+ break;
+ }
+ }
+ if ((tmp = index(varlist, sep))) {
+ /* More keys, keep going... */
+ varlist = tmp + 1;
+ } else {
+ /* We're done */
+ break;
+ }
+ }
+
+ /* Clean-up trailing spaces/newlines */
+ if (value) {
+ for (unsigned long i = strlen(value) - 1; isspace(value[i]); i--) {
+ value[i] = '\0';
+ }
+ }
+
+ return value;
+}
+
+char *check_ntp_peer_extract_ntpvar(const char *varlist, const char *name) {
+ return check_ntp_peer_extract_value(varlist, name, ',');
+}
diff --git a/plugins/check_ntp_peer.d/check_ntp_peer_helper.h b/plugins/check_ntp_peer.d/check_ntp_peer_helper.h
new file mode 100644
index 00000000..f222de82
--- /dev/null
+++ b/plugins/check_ntp_peer.d/check_ntp_peer_helper.h
@@ -0,0 +1,13 @@
+/*
+ * Extract the value from key/value pairs, or return NULL. The value returned
+ * can be free()ed.
+ * This function can be used to parse NTP control packet data and performance
+ * data strings.
+ */
+char *check_ntp_peer_extract_value(const char *, const char *, char);
+
+/*
+ * Same as np_extract_value with separator suitable for NTP control packet
+ * payloads (comma)
+ */
+char *check_ntp_peer_extract_ntpvar(const char *, const char *n);
diff --git a/plugins/tests/test_check_ntp_peer.c b/plugins/tests/test_check_ntp_peer.c
new file mode 100644
index 00000000..fbc647f6
--- /dev/null
+++ b/plugins/tests/test_check_ntp_peer.c
@@ -0,0 +1,91 @@
+#include "../../tap/tap.h"
+#include "../check_ntp_peer.d/check_ntp_peer_helper.h"
+
+#include "../../config.h"
+#include <stdlib.h>
+#include <string.h>
+
+int main(int argc, char **argv) {
+ plan_tests(23);
+ /* check_ntp_peer_extract_ntpvar tests (23) */
+ char *test;
+ test = check_ntp_peer_extract_ntpvar("foo=bar, bar=foo, foobar=barfoo\n", "foo");
+ ok(test && !strcmp(test, "bar"), "1st test as expected");
+ free(test);
+
+ test = check_ntp_peer_extract_ntpvar("foo=bar,bar=foo,foobar=barfoo\n", "bar");
+ ok(test && !strcmp(test, "foo"), "2nd test as expected");
+ free(test);
+
+ test = check_ntp_peer_extract_ntpvar("foo=bar, bar=foo, foobar=barfoo\n", "foobar");
+ ok(test && !strcmp(test, "barfoo"), "3rd test as expected");
+ free(test);
+
+ test = check_ntp_peer_extract_ntpvar("foo=bar\n", "foo");
+ ok(test && !strcmp(test, "bar"), "Single test as expected");
+ free(test);
+
+ test = check_ntp_peer_extract_ntpvar("foo=bar, bar=foo, foobar=barfooi\n", "abcd");
+ ok(!test, "Key not found 1");
+
+ test = check_ntp_peer_extract_ntpvar("foo=bar\n", "abcd");
+ ok(!test, "Key not found 2");
+
+ test = check_ntp_peer_extract_ntpvar("foo=bar=foobar", "foo");
+ ok(test && !strcmp(test, "bar=foobar"), "Strange string 1");
+ free(test);
+
+ test = check_ntp_peer_extract_ntpvar("foo", "foo");
+ ok(!test, "Malformed string 1");
+
+ test = check_ntp_peer_extract_ntpvar("foo,", "foo");
+ ok(!test, "Malformed string 2");
+
+ test = check_ntp_peer_extract_ntpvar("foo=", "foo");
+ ok(!test, "Malformed string 3");
+
+ test = check_ntp_peer_extract_ntpvar("foo=,bar=foo", "foo");
+ ok(!test, "Malformed string 4");
+
+ test = check_ntp_peer_extract_ntpvar(",foo", "foo");
+ ok(!test, "Malformed string 5");
+
+ test = check_ntp_peer_extract_ntpvar("=foo", "foo");
+ ok(!test, "Malformed string 6");
+
+ test = check_ntp_peer_extract_ntpvar("=foo,", "foo");
+ ok(!test, "Malformed string 7");
+
+ test = check_ntp_peer_extract_ntpvar(",,,", "foo");
+ ok(!test, "Malformed string 8");
+
+ test = check_ntp_peer_extract_ntpvar("===", "foo");
+ ok(!test, "Malformed string 9");
+
+ test = check_ntp_peer_extract_ntpvar(",=,=,", "foo");
+ ok(!test, "Malformed string 10");
+
+ test = check_ntp_peer_extract_ntpvar("=,=,=", "foo");
+ ok(!test, "Malformed string 11");
+
+ test = check_ntp_peer_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "foo");
+ ok(test && !strcmp(test, "bar"), "Random spaces and newlines 1");
+ free(test);
+
+ test = check_ntp_peer_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "bar");
+ ok(test && !strcmp(test, "foo"), "Random spaces and newlines 2");
+ free(test);
+
+ test =
+ check_ntp_peer_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "foobar");
+ ok(test && !strcmp(test, "barfoo"), "Random spaces and newlines 3");
+ free(test);
+
+ test = check_ntp_peer_extract_ntpvar(" foo=bar ,\n bar\n \n= \n foo\n , foobar=barfoo \n ",
+ "bar");
+ ok(test && !strcmp(test, "foo"), "Random spaces and newlines 4");
+ free(test);
+
+ test = check_ntp_peer_extract_ntpvar("", "foo");
+ ok(!test, "Empty string return NULL");
+}
diff --git a/plugins/tests/test_check_ntp_peer.t b/plugins/tests/test_check_ntp_peer.t
new file mode 100755
index 00000000..af00369f
--- /dev/null
+++ b/plugins/tests/test_check_ntp_peer.t
@@ -0,0 +1,12 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More;
+
+my $test_file_path = "tests/test_check_ntp_peer";
+
+if (! -e $test_file_path) {
+ plan skip_all => $test_file_path." not compiled - please enable libtap library to test";
+}
+exec $test_file_path;
More information about the Commits
mailing list