aboutsummaryrefslogtreecommitdiffstats
path: root/tests/check_set.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2007-07-01 15:52:45 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2007-07-01 15:52:45 +0100
commitae3c4fae12b09b30bb49477696b10ae5beb8ef4b (patch)
treea6e3476a7ae4a40cc0039126391b7f5058383798 /tests/check_set.c
parentf7b44f2c094f99f03182485a30d95a029a84f809 (diff)
parent348c11b16c156979ef2c7141ca7450af693b3713 (diff)
Merge from Jelmer (mainly unit testing things).
Diffstat (limited to 'tests/check_set.c')
-rw-r--r--tests/check_set.c130
1 files changed, 130 insertions, 0 deletions
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;
+}