1290001Sglebius//- Copyright (c) 2010 James Grenning and Contributed to Unity Project 2290001Sglebius/* ========================================== 3290001Sglebius Unity Project - A Test Framework for C 4290001Sglebius Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams 5290001Sglebius [Released under MIT License. Please refer to license.txt for details] 6290001Sglebius========================================== */ 7290001Sglebius 8290001Sglebius#ifndef UNITY_FIXTURE_H_ 9290001Sglebius#define UNITY_FIXTURE_H_ 10290001Sglebius 11290001Sglebius#include "unity.h" 12290001Sglebius#include "unity_internals.h" 13290001Sglebius#include "unity_fixture_malloc_overrides.h" 14290001Sglebius#include "unity_fixture_internals.h" 15290001Sglebius 16290001Sglebiusint UnityMain(int argc, const char* argv[], void (*runAllTests)(void)); 17290001Sglebius 18290001Sglebius 19290001Sglebius#define TEST_GROUP(group)\ 20290001Sglebius static const char* TEST_GROUP_##group = #group 21290001Sglebius 22290001Sglebius#define TEST_SETUP(group) void TEST_##group##_SETUP(void);\ 23290001Sglebius void TEST_##group##_SETUP(void) 24290001Sglebius 25290001Sglebius#define TEST_TEAR_DOWN(group) void TEST_##group##_TEAR_DOWN(void);\ 26290001Sglebius void TEST_##group##_TEAR_DOWN(void) 27290001Sglebius 28290001Sglebius 29290001Sglebius#define TEST(group, name) \ 30290001Sglebius void TEST_##group##_##name##_(void);\ 31290001Sglebius void TEST_##group##_##name##_run(void);\ 32290001Sglebius void TEST_##group##_##name##_run(void)\ 33290001Sglebius {\ 34290001Sglebius UnityTestRunner(TEST_##group##_SETUP,\ 35290001Sglebius TEST_##group##_##name##_,\ 36290001Sglebius TEST_##group##_TEAR_DOWN,\ 37290001Sglebius "TEST(" #group ", " #name ")",\ 38290001Sglebius TEST_GROUP_##group, #name,\ 39290001Sglebius __FILE__, __LINE__);\ 40290001Sglebius }\ 41290001Sglebius void TEST_##group##_##name##_(void) 42290001Sglebius 43290001Sglebius#define IGNORE_TEST(group, name) \ 44290001Sglebius void TEST_##group##_##name##_(void);\ 45290001Sglebius void TEST_##group##_##name##_run(void);\ 46290001Sglebius void TEST_##group##_##name##_run(void)\ 47290001Sglebius {\ 48290001Sglebius UnityIgnoreTest("IGNORE_TEST(" #group ", " #name ")");\ 49290001Sglebius }\ 50290001Sglebius void TEST_##group##_##name##_(void) 51290001Sglebius 52290001Sglebius#define DECLARE_TEST_CASE(group, name) \ 53290001Sglebius void TEST_##group##_##name##_run(void) 54290001Sglebius 55290001Sglebius#define RUN_TEST_CASE(group, name) \ 56290001Sglebius { DECLARE_TEST_CASE(group, name);\ 57290001Sglebius TEST_##group##_##name##_run(); } 58290001Sglebius 59290001Sglebius//This goes at the bottom of each test file or in a separate c file 60290001Sglebius#define TEST_GROUP_RUNNER(group)\ 61290001Sglebius void TEST_##group##_GROUP_RUNNER_runAll(void);\ 62290001Sglebius void TEST_##group##_GROUP_RUNNER(void);\ 63290001Sglebius void TEST_##group##_GROUP_RUNNER(void)\ 64290001Sglebius {\ 65290001Sglebius TEST_##group##_GROUP_RUNNER_runAll();\ 66290001Sglebius }\ 67290001Sglebius void TEST_##group##_GROUP_RUNNER_runAll(void) 68290001Sglebius 69290001Sglebius//Call this from main 70290001Sglebius#define RUN_TEST_GROUP(group)\ 71290001Sglebius { void TEST_##group##_GROUP_RUNNER(void);\ 72290001Sglebius TEST_##group##_GROUP_RUNNER(); } 73290001Sglebius 74290001Sglebius//CppUTest Compatibility Macros 75290001Sglebius#define UT_PTR_SET(ptr, newPointerValue) UnityPointer_Set((void**)&ptr, (void*)newPointerValue) 76290001Sglebius#define TEST_ASSERT_POINTERS_EQUAL(expected, actual) TEST_ASSERT_EQUAL_PTR(expected, actual) 77290001Sglebius#define TEST_ASSERT_BYTES_EQUAL(expected, actual) TEST_ASSERT_EQUAL_HEX8(0xff & (expected), 0xff & (actual)) 78290001Sglebius#define FAIL(message) TEST_FAIL((message)) 79290001Sglebius#define CHECK(condition) TEST_ASSERT_TRUE((condition)) 80290001Sglebius#define LONGS_EQUAL(expected, actual) TEST_ASSERT_EQUAL_INT((expected), (actual)) 81290001Sglebius#define STRCMP_EQUAL(expected, actual) TEST_ASSERT_EQUAL_STRING((expected), (actual)) 82290001Sglebius#define DOUBLES_EQUAL(expected, actual, delta) TEST_ASSERT_FLOAT_WITHIN(((expected), (actual), (delta)) 83290001Sglebius 84290001Sglebiusvoid UnityMalloc_MakeMallocFailAfterCount(int count); 85290001Sglebius 86290001Sglebius#endif /* UNITY_FIXTURE_H_ */ 87