Skip to content

Commit

Permalink
doveadm: Add unit tests for i_strccdascmp
Browse files Browse the repository at this point in the history
  • Loading branch information
cmouse authored and sirainen committed Feb 19, 2016
1 parent a232108 commit 35a2af0
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/doveadm/Makefile.am
Expand Up @@ -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 \
Expand Down Expand Up @@ -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
48 changes: 48 additions & 0 deletions src/doveadm/test-doveadm-util.c
@@ -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);
}

0 comments on commit 35a2af0

Please sign in to comment.