Mercurial > dovecot > core-2.2
changeset 19766:f2d7c8fb2a94
doveadm: Add unit tests for i_strccdascmp
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Thu, 18 Feb 2016 15:49:03 +0200 |
parents | e2f06973080f |
children | a9fd771f2cae |
files | src/doveadm/Makefile.am src/doveadm/test-doveadm-util.c |
diffstat | 2 files changed, 68 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/Makefile.am Thu Feb 18 15:48:21 2016 +0200 +++ b/src/doveadm/Makefile.am Thu Feb 18 15:49:03 2016 +0200 @@ -8,6 +8,7 @@ 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 @@ 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/doveadm/test-doveadm-util.c Thu Feb 18 15:49:03 2016 +0200 @@ -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); +}