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