1 //- Copyright (c) 2010 James Grenning and Contributed to Unity Project
2 /* ==========================================
3 Unity Project - A Test Framework for C
4 Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
5 [Released under MIT License. Please refer to license.txt for details]
6 ========================================== */
8 #ifndef UNITY_FIXTURE_H_
9 #define UNITY_FIXTURE_H_
12 #include "unity_internals.h"
13 #include "unity_fixture_malloc_overrides.h"
14 #include "unity_fixture_internals.h"
16 int UnityMain(int argc, const char* argv[], void (*runAllTests)(void));
19 #define TEST_GROUP(group)\
20 static const char* TEST_GROUP_##group = #group
22 #define TEST_SETUP(group) void TEST_##group##_SETUP(void);\
23 void TEST_##group##_SETUP(void)
25 #define TEST_TEAR_DOWN(group) void TEST_##group##_TEAR_DOWN(void);\
26 void TEST_##group##_TEAR_DOWN(void)
29 #define TEST(group, name) \
30 void TEST_##group##_##name##_(void);\
31 void TEST_##group##_##name##_run(void);\
32 void TEST_##group##_##name##_run(void)\
34 UnityTestRunner(TEST_##group##_SETUP,\
35 TEST_##group##_##name##_,\
36 TEST_##group##_TEAR_DOWN,\
37 "TEST(" #group ", " #name ")",\
38 TEST_GROUP_##group, #name,\
41 void TEST_##group##_##name##_(void)
43 #define IGNORE_TEST(group, name) \
44 void TEST_##group##_##name##_(void);\
45 void TEST_##group##_##name##_run(void);\
46 void TEST_##group##_##name##_run(void)\
48 UnityIgnoreTest("IGNORE_TEST(" #group ", " #name ")");\
50 void TEST_##group##_##name##_(void)
52 #define DECLARE_TEST_CASE(group, name) \
53 void TEST_##group##_##name##_run(void)
55 #define RUN_TEST_CASE(group, name) \
56 { DECLARE_TEST_CASE(group, name);\
57 TEST_##group##_##name##_run(); }
59 //This goes at the bottom of each test file or in a separate c file
60 #define TEST_GROUP_RUNNER(group)\
61 void TEST_##group##_GROUP_RUNNER_runAll(void);\
62 void TEST_##group##_GROUP_RUNNER(void);\
63 void TEST_##group##_GROUP_RUNNER(void)\
65 TEST_##group##_GROUP_RUNNER_runAll();\
67 void TEST_##group##_GROUP_RUNNER_runAll(void)
70 #define RUN_TEST_GROUP(group)\
71 { void TEST_##group##_GROUP_RUNNER(void);\
72 TEST_##group##_GROUP_RUNNER(); }
74 //CppUTest Compatibility Macros
75 #define UT_PTR_SET(ptr, newPointerValue) UnityPointer_Set((void**)&ptr, (void*)newPointerValue)
76 #define TEST_ASSERT_POINTERS_EQUAL(expected, actual) TEST_ASSERT_EQUAL_PTR(expected, actual)
77 #define TEST_ASSERT_BYTES_EQUAL(expected, actual) TEST_ASSERT_EQUAL_HEX8(0xff & (expected), 0xff & (actual))
78 #define FAIL(message) TEST_FAIL((message))
79 #define CHECK(condition) TEST_ASSERT_TRUE((condition))
80 #define LONGS_EQUAL(expected, actual) TEST_ASSERT_EQUAL_INT((expected), (actual))
81 #define STRCMP_EQUAL(expected, actual) TEST_ASSERT_EQUAL_STRING((expected), (actual))
82 #define DOUBLES_EQUAL(expected, actual, delta) TEST_ASSERT_FLOAT_WITHIN(((expected), (actual), (delta))
84 void UnityMalloc_MakeMallocFailAfterCount(int count);
86 #endif /* UNITY_FIXTURE_H_ */