xref: /freebsd/contrib/ntp/sntp/unity/unity_fixture.h (revision b5ff185e19f6013ca565b2a15bc2d6abce933f46)
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