aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGertjan van den Burg <burg@ese.eur.nl>2016-05-20 19:08:38 +0200
committerGertjan van den Burg <burg@ese.eur.nl>2016-05-20 19:08:38 +0200
commitf9f9a35ef8301761dbbcda08e8ec6c62dc2a7f01 (patch)
treeec38bd811ad60fea3bb8a5fc40810bd192fb1b04 /tests
parentadd generation of coverage reports with lcov (diff)
downloadgensvm-f9f9a35ef8301761dbbcda08e8ec6c62dc2a7f01.tar.gz
gensvm-f9f9a35ef8301761dbbcda08e8ec6c62dc2a7f01.zip
further work on unit tests for cmdarg, queue, and base
Diffstat (limited to 'tests')
-rw-r--r--tests/src/test_gensvm_base.c34
-rw-r--r--tests/src/test_gensvm_cmdarg.c57
-rw-r--r--tests/src/test_gensvm_queue.c2
3 files changed, 89 insertions, 4 deletions
diff --git a/tests/src/test_gensvm_base.c b/tests/src/test_gensvm_base.c
index 2f12579..69ba236 100644
--- a/tests/src/test_gensvm_base.c
+++ b/tests/src/test_gensvm_base.c
@@ -8,13 +8,21 @@
#include "minunit.h"
#include "gensvm_base.h"
-char *test_init_free_model()
+char *test_init_free_model_1()
{
struct GenModel *model = gensvm_init_model();
gensvm_free_model(model);
return NULL;
}
+char *test_init_free_model_2()
+{
+ struct GenModel *model = gensvm_init_model();
+ gensvm_free_model(model);
+ gensvm_free_model(NULL);
+ return NULL;
+}
+
char *test_allocate_free_model()
{
struct GenModel *model = gensvm_init_model();
@@ -43,9 +51,24 @@ char *test_reallocate_free_model()
return NULL;
}
-char *test_init_free_data()
+char *test_init_free_data_1()
+{
+ struct GenData *data = gensvm_init_data();
+ gensvm_free_data(data);
+ return NULL;
+}
+
+char *test_init_free_data_2()
+{
+ struct GenData *data = NULL;
+ gensvm_free_data(data);
+ return NULL;
+}
+
+char *test_init_free_data_3()
{
struct GenData *data = gensvm_init_data();
+ data->Z = Calloc(double, 3);
gensvm_free_data(data);
return NULL;
}
@@ -53,10 +76,13 @@ char *test_init_free_data()
char *all_tests()
{
mu_suite_start();
- mu_run_test(test_init_free_model);
+ mu_run_test(test_init_free_model_1);
+ mu_run_test(test_init_free_model_2);
mu_run_test(test_allocate_free_model);
mu_run_test(test_reallocate_free_model);
- mu_run_test(test_init_free_data);
+ mu_run_test(test_init_free_data_1);
+ mu_run_test(test_init_free_data_2);
+ mu_run_test(test_init_free_data_3);
return NULL;
}
diff --git a/tests/src/test_gensvm_cmdarg.c b/tests/src/test_gensvm_cmdarg.c
new file mode 100644
index 0000000..2ba8958
--- /dev/null
+++ b/tests/src/test_gensvm_cmdarg.c
@@ -0,0 +1,57 @@
+/**
+ * @file test_gensvm_cmdarg.c
+ * @author Gertjan van den Burg
+ * @date May, 2016
+ * @brief Unit tests for gensvm_cmdarg.c functions
+ */
+
+#include "minunit.h"
+#include "gensvm_cmdarg.h"
+
+char *test_check_argv()
+{
+ char **argv = Malloc(char *, 3);
+ argv[0] = "find";
+ argv[1] = "this";
+ argv[2] = "string";
+
+ mu_assert(gensvm_check_argv(3, argv, "ring") == 2,
+ "Failed on string 'ring'");
+ mu_assert(gensvm_check_argv(3, argv, "hi") == 1,
+ "Failed on string 'hi'");
+ mu_assert(gensvm_check_argv(3, argv, "test") == 0,
+ "Failed on string 'test'");
+ free(argv);
+
+ return NULL;
+}
+
+char *test_check_argv_eq()
+{
+ char **argv = Malloc(char *, 3);
+ argv[0] = "find";
+ argv[1] = "this";
+ argv[2] = "string";
+
+ mu_assert(gensvm_check_argv_eq(3, argv, "this") == 1,
+ "Failed on string 'this'");
+ mu_assert(gensvm_check_argv_eq(3, argv, "hi") == 0,
+ "Failed on string 'hi'");
+ mu_assert(gensvm_check_argv_eq(3, argv, "str") == 0,
+ "Failed on string 'str'");
+ free(argv);
+
+ return NULL;
+}
+
+
+char *all_tests()
+{
+ mu_suite_start();
+ mu_run_test(test_check_argv);
+ mu_run_test(test_check_argv_eq);
+
+ return NULL;
+}
+
+RUN_TESTS(all_tests);
diff --git a/tests/src/test_gensvm_queue.c b/tests/src/test_gensvm_queue.c
index a8f0946..e247178 100644
--- a/tests/src/test_gensvm_queue.c
+++ b/tests/src/test_gensvm_queue.c
@@ -39,6 +39,8 @@ char *test_get_next_task()
t = get_next_task(q);
t = get_next_task(q);
mu_assert(t == task_3, "third task is not task_3");
+ t = get_next_task(q);
+ mu_assert(t == NULL, "next task is not NULL");
gensvm_free_queue(q);