summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2014-01-23 14:44:08 +0100
committerMartin Kosek <mkosek@redhat.com>2014-01-23 18:14:23 +0100
commit2bb2aa8c484285648e6f422a00006f0f00a352ef (patch)
tree2e0139666b1943f710be5144d8c851d54c324786
parent311b2b1acf00cab510eaa62306f5d61d2f9bf95f (diff)
downloadfreeipa-2bb2aa8c484285648e6f422a00006f0f00a352ef.zip
freeipa-2bb2aa8c484285648e6f422a00006f0f00a352ef.tar.gz
freeipa-2bb2aa8c484285648e6f422a00006f0f00a352ef.tar.xz
CLDAP: add unit tests for make_netbios_name
-rw-r--r--daemons/ipa-slapi-plugins/ipa-cldap/Makefile.am19
-rw-r--r--daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_tests.c68
2 files changed, 87 insertions, 0 deletions
diff --git a/daemons/ipa-slapi-plugins/ipa-cldap/Makefile.am b/daemons/ipa-slapi-plugins/ipa-cldap/Makefile.am
index 70b0883..8e35cdb 100644
--- a/daemons/ipa-slapi-plugins/ipa-cldap/Makefile.am
+++ b/daemons/ipa-slapi-plugins/ipa-cldap/Makefile.am
@@ -35,6 +35,25 @@ libipa_cldap_la_LIBADD = \
$(NDRNBT_LIBS) \
$(NULL)
+if HAVE_CMOCKA
+TESTS = ipa_cldap_tests
+check_PROGRAMS = ipa_cldap_tests
+endif
+
+ipa_cldap_tests_SOURCES = \
+ ipa_cldap_tests.c \
+ ipa_cldap_netlogon.c \
+ $(NULL)
+ipa_cldap_tests_CFLAGS = $(CMOCKA_FLAGS)
+ipa_cldap_tests_LDFLAGS = \
+ -rpath $(shell pkg-config --libs-only-L dirsrv | sed -e 's/-L//') \
+ $(NULL)
+ipa_cldap_tests_LDADD = \
+ $(CMOCKA_LIBS) \
+ $(NDRNBT_LIBS) \
+ $(DIRSRV_LIBS) \
+ $(NULL)
+
appdir = $(IPA_DATA_DIR)
app_DATA = \
ipa-cldap-conf.ldif \
diff --git a/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_tests.c b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_tests.c
new file mode 100644
index 0000000..8f579cb
--- /dev/null
+++ b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_tests.c
@@ -0,0 +1,68 @@
+/*
+ Authors:
+ Sumit Bose <sbose@redhat.com>
+
+ Copyright (C) 2014 Red Hat
+
+ Tests for FreeIPA CLDAP plugin
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+#include "ipa_cldap.h"
+
+void test_make_netbios_name(void **state)
+{
+ char *r;
+ size_t c;
+
+ struct test_data {
+ char *i;
+ char *o;
+ } d[] = {
+ {"abc", "ABC"},
+ {"long-host-name-12345", "LONGHOSTNAME123"},
+ {"abc.def.123", "ABC"},
+ {"####", NULL},
+ {NULL, NULL}
+ };
+
+ r = make_netbios_name(NULL, NULL);
+ assert_null(r);
+
+ for (c = 0; d[c].i != NULL; c++) {
+ r = make_netbios_name(NULL, d[c].i);
+ if (d[c].o != NULL) {
+ assert_string_equal(r, d[c].o);
+ } else {
+ assert_null(r);
+ }
+ }
+}
+
+int main(int argc, const char *argv[])
+{
+
+ const UnitTest tests[] = {
+ unit_test(test_make_netbios_name),
+ };
+
+ return run_tests(tests);
+}
+