]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Add unit tests for i_strccdascmp
authorAki Tuomi <aki.tuomi@dovecot.fi>
Thu, 18 Feb 2016 13:49:03 +0000 (15:49 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 19 Feb 2016 13:29:58 +0000 (15:29 +0200)
src/doveadm/Makefile.am
src/doveadm/test-doveadm-util.c [new file with mode: 0644]

index ac1196af872b3180aa10c0d7064de9ba014e71ca..80658ca4a7f5eabe07c88264b6303400f3bff782 100644 (file)
@@ -8,6 +8,7 @@ pkglibexec_PROGRAMS = doveadm-server
 
 AM_CPPFLAGS = \
        -I$(top_srcdir)/src/lib \
+       -I$(top_srcdir)/src/lib-test \
        -I$(top_srcdir)/src/lib-settings \
        -I$(top_srcdir)/src/lib-auth \
        -I$(top_srcdir)/src/lib-compression \
@@ -160,3 +161,22 @@ noinst_HEADERS = \
 install-exec-local:
        rm -f $(DESTDIR)$(bindir)/dsync
        $(LN_S) doveadm $(DESTDIR)$(bindir)/dsync
+
+test_programs = \
+       test-doveadm-util
+noinst_PROGRAMS = $(test_programs)
+
+test_libs = \
+       ../lib-test/libtest.la \
+       ../lib/liblib.la
+test_deps = $(noinst_LTLIBRARIES) $(test_libs)
+
+test_doveadm_util_SOURCES = test-doveadm-util.c
+test_doveadm_util_LDADD = doveadm-util.o $(test_libs) $(MODULE_LIBS)
+test_doveadm_util_DEPENDENCIES = $(test_deps)
+
+check: check-am check-test
+check-test: all-am
+       for bin in $(test_programs); do \
+         if ! $(RUN_TEST) ./$$bin; then exit 1; fi; \
+       done
diff --git a/src/doveadm/test-doveadm-util.c b/src/doveadm/test-doveadm-util.c
new file mode 100644 (file)
index 0000000..eccd5a2
--- /dev/null
@@ -0,0 +1,48 @@
+/* Copyright (c) 2016 Dovecot authors, see the included COPYING file */
+
+#include "lib.h"
+#include "test-common.h"
+#include "doveadm-settings.h"
+#include "doveadm-util.h"
+
+struct doveadm_settings *doveadm_settings; /* just to avoid linker error */
+
+static void test_i_strccdascmp(void)
+{
+       test_begin("i_strccdascmp()");
+
+        test_assert(i_strccdascmp("", "")==0);
+        test_assert(i_strccdascmp("", "-")!=0);
+        test_assert(i_strccdascmp("-", "")!=0);
+        test_assert(i_strccdascmp("-", "-")==0);
+        test_assert(i_strccdascmp("-\0baz", "-\0bar")==0);
+        test_assert(i_strccdascmp("", "a")!=0);
+        test_assert(i_strccdascmp("a", "")!=0);
+        test_assert(i_strccdascmp("a", "a")==0);
+        test_assert(i_strccdascmp("a-", "a-")==0);
+        test_assert(i_strccdascmp("a-a", "a-a")==0);
+        test_assert(i_strccdascmp("ca", "ba")!=0);
+
+        test_assert(i_strccdascmp("camel case", "camel case")==0);
+        test_assert(i_strccdascmp("camel case", "camel-case")==0);
+        test_assert(i_strccdascmp("camel case", "camelCase")==0);
+
+        test_assert(i_strccdascmp("camel case", "camel-case")==0);
+        test_assert(i_strccdascmp("camel-case", "camel-case")==0);
+        test_assert(i_strccdascmp("camelCase", "camel-case")==0);
+
+        test_assert(i_strccdascmp("camel case", "camel Case")==-i_strccdascmp("camel Case", "camel case"));
+        test_assert(i_strccdascmp("camel-case", "camel Case")==-i_strccdascmp("camel Case", "camel-case"));
+        test_assert(i_strccdascmp("camel dase", "camel case")==-i_strccdascmp("camel case", "camel dase"));
+
+        test_end();
+}
+
+int main(void)
+{
+       static void (*test_functions[])(void) = {
+               test_i_strccdascmp,
+               NULL
+       };
+       return test_run(test_functions);
+}