aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-01-21 23:08:56 +0100
committerJelmer Vernooij <jelmer@samba.org>2007-01-21 23:08:56 +0100
commit7738014d6a9ad81806ddb4e06092791dbd10b616 (patch)
tree403e090e57036631a4e30d0fa2e44a052bfc7533 /tests
parent8c073a6e77edd56bc3d58d6b4af2a40f005aacad (diff)
Add tests for set
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile2
-rw-r--r--tests/check.c4
-rw-r--r--tests/check_set.c130
-rw-r--r--tests/testsuite.h2
4 files changed, 137 insertions, 1 deletions
diff --git a/tests/Makefile b/tests/Makefile
index 7c959890..2c45354d 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -10,7 +10,7 @@ clean:
main_objs = account.o bitlbee.o conf.o crypting.o help.o ipc.o irc.o irc_commands.o log.o nick.o query.o root_commands.o set.o storage.o storage_xml.o storage_text.o user.o
-test_objs = check.o check_util.o check_nick.o check_md5.o check_irc.o check_help.o check_user.o check_crypting.o
+test_objs = check.o check_util.o check_nick.o check_md5.o check_irc.o check_help.o check_user.o check_crypting.o check_set.o
check: $(test_objs) $(addprefix ../, $(main_objs)) ../protocols/protocols.o ../lib/lib.o
@echo '*' Linking $@
diff --git a/tests/check.c b/tests/check.c
index bf76a89d..488d9608 100644
--- a/tests/check.c
+++ b/tests/check.c
@@ -59,6 +59,9 @@ Suite *user_suite(void);
/* From check_crypting.c */
Suite *crypting_suite(void);
+/* From check_set.c */
+Suite *set_suite(void);
+
int main (int argc, char **argv)
{
int nf;
@@ -102,6 +105,7 @@ int main (int argc, char **argv)
srunner_add_suite(sr, help_suite());
srunner_add_suite(sr, user_suite());
srunner_add_suite(sr, crypting_suite());
+ srunner_add_suite(sr, set_suite());
if (no_fork)
srunner_set_fork_status(sr, CK_NOFORK);
srunner_run_all (sr, verbose?CK_VERBOSE:CK_NORMAL);
diff --git a/tests/check_set.c b/tests/check_set.c
new file mode 100644
index 00000000..b1ea973d
--- /dev/null
+++ b/tests/check_set.c
@@ -0,0 +1,130 @@
+#include <stdlib.h>
+#include <glib.h>
+#include <gmodule.h>
+#include <check.h>
+#include <string.h>
+#include "set.h"
+#include "testsuite.h"
+
+START_TEST(test_set_add)
+ void *data = "data";
+ set_t *s = NULL, *t;
+ t = set_add(&s, "name", "default", NULL, data);
+ fail_unless(s == t);
+ fail_unless(t->data == data);
+ fail_unless(strcmp(t->def, "default") == 0);
+END_TEST
+
+START_TEST(test_set_add_existing)
+ void *data = "data";
+ set_t *s = NULL, *t;
+ t = set_add(&s, "name", "default", NULL, data);
+ t = set_add(&s, "name", "newdefault", NULL, data);
+ fail_unless(s == t);
+ fail_unless(strcmp(t->def, "newdefault") == 0);
+END_TEST
+
+START_TEST(test_set_find_unknown)
+ set_t *s = NULL, *t;
+ fail_unless (set_find(&s, "foo") == NULL);
+END_TEST
+
+START_TEST(test_set_find)
+ void *data = "data";
+ set_t *s = NULL, *t;
+ t = set_add(&s, "name", "default", NULL, data);
+ fail_unless(s == t);
+ fail_unless(set_find(&s, "name") == t);
+END_TEST
+
+START_TEST(test_set_get_str_default)
+ void *data = "data";
+ set_t *s = NULL, *t;
+ t = set_add(&s, "name", "default", NULL, data);
+ fail_unless(s == t);
+ fail_unless(strcmp(set_getstr(&s, "name"), "default") == 0);
+END_TEST
+
+START_TEST(test_set_get_bool_default)
+ void *data = "data";
+ set_t *s = NULL, *t;
+ t = set_add(&s, "name", "true", NULL, data);
+ fail_unless(s == t);
+ fail_unless(set_getbool(&s, "name"));
+END_TEST
+
+START_TEST(test_set_get_bool_integer)
+ void *data = "data";
+ set_t *s = NULL, *t;
+ t = set_add(&s, "name", "3", NULL, data);
+ fail_unless(s == t);
+ fail_unless(set_getbool(&s, "name") == 3);
+END_TEST
+
+START_TEST(test_set_get_bool_unknown)
+ set_t *s = NULL;
+ fail_unless(set_getbool(&s, "name") == 0);
+END_TEST
+
+START_TEST(test_set_get_str_value)
+ void *data = "data";
+ set_t *s = NULL, *t;
+ t = set_add(&s, "name", "default", NULL, data);
+ set_setstr(&s, "name", "foo");
+ fail_unless(strcmp(set_getstr(&s, "name"), "foo") == 0);
+END_TEST
+
+START_TEST(test_set_get_str_unknown)
+ set_t *s = NULL;
+ fail_unless(set_getstr(&s, "name") == NULL);
+END_TEST
+
+START_TEST(test_setint)
+ void *data = "data";
+ set_t *s = NULL, *t;
+ t = set_add(&s, "name", "10", NULL, data);
+ set_setint(&s, "name", 3);
+ fail_unless(set_getint(&s, "name") == 3);
+END_TEST
+
+START_TEST(test_setstr)
+ void *data = "data";
+ set_t *s = NULL, *t;
+ t = set_add(&s, "name", "foo", NULL, data);
+ set_setstr(&s, "name", "bloe");
+ fail_unless(strcmp(set_getstr(&s, "name"), "bloe") == 0);
+END_TEST
+
+START_TEST(test_setstr_implicit)
+ void *data = "data";
+ set_t *s = NULL, *t;
+ set_setstr(&s, "name", "bloe");
+ fail_unless(set_find(&s, "name") != NULL);
+END_TEST
+
+START_TEST(test_set_get_int_unknown)
+ set_t *s = NULL;
+ fail_unless(set_getint(&s, "foo") == 0);
+END_TEST
+
+Suite *set_suite (void)
+{
+ Suite *s = suite_create("Set");
+ TCase *tc_core = tcase_create("Core");
+ suite_add_tcase (s, tc_core);
+ tcase_add_test (tc_core, test_set_add);
+ tcase_add_test (tc_core, test_set_add_existing);
+ tcase_add_test (tc_core, test_set_find_unknown);
+ tcase_add_test (tc_core, test_set_find);
+ tcase_add_test (tc_core, test_set_get_str_default);
+ tcase_add_test (tc_core, test_set_get_str_value);
+ tcase_add_test (tc_core, test_set_get_str_unknown);
+ tcase_add_test (tc_core, test_set_get_bool_default);
+ tcase_add_test (tc_core, test_set_get_bool_integer);
+ tcase_add_test (tc_core, test_set_get_bool_unknown);
+ tcase_add_test (tc_core, test_set_get_int_unknown);
+ tcase_add_test (tc_core, test_setint);
+ tcase_add_test (tc_core, test_setstr);
+ tcase_add_test (tc_core, test_setstr_implicit);
+ return s;
+}
diff --git a/tests/testsuite.h b/tests/testsuite.h
index 79227041..0b169198 100644
--- a/tests/testsuite.h
+++ b/tests/testsuite.h
@@ -1,6 +1,8 @@
#ifndef __BITLBEE_CHECK_H__
#define __BITLBEE_CHECK_H__
+#include "irc.h"
+
irc_t *torture_irc(void);
gboolean g_io_channel_pair(GIOChannel **ch1, GIOChannel **ch2);