EmbeddedUnit
AssertImpl.h
Go to the documentation of this file.
1 
34 #ifndef __ASSERTIMPL_H__
35 #define __ASSERTIMPL_H__
36 
37 #include <stdImpl.h>
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 void addFailure(const char *msg, unsigned long line, const char *file); /*TestCase.c*/
44 
45 void assertImplementationInt(long expected,long actual, unsigned char base, unsigned long line, const char *file);
46 void assertImplementationUInt(unsigned long expected,unsigned long actual, unsigned char base, unsigned long line, const char *file);
47 void assertImplementationCStr(const char *expected,const char *actual, unsigned long line, const char *file);
48 void assertImplementationMem(const void *expected,const void *actual, int size, unsigned long line, const char *file);
49 
55 #define TEST_ASSERT_EQUAL_STRING(expected,actual)\
56  if (expected && actual && (stdimpl_strcmp(expected,actual)==0)) {} else {assertImplementationCStr(expected,actual,__LINE__,__FILE__);}
57 
64 #define TEST_ASSERT_EQUAL_MEMORY(expected,actual,size)\
65  if ((expected!=NULL) && (actual!=NULL) && (stdimpl_memcmp(expected,actual,size)==0)) {} else {assertImplementationMem(expected,actual,size,__LINE__,__FILE__);}
66 
72 #define TEST_ASSERT_EQUAL_INT(expected,actual)\
73  if (expected == actual) {} else {assertImplementationInt(expected,actual, 10,__LINE__,__FILE__);}
74 
80 #define TEST_ASSERT_EQUAL_UINT(expected,actual)\
81  if (expected == actual) {} else {assertImplementationUInt(expected,actual, 10,__LINE__,__FILE__);}
82 
88 #define TEST_ASSERT_EQUAL_HEX(expected,actual)\
89  if (expected == actual) {} else {assertImplementationUInt(expected,actual, 16,__LINE__,__FILE__);}
90 
96 #define TEST_ASSERT_EQUAL_PTR(expected,actual)\
97  if ((void*)expected == (void*)actual) {} else {assertImplementationUInt((int)expected,(int)actual, 16,__LINE__,__FILE__);}
98 
105 #define TEST_ASSERT_EQUAL_INT_WITH_MARGIN(expected,actual,margin)\
106  TEST_ASSERT_EQUAL_WITH_MARGIN(expected,actual,margin)
107 
114 #define TEST_ASSERT_EQUAL_WITH_MARGIN(expected,actual,margin)\
115  do { \
116  long __margin = margin; \
117  if (margin < 0) __margin = -margin; \
118  if( expected > actual ) { \
119  if( (expected - actual) <= __margin ) {} \
120  else {assertImplementationInt(expected,actual,10,__LINE__,__FILE__);} \
121  } \
122  else { \
123  if( (actual - expected) <= __margin ) {} \
124  else {assertImplementationInt(expected,actual,10,__LINE__,__FILE__);} \
125  } \
126  } while(0)
127 
134 #define TEST_ASSERT_EQUAL_UINT_WITH_MARGIN(expected,actual,margin)\
135  do { \
136  unsigned long __margin = margin; \
137  if( expected > actual ) { \
138  if( (expected - actual) <= __margin ) {} \
139  else {assertImplementationUInt(expected,actual,10,__LINE__,__FILE__);} \
140  } \
141  else { \
142  if( (actual - expected) <= __margin ) {} \
143  else {assertImplementationUInt(expected,actual,10,__LINE__,__FILE__);} \
144  } \
145  } while(0)
146 
152 #define TEST_ASSERT_NOT_LOWER_THAN_INT(min, actual)\
153  if (actual < min) { \
154  assertImplementationInt(min, actual, 10, __LINE__, __FILE__); \
155  }
156 
162 #define TEST_ASSERT_NOT_HIGHER_THAN_INT(max, actual)\
163  if (actual > max) { \
164  assertImplementationInt(max, actual, 10, __LINE__, __FILE__); \
165  }
166 
173 #define TEST_ASSERT_RANGE_INT(min, max, actual)\
174  do { \
175  TEST_ASSERT_NOT_LOWER_THAN_INT(min, actual)\
176  TEST_ASSERT_NOT_HIGHER_THAN_INT(max, actual)\
177  } while(0)
178 
184 #define TEST_ASSERT_NOT_LOWER_THAN_UINT(min, actual)\
185  if (actual < min) { \
186  assertImplementationUInt(min, actual, 10, __LINE__, __FILE__); \
187  }
188 
194 #define TEST_ASSERT_NOT_HIGHER_THAN_UINT(max, actual)\
195  if (actual > max) { \
196  assertImplementationUInt(max, actual, 10, __LINE__, __FILE__); \
197  }
198 
205 #define TEST_ASSERT_RANGE_UINT(min, max, actual)\
206  do { \
207  TEST_ASSERT_NOT_LOWER_THAN_UINT(min, actual)\
208  TEST_ASSERT_NOT_HIGHER_THAN_UINT(max, actual)\
209  } while(0)
210 
215 #define TEST_ASSERT_NULL(pointer)\
216  TEST_ASSERT_MESSAGE(pointer == NULL,#pointer " was not null.")
217 
222 #define TEST_ASSERT_NOT_NULL(pointer)\
223  TEST_ASSERT_MESSAGE(pointer != NULL,#pointer " was null.")
224 
230 #define TEST_ASSERT_MESSAGE(condition, message)\
231  if (condition) {} else {TEST_FAIL(message);}
232 
237 #define TEST_ASSERT(condition)\
238  if (condition) {} else {TEST_FAIL(#condition);}
239 
244 #define TEST_FAIL(message)\
245  if (0) {} else {addFailure(message,__LINE__,__FILE__);}
246 
247 #ifdef __cplusplus
248 }
249 #endif
250 
251 #endif/*__ASSERTIMPL_H__*/
void assertImplementationUInt(unsigned long expected, unsigned long actual, unsigned char base, unsigned long line, const char *file)
Definition: AssertImpl.c:77
void assertImplementationMem(const void *expected, const void *actual, int size, unsigned long line, const char *file)
Definition: AssertImpl.c:160
void assertImplementationCStr(const char *expected, const char *actual, unsigned long line, const char *file)
Definition: AssertImpl.c:106
void assertImplementationInt(long expected, long actual, unsigned char base, unsigned long line, const char *file)
Definition: AssertImpl.c:47