aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/CMakeLists.txt1
-rw-r--r--tests/test_group_fixtures.c48
2 files changed, 49 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 8287b61..9c00846 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -8,6 +8,7 @@ include_directories(
set(CMOCKA_TESTS
test_fixtures
+ test_group_fixtures
test_assert_macros
test_assert_macros_fail
test_exception_handler
diff --git a/tests/test_group_fixtures.c b/tests/test_group_fixtures.c
new file mode 100644
index 0000000..6f49e24
--- /dev/null
+++ b/tests/test_group_fixtures.c
@@ -0,0 +1,48 @@
+/* Use the unit test allocators */
+#define UNIT_TESTING 1
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+static void group_setup(void **state)
+{
+ int *answer = malloc(sizeof(int));
+ assert_non_null(answer);
+ *answer = 42;
+
+ *state = answer;
+}
+
+static void group_teardown(void **state)
+{
+ int *answer = (int *)*state;
+
+ free(answer);
+}
+
+static void test_value_equal(void **state)
+{
+ int a = *((int *)*state);
+
+ assert_int_equal(a, 42);
+}
+
+static void test_value_range(void **state)
+{
+ int a = *((int *)*state);
+
+ assert_in_range(a, 0, 100);
+}
+
+int main(void) {
+ const UnitTest tests[] = {
+ group_test_setup(group_setup),
+ unit_test(test_value_equal),
+ unit_test(test_value_range),
+ group_test_teardown(group_teardown),
+ };
+
+ return run_group_tests(tests);
+}