unity_fixture.h revision 290001
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
16int 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
84void UnityMalloc_MakeMallocFailAfterCount(int count);
85
86#endif /* UNITY_FIXTURE_H_ */
87