tests: Add test_group_fixtures.
authorAndreas Schneider <asn@cryptomilk.org>
Mon, 23 Dec 2013 18:06:11 +0000 (19:06 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 11 Apr 2014 13:09:05 +0000 (15:09 +0200)
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
tests/CMakeLists.txt
tests/test_group_fixtures.c [new file with mode: 0644]

index 8287b61..9c00846 100644 (file)
@@ -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 (file)
index 0000000..6f49e24
--- /dev/null
@@ -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);
+}