Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-os by
unity_internals.h
00001 00002 /** \addtogroup frameworks */ 00003 /** @{*/ 00004 /* ========================================== 00005 Unity Project - A Test Framework for C 00006 Copyright (c) 2007-14 Mike Karlesky, Mark VanderVoord, Greg Williams 00007 [Released under MIT License. Please refer to license.txt for details] 00008 ========================================== */ 00009 00010 #ifndef UNITY_INTERNALS_H 00011 #define UNITY_INTERNALS_H 00012 00013 #ifdef UNITY_INCLUDE_CONFIG_H 00014 #include "unity_config.h" 00015 #endif 00016 00017 #include <setjmp.h> 00018 00019 /* Unity Attempts to Auto-Detect Integer Types 00020 * Attempt 1: UINT_MAX, ULONG_MAX, etc in <stdint.h> 00021 * Attempt 2: UINT_MAX, ULONG_MAX, etc in <limits.h> 00022 * Attempt 3: Deduced from sizeof() macros */ 00023 #ifndef UNITY_EXCLUDE_STDINT_H 00024 #include <stdint.h> 00025 #endif 00026 00027 #ifndef UNITY_EXCLUDE_LIMITS_H 00028 #include <limits.h> 00029 #endif 00030 00031 #ifndef UNITY_EXCLUDE_SIZEOF 00032 #ifndef UINT_MAX 00033 #define UINT_MAX (sizeof(unsigned int) * 256 - 1) 00034 #endif 00035 #ifndef ULONG_MAX 00036 #define ULONG_MAX (sizeof(unsigned long) * 256 - 1) 00037 #endif 00038 #ifndef UINTPTR_MAX 00039 /* apparently this is not a constant expression: (sizeof(unsigned int *) * 256 - 1) so we have to just let this fall through */ 00040 #endif 00041 #endif 00042 00043 #ifndef UNITY_EXCLUDE_MATH_H 00044 #include <math.h> 00045 #endif 00046 00047 /*------------------------------------------------------- 00048 * Guess Widths If Not Specified 00049 *-------------------------------------------------------*/ 00050 00051 /* Determine the size of an int, if not already specificied. 00052 * We cannot use sizeof(int), because it is not yet defined 00053 * at this stage in the trnslation of the C program. 00054 * Therefore, infer it from UINT_MAX if possible. */ 00055 #ifndef UNITY_INT_WIDTH 00056 #ifdef UINT_MAX 00057 #if (UINT_MAX == 0xFFFF) 00058 #define UNITY_INT_WIDTH (16) 00059 #elif (UINT_MAX == 0xFFFFFFFF) 00060 #define UNITY_INT_WIDTH (32) 00061 #elif (UINT_MAX == 0xFFFFFFFFFFFFFFFF) 00062 #define UNITY_INT_WIDTH (64) 00063 #endif 00064 #endif 00065 #endif 00066 #ifndef UNITY_INT_WIDTH 00067 #define UNITY_INT_WIDTH (32) 00068 #endif 00069 00070 /* Determine the size of a long, if not already specified, 00071 * by following the process used above to define 00072 * UNITY_INT_WIDTH. */ 00073 #ifndef UNITY_LONG_WIDTH 00074 #ifdef ULONG_MAX 00075 #if (ULONG_MAX == 0xFFFF) 00076 #define UNITY_LONG_WIDTH (16) 00077 #elif (ULONG_MAX == 0xFFFFFFFF) 00078 #define UNITY_LONG_WIDTH (32) 00079 #elif (ULONG_MAX == 0xFFFFFFFFFFFFFFFF) 00080 #define UNITY_LONG_WIDTH (64) 00081 #endif 00082 #endif 00083 #endif 00084 #ifndef UNITY_LONG_WIDTH 00085 #define UNITY_LONG_WIDTH (32) 00086 #endif 00087 00088 /* Determine the size of a pointer, if not already specified, 00089 * by following the process used above to define 00090 * UNITY_INT_WIDTH. */ 00091 #ifndef UNITY_POINTER_WIDTH 00092 #ifdef UINTPTR_MAX 00093 #if (UINTPTR_MAX+0 <= 0xFFFF) 00094 #define UNITY_POINTER_WIDTH (16) 00095 #elif (UINTPTR_MAX+0 <= 0xFFFFFFFF) 00096 #define UNITY_POINTER_WIDTH (32) 00097 #elif (UINTPTR_MAX+0 <= 0xFFFFFFFFFFFFFFFF) 00098 #define UNITY_POINTER_WIDTH (64) 00099 #endif 00100 #endif 00101 #endif 00102 #ifndef UNITY_POINTER_WIDTH 00103 #ifdef INTPTR_MAX 00104 #if (INTPTR_MAX+0 <= 0x7FFF) 00105 #define UNITY_POINTER_WIDTH (16) 00106 #elif (INTPTR_MAX+0 <= 0x7FFFFFFF) 00107 #define UNITY_POINTER_WIDTH (32) 00108 #elif (INTPTR_MAX+0 <= 0x7FFFFFFFFFFFFFFF) 00109 #define UNITY_POINTER_WIDTH (64) 00110 #endif 00111 #endif 00112 #endif 00113 #ifndef UNITY_POINTER_WIDTH 00114 #define UNITY_POINTER_WIDTH UNITY_LONG_WIDTH 00115 #endif 00116 00117 /*------------------------------------------------------- 00118 * Int Support (Define types based on detected sizes) 00119 *-------------------------------------------------------*/ 00120 00121 #if (UNITY_INT_WIDTH == 32) 00122 typedef unsigned char _UU8; 00123 typedef unsigned short _UU16; 00124 typedef unsigned int _UU32; 00125 typedef signed char _US8; 00126 typedef signed short _US16; 00127 typedef signed int _US32; 00128 #elif (UNITY_INT_WIDTH == 16) 00129 typedef unsigned char _UU8; 00130 typedef unsigned int _UU16; 00131 typedef unsigned long _UU32; 00132 typedef signed char _US8; 00133 typedef signed int _US16; 00134 typedef signed long _US32; 00135 #else 00136 #error Invalid UNITY_INT_WIDTH specified! (16 or 32 are supported) 00137 #endif 00138 00139 /*------------------------------------------------------- 00140 * 64-bit Support 00141 *-------------------------------------------------------*/ 00142 00143 #ifndef UNITY_SUPPORT_64 00144 #if UNITY_LONG_WIDTH > 32 00145 #define UNITY_SUPPORT_64 00146 #endif 00147 #endif 00148 #ifndef UNITY_SUPPORT_64 00149 #if UNITY_POINTER_WIDTH > 32 00150 #define UNITY_SUPPORT_64 00151 #endif 00152 #endif 00153 00154 #ifndef UNITY_SUPPORT_64 00155 00156 /* No 64-bit Support */ 00157 typedef _UU32 _U_UINT; 00158 typedef _US32 _U_SINT; 00159 00160 #else 00161 00162 /* 64-bit Support */ 00163 #if (UNITY_LONG_WIDTH == 32) 00164 typedef unsigned long long _UU64; 00165 typedef signed long long _US64; 00166 #elif (UNITY_LONG_WIDTH == 64) 00167 typedef unsigned long _UU64; 00168 typedef signed long _US64; 00169 #else 00170 #error Invalid UNITY_LONG_WIDTH specified! (32 or 64 are supported) 00171 #endif 00172 typedef _UU64 _U_UINT; 00173 typedef _US64 _U_SINT; 00174 00175 #endif 00176 00177 /*------------------------------------------------------- 00178 * Pointer Support 00179 *-------------------------------------------------------*/ 00180 00181 #if (UNITY_POINTER_WIDTH == 32) 00182 typedef _UU32 _UP; 00183 #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX32 00184 #elif (UNITY_POINTER_WIDTH == 64) 00185 typedef _UU64 _UP; 00186 #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX64 00187 #elif (UNITY_POINTER_WIDTH == 16) 00188 typedef _UU16 _UP; 00189 #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX16 00190 #else 00191 #error Invalid UNITY_POINTER_WIDTH specified! (16, 32 or 64 are supported) 00192 #endif 00193 00194 #ifndef UNITY_PTR_ATTRIBUTE 00195 #define UNITY_PTR_ATTRIBUTE 00196 #endif 00197 00198 #ifndef UNITY_INTERNAL_PTR 00199 #define UNITY_INTERNAL_PTR UNITY_PTR_ATTRIBUTE const void* 00200 /* #define UNITY_INTERNAL_PTR UNITY_PTR_ATTRIBUTE const _UU8* */ 00201 #endif 00202 00203 /*------------------------------------------------------- 00204 * Float Support 00205 *-------------------------------------------------------*/ 00206 00207 #ifdef UNITY_EXCLUDE_FLOAT 00208 00209 /* No Floating Point Support */ 00210 #undef UNITY_INCLUDE_FLOAT 00211 #undef UNITY_FLOAT_PRECISION 00212 #undef UNITY_FLOAT_TYPE 00213 #undef UNITY_FLOAT_VERBOSE 00214 00215 #else 00216 00217 #ifndef UNITY_INCLUDE_FLOAT 00218 #define UNITY_INCLUDE_FLOAT 00219 #endif 00220 00221 /* Floating Point Support */ 00222 #ifndef UNITY_FLOAT_PRECISION 00223 #define UNITY_FLOAT_PRECISION (0.00001f) 00224 #endif 00225 #ifndef UNITY_FLOAT_TYPE 00226 #define UNITY_FLOAT_TYPE float 00227 #endif 00228 typedef UNITY_FLOAT_TYPE _UF; 00229 00230 #ifndef isinf 00231 #define isinf(n) (((1.0f / f_zero) == n) ? 1 : 0) || (((-1.0f / f_zero) == n) ? 1 : 0) 00232 #define UNITY_FLOAT_NEEDS_ZERO 00233 #endif 00234 00235 #ifndef isnan 00236 #define isnan(n) ((n != n) ? 1 : 0) 00237 #endif 00238 00239 #ifndef isneg 00240 #define isneg(n) ((n < 0.0f) ? 1 : 0) 00241 #endif 00242 00243 #ifndef ispos 00244 #define ispos(n) ((n > 0.0f) ? 1 : 0) 00245 #endif 00246 00247 #endif 00248 00249 /*------------------------------------------------------- 00250 * Double Float Support 00251 *-------------------------------------------------------*/ 00252 00253 /* unlike FLOAT, we DON'T include by default */ 00254 #ifndef UNITY_EXCLUDE_DOUBLE 00255 #ifndef UNITY_INCLUDE_DOUBLE 00256 #define UNITY_EXCLUDE_DOUBLE 00257 #endif 00258 #endif 00259 00260 #ifdef UNITY_EXCLUDE_DOUBLE 00261 00262 /* No Floating Point Support */ 00263 #undef UNITY_DOUBLE_PRECISION 00264 #undef UNITY_DOUBLE_TYPE 00265 #undef UNITY_DOUBLE_VERBOSE 00266 00267 #ifdef UNITY_INCLUDE_DOUBLE 00268 #undef UNITY_INCLUDE_DOUBLE 00269 #endif 00270 00271 #else 00272 00273 /* Double Floating Point Support */ 00274 #ifndef UNITY_DOUBLE_PRECISION 00275 #define UNITY_DOUBLE_PRECISION (1e-12f) 00276 #endif 00277 #ifndef UNITY_DOUBLE_TYPE 00278 #define UNITY_DOUBLE_TYPE double 00279 #endif 00280 typedef UNITY_DOUBLE_TYPE _UD; 00281 00282 #endif 00283 00284 #ifdef UNITY_DOUBLE_VERBOSE 00285 #ifndef UNITY_FLOAT_VERBOSE 00286 #define UNITY_FLOAT_VERBOSE 00287 #endif 00288 #endif 00289 00290 /*------------------------------------------------------- 00291 * Output Method: stdout (DEFAULT) 00292 *-------------------------------------------------------*/ 00293 #ifndef UNITY_OUTPUT_CHAR 00294 /* Default to using putchar, which is defined in stdio.h */ 00295 #include <stdio.h> 00296 #define UNITY_OUTPUT_CHAR(a) (void)putchar(a) 00297 #else 00298 /* If defined as something else, make sure we declare it here so it's ready for use */ 00299 #ifndef UNITY_OMIT_OUTPUT_CHAR_HEADER_DECLARATION 00300 extern void UNITY_OUTPUT_CHAR(int); 00301 #endif 00302 #endif 00303 00304 #ifndef UNITY_OUTPUT_FLUSH 00305 /* Default to using putchar, which is defined in stdio.h */ 00306 #include <stdio.h> 00307 #define UNITY_OUTPUT_FLUSH() (void)fflush(stdout) 00308 #else 00309 /* If defined as something else, make sure we declare it here so it's ready for use */ 00310 #ifndef UNITY_OMIT_OUTPUT_FLUSH_HEADER_DECLARATION 00311 extern void UNITY_OUTPUT_FLUSH(void); 00312 #endif 00313 #endif 00314 00315 #ifndef UNITY_PRINT_EOL 00316 #define UNITY_PRINT_EOL() UNITY_OUTPUT_CHAR('\n') 00317 #endif 00318 00319 #ifndef UNITY_OUTPUT_START 00320 #define UNITY_OUTPUT_START() 00321 #endif 00322 00323 #ifndef UNITY_OUTPUT_COMPLETE 00324 #define UNITY_OUTPUT_COMPLETE() 00325 #endif 00326 00327 /*------------------------------------------------------- 00328 * Footprint 00329 *-------------------------------------------------------*/ 00330 00331 #ifndef UNITY_LINE_TYPE 00332 #define UNITY_LINE_TYPE _U_UINT 00333 #endif 00334 00335 #ifndef UNITY_COUNTER_TYPE 00336 #define UNITY_COUNTER_TYPE _U_UINT 00337 #endif 00338 00339 /*------------------------------------------------------- 00340 * Language Features Available 00341 *-------------------------------------------------------*/ 00342 #if !defined(UNITY_WEAK_ATTRIBUTE) && !defined(UNITY_WEAK_PRAGMA) 00343 # ifdef __GNUC__ /* includes clang */ 00344 # if !(defined(__WIN32__) && defined(__clang__)) 00345 # define UNITY_WEAK_ATTRIBUTE __attribute__((weak)) 00346 # endif 00347 # endif 00348 #endif 00349 00350 #ifdef UNITY_NO_WEAK 00351 # undef UNITY_WEAK_ATTRIBUTE 00352 # undef UNITY_WEAK_PRAGMA 00353 #endif 00354 00355 00356 /*------------------------------------------------------- 00357 * Internal Structs Needed 00358 *-------------------------------------------------------*/ 00359 00360 typedef void (*UnityTestFunction)(void); 00361 00362 #define UNITY_DISPLAY_RANGE_INT (0x10) 00363 #define UNITY_DISPLAY_RANGE_UINT (0x20) 00364 #define UNITY_DISPLAY_RANGE_HEX (0x40) 00365 #define UNITY_DISPLAY_RANGE_AUTO (0x80) 00366 00367 typedef enum 00368 { 00369 #if (UNITY_INT_WIDTH == 16) 00370 UNITY_DISPLAY_STYLE_INT = 2 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO, 00371 #elif (UNITY_INT_WIDTH == 32) 00372 UNITY_DISPLAY_STYLE_INT = 4 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO, 00373 #elif (UNITY_INT_WIDTH == 64) 00374 UNITY_DISPLAY_STYLE_INT = 8 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO, 00375 #endif 00376 UNITY_DISPLAY_STYLE_INT8 = 1 + UNITY_DISPLAY_RANGE_INT, 00377 UNITY_DISPLAY_STYLE_INT16 = 2 + UNITY_DISPLAY_RANGE_INT, 00378 UNITY_DISPLAY_STYLE_INT32 = 4 + UNITY_DISPLAY_RANGE_INT, 00379 #ifdef UNITY_SUPPORT_64 00380 UNITY_DISPLAY_STYLE_INT64 = 8 + UNITY_DISPLAY_RANGE_INT, 00381 #endif 00382 00383 #if (UNITY_INT_WIDTH == 16) 00384 UNITY_DISPLAY_STYLE_UINT = 2 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO, 00385 #elif (UNITY_INT_WIDTH == 32) 00386 UNITY_DISPLAY_STYLE_UINT = 4 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO, 00387 #elif (UNITY_INT_WIDTH == 64) 00388 UNITY_DISPLAY_STYLE_UINT = 8 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO, 00389 #endif 00390 UNITY_DISPLAY_STYLE_UINT8 = 1 + UNITY_DISPLAY_RANGE_UINT, 00391 UNITY_DISPLAY_STYLE_UINT16 = 2 + UNITY_DISPLAY_RANGE_UINT, 00392 UNITY_DISPLAY_STYLE_UINT32 = 4 + UNITY_DISPLAY_RANGE_UINT, 00393 #ifdef UNITY_SUPPORT_64 00394 UNITY_DISPLAY_STYLE_UINT64 = 8 + UNITY_DISPLAY_RANGE_UINT, 00395 #endif 00396 UNITY_DISPLAY_STYLE_HEX8 = 1 + UNITY_DISPLAY_RANGE_HEX, 00397 UNITY_DISPLAY_STYLE_HEX16 = 2 + UNITY_DISPLAY_RANGE_HEX, 00398 UNITY_DISPLAY_STYLE_HEX32 = 4 + UNITY_DISPLAY_RANGE_HEX, 00399 #ifdef UNITY_SUPPORT_64 00400 UNITY_DISPLAY_STYLE_HEX64 = 8 + UNITY_DISPLAY_RANGE_HEX, 00401 #endif 00402 UNITY_DISPLAY_STYLE_UNKNOWN 00403 } UNITY_DISPLAY_STYLE_T; 00404 00405 #ifndef UNITY_EXCLUDE_FLOAT 00406 typedef enum _UNITY_FLOAT_TRAIT_T 00407 { 00408 UNITY_FLOAT_IS_NOT_INF = 0, 00409 UNITY_FLOAT_IS_INF, 00410 UNITY_FLOAT_IS_NOT_NEG_INF, 00411 UNITY_FLOAT_IS_NEG_INF, 00412 UNITY_FLOAT_IS_NOT_NAN, 00413 UNITY_FLOAT_IS_NAN, 00414 UNITY_FLOAT_IS_NOT_DET, 00415 UNITY_FLOAT_IS_DET, 00416 UNITY_FLOAT_INVALID_TRAIT 00417 } UNITY_FLOAT_TRAIT_T; 00418 #endif 00419 00420 struct _Unity 00421 { 00422 const char* TestFile; 00423 const char* CurrentTestName; 00424 #ifndef UNITY_EXCLUDE_DETAILS 00425 const char* CurrentDetail1; 00426 const char* CurrentDetail2; 00427 #endif 00428 UNITY_LINE_TYPE CurrentTestLineNumber; 00429 UNITY_COUNTER_TYPE NumberOfTests; 00430 UNITY_COUNTER_TYPE TestFailures; 00431 UNITY_COUNTER_TYPE TestIgnores; 00432 UNITY_COUNTER_TYPE CurrentTestFailed; 00433 UNITY_COUNTER_TYPE CurrentTestIgnored; 00434 jmp_buf AbortFrame; 00435 }; 00436 00437 extern struct _Unity Unity; 00438 00439 #ifdef __cplusplus 00440 extern "C" { 00441 #endif 00442 00443 /*------------------------------------------------------- 00444 * Test Suite Management 00445 *-------------------------------------------------------*/ 00446 00447 00448 void UnityBegin(const char* filename); 00449 int UnityEnd(void); 00450 void UnityConcludeTest(void); 00451 void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum); 00452 00453 /*------------------------------------------------------- 00454 * Details Support 00455 *-------------------------------------------------------*/ 00456 00457 #ifdef UNITY_EXCLUDE_DETAILS 00458 #define UNITY_CLR_DETAILS() 00459 #define UNITY_SET_DETAIL(d1) 00460 #define UNITY_SET_DETAILS(d1,d2) 00461 #else 00462 #define UNITY_CLR_DETAILS() { Unity.CurrentDetail1 = 0; Unity.CurrentDetail2 = 0; } 00463 #define UNITY_SET_DETAIL(d1) { Unity.CurrentDetail1 = d1; Unity.CurrentDetail2 = 0; } 00464 #define UNITY_SET_DETAILS(d1,d2) { Unity.CurrentDetail1 = d1; Unity.CurrentDetail2 = d2; } 00465 00466 #ifndef UNITY_DETAIL1_NAME 00467 #define UNITY_DETAIL1_NAME "Function" 00468 #endif 00469 00470 #ifndef UNITY_DETAIL2_NAME 00471 #define UNITY_DETAIL2_NAME "Argument" 00472 #endif 00473 #endif 00474 00475 /*------------------------------------------------------- 00476 * Test Output 00477 *-------------------------------------------------------*/ 00478 00479 void UnityPrint(const char* string); 00480 void UnityPrintMask(const _U_UINT mask, const _U_UINT number); 00481 void UnityPrintNumberByStyle(const _U_SINT number, const UNITY_DISPLAY_STYLE_T style); 00482 void UnityPrintNumber(const _U_SINT number); 00483 void UnityPrintNumberUnsigned(const _U_UINT number); 00484 void UnityPrintNumberHex(const _U_UINT number, const char nibbles); 00485 00486 #ifdef UNITY_FLOAT_VERBOSE 00487 void UnityPrintFloat(const _UF number); 00488 #endif 00489 00490 /*------------------------------------------------------- 00491 * Test Assertion Fuctions 00492 *------------------------------------------------------- 00493 * Use the macros below this section instead of calling 00494 * these directly. The macros have a consistent naming 00495 * convention and will pull in file and line information 00496 * for you. */ 00497 00498 void UnityAssertEqualNumber(const _U_SINT expected, 00499 const _U_SINT actual, 00500 const char* msg, 00501 const UNITY_LINE_TYPE lineNumber, 00502 const UNITY_DISPLAY_STYLE_T style); 00503 00504 void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected, 00505 UNITY_INTERNAL_PTR actual, 00506 const _UU32 num_elements, 00507 const char* msg, 00508 const UNITY_LINE_TYPE lineNumber, 00509 const UNITY_DISPLAY_STYLE_T style); 00510 00511 void UnityAssertBits(const _U_SINT mask, 00512 const _U_SINT expected, 00513 const _U_SINT actual, 00514 const char* msg, 00515 const UNITY_LINE_TYPE lineNumber); 00516 00517 void UnityAssertEqualString(const char* expected, 00518 const char* actual, 00519 const char* msg, 00520 const UNITY_LINE_TYPE lineNumber); 00521 00522 void UnityAssertEqualStringLen(const char* expected, 00523 const char* actual, 00524 const _UU32 length, 00525 const char* msg, 00526 const UNITY_LINE_TYPE lineNumber); 00527 00528 void UnityAssertEqualStringArray( const char** expected, 00529 const char** actual, 00530 const _UU32 num_elements, 00531 const char* msg, 00532 const UNITY_LINE_TYPE lineNumber); 00533 00534 void UnityAssertEqualMemory( UNITY_INTERNAL_PTR expected, 00535 UNITY_INTERNAL_PTR actual, 00536 const _UU32 length, 00537 const _UU32 num_elements, 00538 const char* msg, 00539 const UNITY_LINE_TYPE lineNumber); 00540 00541 void UnityAssertNumbersWithin(const _U_UINT delta, 00542 const _U_SINT expected, 00543 const _U_SINT actual, 00544 const char* msg, 00545 const UNITY_LINE_TYPE lineNumber, 00546 const UNITY_DISPLAY_STYLE_T style); 00547 00548 void UnityFail(const char* message, const UNITY_LINE_TYPE line); 00549 00550 void UnityIgnore(const char* message, const UNITY_LINE_TYPE line); 00551 00552 #ifndef UNITY_EXCLUDE_FLOAT 00553 void UnityAssertFloatsWithin(const _UF delta, 00554 const _UF expected, 00555 const _UF actual, 00556 const char* msg, 00557 const UNITY_LINE_TYPE lineNumber); 00558 00559 void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const _UF* expected, 00560 UNITY_PTR_ATTRIBUTE const _UF* actual, 00561 const _UU32 num_elements, 00562 const char* msg, 00563 const UNITY_LINE_TYPE lineNumber); 00564 00565 void UnityAssertFloatSpecial(const _UF actual, 00566 const char* msg, 00567 const UNITY_LINE_TYPE lineNumber, 00568 const UNITY_FLOAT_TRAIT_T style); 00569 #endif 00570 00571 #ifndef UNITY_EXCLUDE_DOUBLE 00572 void UnityAssertDoublesWithin(const _UD delta, 00573 const _UD expected, 00574 const _UD actual, 00575 const char* msg, 00576 const UNITY_LINE_TYPE lineNumber); 00577 00578 void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const _UD* expected, 00579 UNITY_PTR_ATTRIBUTE const _UD* actual, 00580 const _UU32 num_elements, 00581 const char* msg, 00582 const UNITY_LINE_TYPE lineNumber); 00583 00584 void UnityAssertDoubleSpecial(const _UD actual, 00585 const char* msg, 00586 const UNITY_LINE_TYPE lineNumber, 00587 const UNITY_FLOAT_TRAIT_T style); 00588 #endif 00589 00590 #ifdef __cplusplus 00591 } 00592 #endif // __cplusplus 00593 00594 /*------------------------------------------------------- 00595 * Error Strings We Might Need 00596 *-------------------------------------------------------*/ 00597 00598 extern const char UnityStrErrFloat[]; 00599 extern const char UnityStrErrDouble[]; 00600 extern const char UnityStrErr64[]; 00601 00602 /*------------------------------------------------------- 00603 * Test Running Macros 00604 *-------------------------------------------------------*/ 00605 00606 #define TEST_PROTECT() (setjmp(Unity.AbortFrame) == 0) 00607 00608 #define TEST_ABORT() {longjmp(Unity.AbortFrame, 1);} 00609 00610 /* This tricky series of macros gives us an optional line argument to treat it as RUN_TEST(func, num=__LINE__) */ 00611 #ifndef RUN_TEST 00612 #ifdef __STDC_VERSION__ 00613 #if __STDC_VERSION__ >= 199901L 00614 #define RUN_TEST(...) UnityDefaultTestRun(RUN_TEST_FIRST(__VA_ARGS__), RUN_TEST_SECOND(__VA_ARGS__)) 00615 #define RUN_TEST_FIRST(...) RUN_TEST_FIRST_HELPER(__VA_ARGS__, throwaway) 00616 #define RUN_TEST_FIRST_HELPER(first, ...) (first), #first 00617 #define RUN_TEST_SECOND(...) RUN_TEST_SECOND_HELPER(__VA_ARGS__, __LINE__, throwaway) 00618 #define RUN_TEST_SECOND_HELPER(first, second, ...) (second) 00619 #endif 00620 #endif 00621 #endif 00622 00623 /* If we can't do the tricky version, we'll just have to require them to always include the line number */ 00624 #ifndef RUN_TEST 00625 #ifdef CMOCK 00626 #define RUN_TEST(func, num) UnityDefaultTestRun(func, #func, num) 00627 #else 00628 #define RUN_TEST(func) UnityDefaultTestRun(func, #func, __LINE__) 00629 #endif 00630 #endif 00631 00632 #define TEST_LINE_NUM (Unity.CurrentTestLineNumber) 00633 #define TEST_IS_IGNORED (Unity.CurrentTestIgnored) 00634 #define UNITY_NEW_TEST(a) \ 00635 Unity.CurrentTestName = (a); \ 00636 Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)(__LINE__); \ 00637 Unity.NumberOfTests++; 00638 00639 #ifndef UNITY_BEGIN 00640 #define UNITY_BEGIN() UnityBegin(__FILE__) 00641 #endif 00642 00643 #ifndef UNITY_END 00644 #define UNITY_END() UnityEnd() 00645 #endif 00646 00647 #define UNITY_UNUSED(x) (void)(sizeof(x)) 00648 00649 /*------------------------------------------------------- 00650 * Basic Fail and Ignore 00651 *-------------------------------------------------------*/ 00652 00653 #define UNITY_TEST_FAIL(line, message) UnityFail( (message), (UNITY_LINE_TYPE)(line)) 00654 #define UNITY_TEST_IGNORE(line, message) UnityIgnore( (message), (UNITY_LINE_TYPE)(line)) 00655 00656 /*------------------------------------------------------- 00657 * Test Asserts 00658 *-------------------------------------------------------*/ 00659 00660 #define UNITY_TEST_ASSERT(condition, line, message) if (condition) {} else {UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), (message));} 00661 #define UNITY_TEST_ASSERT_NULL(pointer, line, message) UNITY_TEST_ASSERT(((pointer) == NULL), (UNITY_LINE_TYPE)(line), (message)) 00662 #define UNITY_TEST_ASSERT_NOT_NULL(pointer, line, message) UNITY_TEST_ASSERT(((pointer) != NULL), (UNITY_LINE_TYPE)(line), (message)) 00663 00664 #define UNITY_TEST_ASSERT_EQUAL_INT(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) 00665 #define UNITY_TEST_ASSERT_EQUAL_INT8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) 00666 #define UNITY_TEST_ASSERT_EQUAL_INT16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) 00667 #define UNITY_TEST_ASSERT_EQUAL_INT32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) 00668 #define UNITY_TEST_ASSERT_EQUAL_UINT(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) 00669 #define UNITY_TEST_ASSERT_EQUAL_UINT8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_UU8 )(expected), (_U_SINT)(_UU8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) 00670 #define UNITY_TEST_ASSERT_EQUAL_UINT16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_UU16)(expected), (_U_SINT)(_UU16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) 00671 #define UNITY_TEST_ASSERT_EQUAL_UINT32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_UU32)(expected), (_U_SINT)(_UU32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) 00672 #define UNITY_TEST_ASSERT_EQUAL_HEX8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) 00673 #define UNITY_TEST_ASSERT_EQUAL_HEX16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) 00674 #define UNITY_TEST_ASSERT_EQUAL_HEX32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) 00675 #define UNITY_TEST_ASSERT_BITS(mask, expected, actual, line, message) UnityAssertBits((_U_SINT)(mask), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line)) 00676 00677 #define UNITY_TEST_ASSERT_INT_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) 00678 #define UNITY_TEST_ASSERT_INT8_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_UU8 )(delta), (_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) 00679 #define UNITY_TEST_ASSERT_INT16_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_UU16)(delta), (_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) 00680 #define UNITY_TEST_ASSERT_INT32_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_UU32)(delta), (_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) 00681 #define UNITY_TEST_ASSERT_UINT_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) 00682 #define UNITY_TEST_ASSERT_UINT8_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_UU8 )(delta), (_U_SINT)(_U_UINT)(_UU8 )(expected), (_U_SINT)(_U_UINT)(_UU8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) 00683 #define UNITY_TEST_ASSERT_UINT16_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_UU16)(delta), (_U_SINT)(_U_UINT)(_UU16)(expected), (_U_SINT)(_U_UINT)(_UU16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) 00684 #define UNITY_TEST_ASSERT_UINT32_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_UU32)(delta), (_U_SINT)(_U_UINT)(_UU32)(expected), (_U_SINT)(_U_UINT)(_UU32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) 00685 #define UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_UU8 )(delta), (_U_SINT)(_U_UINT)(_UU8 )(expected), (_U_SINT)(_U_UINT)(_UU8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) 00686 #define UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_UU16)(delta), (_U_SINT)(_U_UINT)(_UU16)(expected), (_U_SINT)(_U_UINT)(_UU16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) 00687 #define UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_UU32)(delta), (_U_SINT)(_U_UINT)(_UU32)(expected), (_U_SINT)(_U_UINT)(_UU32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) 00688 00689 #define UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_UP)(expected), (_U_SINT)(_UP)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_POINTER) 00690 #define UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, line, message) UnityAssertEqualString((const char*)(expected), (const char*)(actual), (message), (UNITY_LINE_TYPE)(line)) 00691 #define UNITY_TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len, line, message) UnityAssertEqualStringLen((const char*)(expected), (const char*)(actual), (_UU32)(len), (message), (UNITY_LINE_TYPE)(line)) 00692 #define UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, line, message) UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(len), 1, (message), (UNITY_LINE_TYPE)(line)) 00693 00694 #define UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) 00695 #define UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) 00696 #define UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) 00697 #define UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) 00698 #define UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) 00699 #define UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) 00700 #define UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) 00701 #define UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) 00702 #define UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) 00703 #define UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) 00704 #define UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) 00705 #define UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(_UP*)(expected), (UNITY_INTERNAL_PTR)(_UP*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_POINTER) 00706 #define UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualStringArray((const char**)(expected), (const char**)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line)) 00707 #define UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, line, message) UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(len), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line)) 00708 00709 #ifdef UNITY_SUPPORT_64 00710 #define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) 00711 #define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) 00712 #define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) 00713 #define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) 00714 #define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) 00715 #define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) 00716 #define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) 00717 #define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) 00718 #define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) 00719 #else 00720 #define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00721 #define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00722 #define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00723 #define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00724 #define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00725 #define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00726 #define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00727 #define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00728 #define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00729 #endif 00730 00731 #ifdef UNITY_EXCLUDE_FLOAT 00732 #define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00733 #define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00734 #define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00735 #define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00736 #define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00737 #define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00738 #define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00739 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00740 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00741 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00742 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00743 #else 00744 #define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) UnityAssertFloatsWithin((_UF)(delta), (_UF)(expected), (_UF)(actual), (message), (UNITY_LINE_TYPE)(line)) 00745 #define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) UNITY_TEST_ASSERT_FLOAT_WITHIN((_UF)(expected) * (_UF)UNITY_FLOAT_PRECISION, (_UF)(expected), (_UF)(actual), (UNITY_LINE_TYPE)(line), (message)) 00746 #define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualFloatArray((_UF*)(expected), (_UF*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line)) 00747 #define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF) 00748 #define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NEG_INF) 00749 #define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN) 00750 #define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET) 00751 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_INF) 00752 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NEG_INF) 00753 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NAN) 00754 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_DET) 00755 #endif 00756 00757 #ifdef UNITY_EXCLUDE_DOUBLE 00758 #define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00759 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00760 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00761 #define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00762 #define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00763 #define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00764 #define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00765 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00766 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00767 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00768 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00769 #else 00770 #define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message) UnityAssertDoublesWithin((_UD)(delta), (_UD)(expected), (_UD)(actual), (message), (UNITY_LINE_TYPE)line) 00771 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) UNITY_TEST_ASSERT_DOUBLE_WITHIN((_UD)(expected) * (_UD)UNITY_DOUBLE_PRECISION, (_UD)expected, (_UD)actual, (UNITY_LINE_TYPE)(line), message) 00772 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualDoubleArray((_UD*)(expected), (_UD*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line) 00773 #define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF) 00774 #define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NEG_INF) 00775 #define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN) 00776 #define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET) 00777 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_INF) 00778 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NEG_INF) 00779 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NAN) 00780 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_DET) 00781 #endif 00782 00783 /* End of UNITY_INTERNALS_H */ 00784 #endif 00785 00786 /** @}*/
Generated on Tue Jul 12 2022 13:16:18 by
1.7.2
