Add tests for lib->get|set
authorTobias Brunner <tobias@strongswan.org>
Wed, 27 Mar 2013 15:35:28 +0000 (16:35 +0100)
committerTobias Brunner <tobias@strongswan.org>
Tue, 11 Jun 2013 09:03:12 +0000 (11:03 +0200)
src/libstrongswan/tests/Makefile.am
src/libstrongswan/tests/test_runner.c
src/libstrongswan/tests/test_runner.h
src/libstrongswan/tests/test_utils.c [new file with mode: 0644]

index b0eb0a5..e99b3b5 100644 (file)
@@ -6,7 +6,7 @@ test_runner_SOURCES = \
   test_runner.c test_runner.h \
   test_linked_list.c test_enumerator.c test_linked_list_enumerator.c \
   test_chunk.c test_hashtable.c test_identification.c \
-  test_threading.c
+  test_threading.c test_utils.c
 
 
 test_runner_CFLAGS = \
index 7dc40ff..d830efd 100644 (file)
@@ -39,6 +39,7 @@ int main()
        srunner_add_suite(sr, hashtable_suite_create());
        srunner_add_suite(sr, identification_suite_create());
        srunner_add_suite(sr, threading_suite_create());
+       srunner_add_suite(sr, utils_suite_create());
 
        srunner_run_all(sr, CK_NORMAL);
        nf = srunner_ntests_failed(sr);
index 8ec40a7..a5529fe 100644 (file)
@@ -25,5 +25,6 @@ Suite *linked_list_enumerator_suite_create();
 Suite *hashtable_suite_create();
 Suite *identification_suite_create();
 Suite *threading_suite_create();
+Suite *utils_suite_create();
 
 #endif /** TEST_RUNNER_H_ */
diff --git a/src/libstrongswan/tests/test_utils.c b/src/libstrongswan/tests/test_utils.c
new file mode 100644 (file)
index 0000000..451f5b9
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2013 Tobias Brunner
+ * Hochschule fuer Technik Rapperswil
+ *
+ * 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 2 of the License, or (at your
+ * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
+ *
+ * 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.
+ */
+
+
+#include <check.h>
+
+#include <library.h>
+
+/*******************************************************************************
+ * object storage on lib
+ */
+
+START_TEST(test_objects)
+{
+       char *k1 = "key1", *k2 = "key2";
+       char *v1 = "val1", *val;
+
+       ck_assert(lib->get(lib, k1) == NULL);
+
+       ck_assert(lib->set(lib, k1, v1));
+       ck_assert(!lib->set(lib, k1, v1));
+
+       val = lib->get(lib, k1);
+       ck_assert(val != NULL);
+       ck_assert(streq(val, v1));
+
+       ck_assert(lib->set(lib, k1, NULL));
+       ck_assert(!lib->set(lib, k2, NULL));
+
+       ck_assert(lib->get(lib, k1) == NULL);
+}
+END_TEST
+
+Suite *utils_suite_create()
+{
+       Suite *s;
+       TCase *tc;
+
+       s = suite_create("utils");
+
+       tc = tcase_create("objects");
+       tcase_add_test(tc, test_objects);
+       suite_add_tcase(s, tc);
+
+       return s;
+}