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 ========================================== */ 7 8 #ifndef UNITY_FIXTURE_H_ 9 #define UNITY_FIXTURE_H_ 10 11 #include "unity.h" 12 #include "unity_internals.h" 13 #include "unity_fixture_malloc_overrides.h" 14 #include "unity_fixture_internals.h" 15 16 int UnityMain(int argc, const char* argv[], void (*runAllTests)(void)); 17 18 19 #define TEST_GROUP(group)\ 20 static const char* TEST_GROUP_##group = #group 21 22 #define TEST_SETUP(group) void TEST_##group##_SETUP(void);\ 23 void TEST_##group##_SETUP(void) 24 25 #define TEST_TEAR_DOWN(group) void TEST_##group##_TEAR_DOWN(void);\ 26 void TEST_##group##_TEAR_DOWN(void) 27 28 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)\ 33 {\ 34 UnityTestRunner(TEST_##group##_SETUP,\ 35 TEST_##group##_##name##_,\ 36 TEST_##group##_TEAR_DOWN,\ 37 "TEST(" #group ", " #name ")",\ 38 TEST_GROUP_##group, #name,\ 39 __FILE__, __LINE__);\ 40 }\ 41 void TEST_##group##_##name##_(void) 42 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)\ 47 {\ 48 UnityIgnoreTest("IGNORE_TEST(" #group ", " #name ")");\ 49 }\ 50 void TEST_##group##_##name##_(void) 51 52 #define DECLARE_TEST_CASE(group, name) \ 53 void TEST_##group##_##name##_run(void) 54 55 #define RUN_TEST_CASE(group, name) \ 56 { DECLARE_TEST_CASE(group, name);\ 57 TEST_##group##_##name##_run(); } 58 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)\ 64 {\ 65 TEST_##group##_GROUP_RUNNER_runAll();\ 66 }\ 67 void TEST_##group##_GROUP_RUNNER_runAll(void) 68 69 //Call this from main 70 #define RUN_TEST_GROUP(group)\ 71 { void TEST_##group##_GROUP_RUNNER(void);\ 72 TEST_##group##_GROUP_RUNNER(); } 73 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)) 83 84 void UnityMalloc_MakeMallocFailAfterCount(int count); 85 86 #endif /* UNITY_FIXTURE_H_ */ 87