diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile.am | 18 | ||||
-rw-r--r-- | tests/check_error.c | 65 | ||||
-rw-r--r-- | tests/check_loader.c | 1 | ||||
-rw-r--r-- | tests/check_source_parser.c | 1 | ||||
-rw-r--r-- | tests/check_template_parser.c | 1 |
6 files changed, 87 insertions, 0 deletions
@@ -40,6 +40,7 @@ Makefile.in /blogc # tests +/tests/check_error /tests/check_loader /tests/check_source_parser /tests/check_template_parser diff --git a/Makefile.am b/Makefile.am index 71747dc..0988b5f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -81,12 +81,30 @@ blogc_LDADD = \ if USE_CMOCKA check_PROGRAMS += \ + tests/check_error \ tests/check_loader \ tests/check_source_parser \ tests/check_template_parser \ tests/check_utils \ $(NULL) +tests_check_error_SOURCES = \ + tests/check_error.c \ + $(NULL) + +tests_check_error_CFLAGS = \ + $(CMOCKA_CFLAGS) \ + $(NULL) + +tests_check_error_LDFLAGS = \ + -no-install \ + $(NULL) + +tests_check_error_LDADD = \ + $(CMOCKA_LIBS) \ + libblogc.la \ + $(NULL) + tests_check_loader_SOURCES = \ tests/check_loader.c \ $(NULL) diff --git a/tests/check_error.c b/tests/check_error.c new file mode 100644 index 0000000..59ac2f9 --- /dev/null +++ b/tests/check_error.c @@ -0,0 +1,65 @@ +/* + * blogc: A blog compiler. + * Copyright (C) 2015 Rafael G. Martins <rafael@rafaelmartins.eng.br> + * + * This program can be distributed under the terms of the BSD License. + * See the file COPYING. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif /* HAVE_CONFIG_H */ + +#include <stdarg.h> +#include <stddef.h> +#include <setjmp.h> +#include <cmocka.h> +#include <string.h> +#include "../src/error.h" +#include "../src/utils/utils.h" + + +static void +test_error_new(void **state) +{ + blogc_error_t *error = blogc_error_new(1, "bola %s"); + assert_non_null(error); + assert_int_equal(error->type, 1); + assert_string_equal(error->msg, "bola %s"); + blogc_error_free(error); +} + + +static void +test_error_new_printf(void **state) +{ + blogc_error_t *error = blogc_error_new_printf(2, "bola %s", "guda"); + assert_non_null(error); + assert_int_equal(error->type, 2); + assert_string_equal(error->msg, "bola guda"); + blogc_error_free(error); +} + + +static void +test_error_parser(void **state) +{ + const char *a = "bola\nguda\nchunda\n"; + blogc_error_t *error = blogc_error_parser(1, a, strlen(a), 11, "asd %d", 10); + assert_non_null(error); + assert_int_equal(error->type, 1); + assert_string_equal(error->msg, "asd 10\nError occurred near to \"hunda\"."); + blogc_error_free(error); +} + + +int +main(void) +{ + const UnitTest tests[] = { + unit_test(test_error_new), + unit_test(test_error_new_printf), + unit_test(test_error_parser), + }; + return run_tests(tests); +} diff --git a/tests/check_loader.c b/tests/check_loader.c index c9f1432..08c5acc 100644 --- a/tests/check_loader.c +++ b/tests/check_loader.c @@ -16,6 +16,7 @@ #include <cmocka.h> #include <string.h> #include "../src/loader.h" +#include "../src/utils/utils.h" static void diff --git a/tests/check_source_parser.c b/tests/check_source_parser.c index ede1f5e..90ebcc1 100644 --- a/tests/check_source_parser.c +++ b/tests/check_source_parser.c @@ -17,6 +17,7 @@ #include <string.h> #include "../src/source-parser.h" #include "../src/error.h" +#include "../src/utils/utils.h" static void diff --git a/tests/check_template_parser.c b/tests/check_template_parser.c index b7ebd1c..9d67fe3 100644 --- a/tests/check_template_parser.c +++ b/tests/check_template_parser.c @@ -17,6 +17,7 @@ #include <string.h> #include "../src/template-parser.h" #include "../src/error.h" +#include "../src/utils/utils.h" static void |