summaryrefslogtreecommitdiffstats
path: root/tests/test_connlabel.c
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2019-03-09 11:56:05 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2019-03-11 13:34:51 +0100
commit9c0ed46f68cada9f3455be91adb553d020012596 (patch)
tree249499eb5b3b977a29088b4bff905a82ce546a14 /tests/test_connlabel.c
parente0d8a7cec8ba5ca8fed95eacb5c9f1166f386490 (diff)
Rename 'qa' directory to 'tests'
When searching for library tests, 'qa' is easily overlooked. Use a more common name instead. Suggested-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'tests/test_connlabel.c')
-rw-r--r--tests/test_connlabel.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/test_connlabel.c b/tests/test_connlabel.c
new file mode 100644
index 0000000..99b1171
--- /dev/null
+++ b/tests/test_connlabel.c
@@ -0,0 +1,70 @@
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+#include <libmnl/libmnl.h>
+#include <libnetfilter_conntrack/libnetfilter_conntrack.h>
+
+static void print_label(struct nfct_labelmap *map)
+{
+ int b = nfct_labelmap_get_bit(map, "test label 1");
+ assert(b == 1);
+
+ b = nfct_labelmap_get_bit(map, "zero");
+ assert(b == 0);
+
+ b = nfct_labelmap_get_bit(map, "test label 2");
+ assert(b == 2);
+
+ b = nfct_labelmap_get_bit(map, "duplicate");
+ assert(b < 0);
+
+ b = nfct_labelmap_get_bit(map, "invalid label");
+ assert(b < 0);
+
+ b = nfct_labelmap_get_bit(map, "T");
+ assert(b == 42);
+}
+
+static void dump_map(struct nfct_labelmap *map)
+{
+ unsigned int i = 0;
+
+ for (;;) {
+ const char *name = nfct_labelmap_get_name(map, i);
+ if (!name)
+ break;
+ if (name[0])
+ printf("\t\"%s\", bit %d\n", name, i);
+ i++;
+ }
+}
+
+int main(void)
+{
+ struct nfct_labelmap *l;
+
+ l = nfct_labelmap_new("/");
+ assert(l == NULL);
+
+ l = nfct_labelmap_new(NULL);
+ if (l) {
+ puts("default connlabel.conf:");
+ dump_map(l);
+ nfct_labelmap_destroy(l);
+ } else {
+ puts("no default config found");
+ }
+
+ l = nfct_labelmap_new("qa-connlabel.conf");
+ if (!l)
+ l = nfct_labelmap_new("tests/qa-connlabel.conf");
+ assert(l);
+ puts("qa-connlabel.conf:");
+ dump_map(l);
+ print_label(l);
+ nfct_labelmap_destroy(l);
+
+ return 0;
+}