diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2007-01-21 23:08:56 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2007-01-21 23:08:56 +0100 |
commit | 7738014d6a9ad81806ddb4e06092791dbd10b616 (patch) | |
tree | 403e090e57036631a4e30d0fa2e44a052bfc7533 /tests | |
parent | 8c073a6e77edd56bc3d58d6b4af2a40f005aacad (diff) |
Add tests for set
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile | 2 | ||||
-rw-r--r-- | tests/check.c | 4 | ||||
-rw-r--r-- | tests/check_set.c | 130 | ||||
-rw-r--r-- | tests/testsuite.h | 2 |
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); |