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 OmniWheels 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 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) 00231 #else 00232 00233 #ifndef isinf 00234 #define isinf(n) (((1.0f / f_zero) == n) ? 1 : 0) || (((-1.0f / f_zero) == n) ? 1 : 0) 00235 #define UNITY_FLOAT_NEEDS_ZERO 00236 #endif 00237 00238 #ifndef isnan 00239 #define isnan(n) ((n != n) ? 1 : 0) 00240 #endif 00241 00242 #endif /* ARMC6 */ 00243 00244 #ifndef isneg 00245 #define isneg(n) ((n < 0.0f) ? 1 : 0) 00246 #endif 00247 00248 #ifndef ispos 00249 #define ispos(n) ((n > 0.0f) ? 1 : 0) 00250 #endif 00251 00252 #endif 00253 00254 /*------------------------------------------------------- 00255 * Double Float Support 00256 *-------------------------------------------------------*/ 00257 00258 /* unlike FLOAT, we DON'T include by default */ 00259 #ifndef UNITY_EXCLUDE_DOUBLE 00260 #ifndef UNITY_INCLUDE_DOUBLE 00261 #define UNITY_EXCLUDE_DOUBLE 00262 #endif 00263 #endif 00264 00265 #ifdef UNITY_EXCLUDE_DOUBLE 00266 00267 /* No Floating Point Support */ 00268 #undef UNITY_DOUBLE_PRECISION 00269 #undef UNITY_DOUBLE_TYPE 00270 #undef UNITY_DOUBLE_VERBOSE 00271 00272 #ifdef UNITY_INCLUDE_DOUBLE 00273 #undef UNITY_INCLUDE_DOUBLE 00274 #endif 00275 00276 #else 00277 00278 /* Double Floating Point Support */ 00279 #ifndef UNITY_DOUBLE_PRECISION 00280 #define UNITY_DOUBLE_PRECISION (1e-12f) 00281 #endif 00282 #ifndef UNITY_DOUBLE_TYPE 00283 #define UNITY_DOUBLE_TYPE double 00284 #endif 00285 typedef UNITY_DOUBLE_TYPE _UD; 00286 00287 #endif 00288 00289 #ifdef UNITY_DOUBLE_VERBOSE 00290 #ifndef UNITY_FLOAT_VERBOSE 00291 #define UNITY_FLOAT_VERBOSE 00292 #endif 00293 #endif 00294 00295 /*------------------------------------------------------- 00296 * Output Method: stdout (DEFAULT) 00297 *-------------------------------------------------------*/ 00298 #ifndef UNITY_OUTPUT_CHAR 00299 /* Default to using putchar, which is defined in stdio.h */ 00300 #include <stdio.h> 00301 #define UNITY_OUTPUT_CHAR(a) (void)putchar(a) 00302 #else 00303 /* If defined as something else, make sure we declare it here so it's ready for use */ 00304 #ifndef UNITY_OMIT_OUTPUT_CHAR_HEADER_DECLARATION 00305 extern void UNITY_OUTPUT_CHAR(int); 00306 #endif 00307 #endif 00308 00309 #ifndef UNITY_OUTPUT_FLUSH 00310 /* Default to using putchar, which is defined in stdio.h */ 00311 #include <stdio.h> 00312 #define UNITY_OUTPUT_FLUSH() (void)fflush(stdout) 00313 #else 00314 /* If defined as something else, make sure we declare it here so it's ready for use */ 00315 #ifndef UNITY_OMIT_OUTPUT_FLUSH_HEADER_DECLARATION 00316 extern void UNITY_OUTPUT_FLUSH(void); 00317 #endif 00318 #endif 00319 00320 #ifndef UNITY_PRINT_EOL 00321 #define UNITY_PRINT_EOL() UNITY_OUTPUT_CHAR('\n') 00322 #endif 00323 00324 #ifndef UNITY_OUTPUT_START 00325 #define UNITY_OUTPUT_START() 00326 #endif 00327 00328 #ifndef UNITY_OUTPUT_COMPLETE 00329 #define UNITY_OUTPUT_COMPLETE() 00330 #endif 00331 00332 /*------------------------------------------------------- 00333 * Footprint 00334 *-------------------------------------------------------*/ 00335 00336 #ifndef UNITY_LINE_TYPE 00337 #define UNITY_LINE_TYPE _U_UINT 00338 #endif 00339 00340 #ifndef UNITY_COUNTER_TYPE 00341 #define UNITY_COUNTER_TYPE _U_UINT 00342 #endif 00343 00344 /*------------------------------------------------------- 00345 * Language Features Available 00346 *-------------------------------------------------------*/ 00347 #if !defined(UNITY_WEAK_ATTRIBUTE) && !defined(UNITY_WEAK_PRAGMA) 00348 # ifdef __GNUC__ /* includes clang */ 00349 # if !(defined(__WIN32__) && defined(__clang__)) 00350 # define UNITY_WEAK_ATTRIBUTE __attribute__((weak)) 00351 # endif 00352 # endif 00353 #endif 00354 00355 #ifdef UNITY_NO_WEAK 00356 # undef UNITY_WEAK_ATTRIBUTE 00357 # undef UNITY_WEAK_PRAGMA 00358 #endif 00359 00360 00361 /*------------------------------------------------------- 00362 * Internal Structs Needed 00363 *-------------------------------------------------------*/ 00364 00365 typedef void (*UnityTestFunction)(void); 00366 00367 #define UNITY_DISPLAY_RANGE_INT (0x10) 00368 #define UNITY_DISPLAY_RANGE_UINT (0x20) 00369 #define UNITY_DISPLAY_RANGE_HEX (0x40) 00370 #define UNITY_DISPLAY_RANGE_AUTO (0x80) 00371 00372 typedef enum 00373 { 00374 #if (UNITY_INT_WIDTH == 16) 00375 UNITY_DISPLAY_STYLE_INT = 2 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO, 00376 #elif (UNITY_INT_WIDTH == 32) 00377 UNITY_DISPLAY_STYLE_INT = 4 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO, 00378 #elif (UNITY_INT_WIDTH == 64) 00379 UNITY_DISPLAY_STYLE_INT = 8 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO, 00380 #endif 00381 UNITY_DISPLAY_STYLE_INT8 = 1 + UNITY_DISPLAY_RANGE_INT, 00382 UNITY_DISPLAY_STYLE_INT16 = 2 + UNITY_DISPLAY_RANGE_INT, 00383 UNITY_DISPLAY_STYLE_INT32 = 4 + UNITY_DISPLAY_RANGE_INT, 00384 #ifdef UNITY_SUPPORT_64 00385 UNITY_DISPLAY_STYLE_INT64 = 8 + UNITY_DISPLAY_RANGE_INT, 00386 #endif 00387 00388 #if (UNITY_INT_WIDTH == 16) 00389 UNITY_DISPLAY_STYLE_UINT = 2 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO, 00390 #elif (UNITY_INT_WIDTH == 32) 00391 UNITY_DISPLAY_STYLE_UINT = 4 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO, 00392 #elif (UNITY_INT_WIDTH == 64) 00393 UNITY_DISPLAY_STYLE_UINT = 8 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO, 00394 #endif 00395 UNITY_DISPLAY_STYLE_UINT8 = 1 + UNITY_DISPLAY_RANGE_UINT, 00396 UNITY_DISPLAY_STYLE_UINT16 = 2 + UNITY_DISPLAY_RANGE_UINT, 00397 UNITY_DISPLAY_STYLE_UINT32 = 4 + UNITY_DISPLAY_RANGE_UINT, 00398 #ifdef UNITY_SUPPORT_64 00399 UNITY_DISPLAY_STYLE_UINT64 = 8 + UNITY_DISPLAY_RANGE_UINT, 00400 #endif 00401 UNITY_DISPLAY_STYLE_HEX8 = 1 + UNITY_DISPLAY_RANGE_HEX, 00402 UNITY_DISPLAY_STYLE_HEX16 = 2 + UNITY_DISPLAY_RANGE_HEX, 00403 UNITY_DISPLAY_STYLE_HEX32 = 4 + UNITY_DISPLAY_RANGE_HEX, 00404 #ifdef UNITY_SUPPORT_64 00405 UNITY_DISPLAY_STYLE_HEX64 = 8 + UNITY_DISPLAY_RANGE_HEX, 00406 #endif 00407 UNITY_DISPLAY_STYLE_UNKNOWN 00408 } UNITY_DISPLAY_STYLE_T; 00409 00410 #ifndef UNITY_EXCLUDE_FLOAT 00411 typedef enum _UNITY_FLOAT_TRAIT_T 00412 { 00413 UNITY_FLOAT_IS_NOT_INF = 0, 00414 UNITY_FLOAT_IS_INF, 00415 UNITY_FLOAT_IS_NOT_NEG_INF, 00416 UNITY_FLOAT_IS_NEG_INF, 00417 UNITY_FLOAT_IS_NOT_NAN, 00418 UNITY_FLOAT_IS_NAN, 00419 UNITY_FLOAT_IS_NOT_DET, 00420 UNITY_FLOAT_IS_DET, 00421 UNITY_FLOAT_INVALID_TRAIT 00422 } UNITY_FLOAT_TRAIT_T; 00423 #endif 00424 00425 struct _Unity 00426 { 00427 const char* TestFile; 00428 const char* CurrentTestName; 00429 #ifndef UNITY_EXCLUDE_DETAILS 00430 const char* CurrentDetail1; 00431 const char* CurrentDetail2; 00432 #endif 00433 UNITY_LINE_TYPE CurrentTestLineNumber; 00434 UNITY_COUNTER_TYPE NumberOfTests; 00435 UNITY_COUNTER_TYPE TestFailures; 00436 UNITY_COUNTER_TYPE TestIgnores; 00437 UNITY_COUNTER_TYPE CurrentTestFailed; 00438 UNITY_COUNTER_TYPE CurrentTestIgnored; 00439 jmp_buf AbortFrame; 00440 }; 00441 00442 extern struct _Unity Unity; 00443 00444 #ifdef __cplusplus 00445 extern "C" { 00446 #endif 00447 00448 /*------------------------------------------------------- 00449 * Test Suite Management 00450 *-------------------------------------------------------*/ 00451 00452 00453 void UnityBegin(const char* filename); 00454 int UnityEnd(void); 00455 void UnityConcludeTest(void); 00456 void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum); 00457 00458 /*------------------------------------------------------- 00459 * Details Support 00460 *-------------------------------------------------------*/ 00461 00462 #ifdef UNITY_EXCLUDE_DETAILS 00463 #define UNITY_CLR_DETAILS() 00464 #define UNITY_SET_DETAIL(d1) 00465 #define UNITY_SET_DETAILS(d1,d2) 00466 #else 00467 #define UNITY_CLR_DETAILS() { Unity.CurrentDetail1 = 0; Unity.CurrentDetail2 = 0; } 00468 #define UNITY_SET_DETAIL(d1) { Unity.CurrentDetail1 = d1; Unity.CurrentDetail2 = 0; } 00469 #define UNITY_SET_DETAILS(d1,d2) { Unity.CurrentDetail1 = d1; Unity.CurrentDetail2 = d2; } 00470 00471 #ifndef UNITY_DETAIL1_NAME 00472 #define UNITY_DETAIL1_NAME "Function" 00473 #endif 00474 00475 #ifndef UNITY_DETAIL2_NAME 00476 #define UNITY_DETAIL2_NAME "Argument" 00477 #endif 00478 #endif 00479 00480 /*------------------------------------------------------- 00481 * Test Output 00482 *-------------------------------------------------------*/ 00483 00484 void UnityPrint(const char* string); 00485 void UnityPrintMask(const _U_UINT mask, const _U_UINT number); 00486 void UnityPrintNumberByStyle(const _U_SINT number, const UNITY_DISPLAY_STYLE_T style); 00487 void UnityPrintNumber(const _U_SINT number); 00488 void UnityPrintNumberUnsigned(const _U_UINT number); 00489 void UnityPrintNumberHex(const _U_UINT number, const char nibbles); 00490 00491 #ifdef UNITY_FLOAT_VERBOSE 00492 void UnityPrintFloat(const _UF number); 00493 #endif 00494 00495 /*------------------------------------------------------- 00496 * Test Assertion Fuctions 00497 *------------------------------------------------------- 00498 * Use the macros below this section instead of calling 00499 * these directly. The macros have a consistent naming 00500 * convention and will pull in file and line information 00501 * for you. */ 00502 00503 void UnityAssertEqualNumber(const _U_SINT expected, 00504 const _U_SINT actual, 00505 const char* msg, 00506 const UNITY_LINE_TYPE lineNumber, 00507 const UNITY_DISPLAY_STYLE_T style); 00508 00509 void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected, 00510 UNITY_INTERNAL_PTR actual, 00511 const _UU32 num_elements, 00512 const char* msg, 00513 const UNITY_LINE_TYPE lineNumber, 00514 const UNITY_DISPLAY_STYLE_T style); 00515 00516 void UnityAssertBits(const _U_SINT mask, 00517 const _U_SINT expected, 00518 const _U_SINT actual, 00519 const char* msg, 00520 const UNITY_LINE_TYPE lineNumber); 00521 00522 void UnityAssertEqualString(const char* expected, 00523 const char* actual, 00524 const char* msg, 00525 const UNITY_LINE_TYPE lineNumber); 00526 00527 void UnityAssertEqualStringLen(const char* expected, 00528 const char* actual, 00529 const _UU32 length, 00530 const char* msg, 00531 const UNITY_LINE_TYPE lineNumber); 00532 00533 void UnityAssertEqualStringArray( const char** expected, 00534 const char** actual, 00535 const _UU32 num_elements, 00536 const char* msg, 00537 const UNITY_LINE_TYPE lineNumber); 00538 00539 void UnityAssertEqualMemory( UNITY_INTERNAL_PTR expected, 00540 UNITY_INTERNAL_PTR actual, 00541 const _UU32 length, 00542 const _UU32 num_elements, 00543 const char* msg, 00544 const UNITY_LINE_TYPE lineNumber); 00545 00546 void UnityAssertNumbersWithin(const _U_UINT delta, 00547 const _U_SINT expected, 00548 const _U_SINT actual, 00549 const char* msg, 00550 const UNITY_LINE_TYPE lineNumber, 00551 const UNITY_DISPLAY_STYLE_T style); 00552 00553 void UnityFail(const char* message, const UNITY_LINE_TYPE line); 00554 00555 void UnityIgnore(const char* message, const UNITY_LINE_TYPE line); 00556 00557 #ifndef UNITY_EXCLUDE_FLOAT 00558 void UnityAssertFloatsWithin(const _UF delta, 00559 const _UF expected, 00560 const _UF actual, 00561 const char* msg, 00562 const UNITY_LINE_TYPE lineNumber); 00563 00564 void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const _UF* expected, 00565 UNITY_PTR_ATTRIBUTE const _UF* actual, 00566 const _UU32 num_elements, 00567 const char* msg, 00568 const UNITY_LINE_TYPE lineNumber); 00569 00570 void UnityAssertFloatSpecial(const _UF actual, 00571 const char* msg, 00572 const UNITY_LINE_TYPE lineNumber, 00573 const UNITY_FLOAT_TRAIT_T style); 00574 #endif 00575 00576 #ifndef UNITY_EXCLUDE_DOUBLE 00577 void UnityAssertDoublesWithin(const _UD delta, 00578 const _UD expected, 00579 const _UD actual, 00580 const char* msg, 00581 const UNITY_LINE_TYPE lineNumber); 00582 00583 void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const _UD* expected, 00584 UNITY_PTR_ATTRIBUTE const _UD* actual, 00585 const _UU32 num_elements, 00586 const char* msg, 00587 const UNITY_LINE_TYPE lineNumber); 00588 00589 void UnityAssertDoubleSpecial(const _UD actual, 00590 const char* msg, 00591 const UNITY_LINE_TYPE lineNumber, 00592 const UNITY_FLOAT_TRAIT_T style); 00593 #endif 00594 00595 #ifdef __cplusplus 00596 } 00597 #endif // __cplusplus 00598 00599 /*------------------------------------------------------- 00600 * Error Strings We Might Need 00601 *-------------------------------------------------------*/ 00602 00603 extern const char UnityStrErrFloat[]; 00604 extern const char UnityStrErrDouble[]; 00605 extern const char UnityStrErr64[]; 00606 00607 /*------------------------------------------------------- 00608 * Test Running Macros 00609 *-------------------------------------------------------*/ 00610 00611 #define TEST_PROTECT() (setjmp(Unity.AbortFrame) == 0) 00612 00613 #define TEST_ABORT() {longjmp(Unity.AbortFrame, 1);} 00614 00615 /* This tricky series of macros gives us an optional line argument to treat it as RUN_TEST(func, num=__LINE__) */ 00616 #ifndef RUN_TEST 00617 #ifdef __STDC_VERSION__ 00618 #if __STDC_VERSION__ >= 199901L 00619 #define RUN_TEST(...) UnityDefaultTestRun(RUN_TEST_FIRST(__VA_ARGS__), RUN_TEST_SECOND(__VA_ARGS__)) 00620 #define RUN_TEST_FIRST(...) RUN_TEST_FIRST_HELPER(__VA_ARGS__, throwaway) 00621 #define RUN_TEST_FIRST_HELPER(first, ...) (first), #first 00622 #define RUN_TEST_SECOND(...) RUN_TEST_SECOND_HELPER(__VA_ARGS__, __LINE__, throwaway) 00623 #define RUN_TEST_SECOND_HELPER(first, second, ...) (second) 00624 #endif 00625 #endif 00626 #endif 00627 00628 /* If we can't do the tricky version, we'll just have to require them to always include the line number */ 00629 #ifndef RUN_TEST 00630 #ifdef CMOCK 00631 #define RUN_TEST(func, num) UnityDefaultTestRun(func, #func, num) 00632 #else 00633 #define RUN_TEST(func) UnityDefaultTestRun(func, #func, __LINE__) 00634 #endif 00635 #endif 00636 00637 #define TEST_LINE_NUM (Unity.CurrentTestLineNumber) 00638 #define TEST_IS_IGNORED (Unity.CurrentTestIgnored) 00639 #define UNITY_NEW_TEST(a) \ 00640 Unity.CurrentTestName = (a); \ 00641 Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)(__LINE__); \ 00642 Unity.NumberOfTests++; 00643 00644 #ifndef UNITY_BEGIN 00645 #define UNITY_BEGIN() UnityBegin(__FILE__) 00646 #endif 00647 00648 #ifndef UNITY_END 00649 #define UNITY_END() UnityEnd() 00650 #endif 00651 00652 #define UNITY_UNUSED(x) (void)(sizeof(x)) 00653 00654 /*------------------------------------------------------- 00655 * Basic Fail and Ignore 00656 *-------------------------------------------------------*/ 00657 00658 #define UNITY_TEST_FAIL(line, message) UnityFail( (message), (UNITY_LINE_TYPE)(line)) 00659 #define UNITY_TEST_IGNORE(line, message) UnityIgnore( (message), (UNITY_LINE_TYPE)(line)) 00660 00661 /*------------------------------------------------------- 00662 * Test Asserts 00663 *-------------------------------------------------------*/ 00664 00665 #define UNITY_TEST_ASSERT(condition, line, message) if (condition) {} else {UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), (message));} 00666 #define UNITY_TEST_ASSERT_NULL(pointer, line, message) UNITY_TEST_ASSERT(((pointer) == NULL), (UNITY_LINE_TYPE)(line), (message)) 00667 #define UNITY_TEST_ASSERT_NOT_NULL(pointer, line, message) UNITY_TEST_ASSERT(((pointer) != NULL), (UNITY_LINE_TYPE)(line), (message)) 00668 00669 #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) 00670 #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) 00671 #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) 00672 #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) 00673 #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) 00674 #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) 00675 #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) 00676 #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) 00677 #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) 00678 #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) 00679 #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) 00680 #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)) 00681 00682 #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) 00683 #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) 00684 #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) 00685 #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) 00686 #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) 00687 #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) 00688 #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) 00689 #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) 00690 #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) 00691 #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) 00692 #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) 00693 00694 #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) 00695 #define UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, line, message) UnityAssertEqualString((const char*)(expected), (const char*)(actual), (message), (UNITY_LINE_TYPE)(line)) 00696 #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)) 00697 #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)) 00698 00699 #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) 00700 #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) 00701 #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) 00702 #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) 00703 #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) 00704 #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) 00705 #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) 00706 #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) 00707 #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) 00708 #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) 00709 #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) 00710 #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) 00711 #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)) 00712 #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)) 00713 00714 #ifdef UNITY_SUPPORT_64 00715 #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) 00716 #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) 00717 #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) 00718 #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) 00719 #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) 00720 #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) 00721 #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) 00722 #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) 00723 #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) 00724 #else 00725 #define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00726 #define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00727 #define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00728 #define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00729 #define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00730 #define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00731 #define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00732 #define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00733 #define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) 00734 #endif 00735 00736 #ifdef UNITY_EXCLUDE_FLOAT 00737 #define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00738 #define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00739 #define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00740 #define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00741 #define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00742 #define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00743 #define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00744 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00745 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00746 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00747 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) 00748 #else 00749 #define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) UnityAssertFloatsWithin((_UF)(delta), (_UF)(expected), (_UF)(actual), (message), (UNITY_LINE_TYPE)(line)) 00750 #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)) 00751 #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)) 00752 #define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF) 00753 #define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NEG_INF) 00754 #define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN) 00755 #define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET) 00756 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_INF) 00757 #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) 00758 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NAN) 00759 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_DET) 00760 #endif 00761 00762 #ifdef UNITY_EXCLUDE_DOUBLE 00763 #define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00764 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00765 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00766 #define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00767 #define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00768 #define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00769 #define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00770 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00771 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00772 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00773 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) 00774 #else 00775 #define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message) UnityAssertDoublesWithin((_UD)(delta), (_UD)(expected), (_UD)(actual), (message), (UNITY_LINE_TYPE)line) 00776 #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) 00777 #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) 00778 #define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF) 00779 #define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NEG_INF) 00780 #define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN) 00781 #define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET) 00782 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_INF) 00783 #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) 00784 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NAN) 00785 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_DET) 00786 #endif 00787 00788 /* End of UNITY_INTERNALS_H */ 00789 #endif 00790 00791 /** @}*/
Generated on Fri Jul 22 2022 04:54:04 by
