[prev in list] [next in list] [prev in thread] [next in thread]
List: net-snmp-coders
Subject: [PATCH 6/6] testing/fulltests/unit-tests: Add netsnmp_parse_ep_str() unit test
From: Bart Van Assche <bvanassche () acm ! org>
Date: 2018-10-28 20:54:28
Message-ID: 20181028205428.28116-7-bvanassche () acm ! org
[Download RAW message or body]
---
testing/fulltests/support/clib_build | 1 +
.../T022netsnmp_parse_ep_str_clib.c | 55 +++++++++++++++++++
2 files changed, 56 insertions(+)
create mode 100644 testing/fulltests/unit-tests/T022netsnmp_parse_ep_str_clib.c
diff --git a/testing/fulltests/support/clib_build \
b/testing/fulltests/support/clib_build index f94bebd02e36..3ae4dc9b5b7f 100755
--- a/testing/fulltests/support/clib_build
+++ b/testing/fulltests/support/clib_build
@@ -15,6 +15,7 @@ cat >>"$2.c" <<EOF
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/library/large_fd_set.h>
+#include <net-snmp/library/snmpIPBaseDomain.h>
/* testing specific header */
#include <net-snmp/library/testing.h>
diff --git a/testing/fulltests/unit-tests/T022netsnmp_parse_ep_str_clib.c \
b/testing/fulltests/unit-tests/T022netsnmp_parse_ep_str_clib.c new file mode 100644
index 000000000000..7f06746ad299
--- /dev/null
+++ b/testing/fulltests/unit-tests/T022netsnmp_parse_ep_str_clib.c
@@ -0,0 +1,55 @@
+/*
+ * HEADER Testing netsnmp_parse_ep_str()
+ */
+
+struct one_test_data {
+ const char *in;
+ int res;
+ struct netsnmp_ep_str expected;
+};
+
+static struct one_test_data test_data[] = {
+ { "9999", 1, { "", "", 9999 } },
+ { ":777", 1, { "", "", 777 } },
+ { "hostname:777", 1, { "hostname", "", 777 } },
+ { "hostname", 1, { "hostname", "", 0 } },
+ { "1.2.3.4", 1, { "1.2.3.4", "", 0 } },
+ { "hostname@if", 1, { "hostname", "if", 0 } },
+ { "hostname@if:833", 1, { "hostname", "if", 833 } },
+ { "[hostname]@if:833", 1, { "hostname", "if", 833 } },
+ { "[hostname]?", 0, { } },
+ { "[hostname", 0, { } },
+ { "@if:844", 1, { "", "if", 844 } },
+ { "[::1]", 1, { "::1", "", 0 } },
+ { "[::1]:2", 1, { "::1", "", 2 } },
+ { "[::1]@if:2", 1, { "::1", "if", 2 } },
+ { "[::1]:2@if", 0, { } },
+};
+
+SOCK_STARTUP;
+
+{
+ int i;
+
+ for (i = 0; i < sizeof(test_data) / sizeof(test_data[0]); i++) {
+ const struct one_test_data *p = &test_data[i];
+ struct netsnmp_ep_str ep_str;
+ int res;
+
+ memset(&ep_str, 0, sizeof(ep_str));
+ res = netsnmp_parse_ep_str(&ep_str, p->in);
+ OKF(res == p->res, ("%s: return value %d <> %d", p->in, res, p->res));
+ if (res && p->res) {
+ OKF(strcmp(ep_str.addr, p->expected.addr) == 0,
+ ("%s: network address %s <> %s", p->in, ep_str.addr,
+ p->expected.addr));
+ OKF(strcmp(ep_str.iface, p->expected.iface) == 0,
+ ("%s: network interface %s <> %s", p->in, ep_str.iface,
+ p->expected.iface));
+ OKF(ep_str.port == p->expected.port,
+ ("%s: port %d <> %d", p->in, ep_str.port, p->expected.port));
+ }
+ }
+}
+
+SOCK_CLEANUP;
--
2.19.1
_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic