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.
Dependents: blinky_max32630fthr
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 14:21:24 by
1.7.2
