Simple interface for Mbed Cloud Client
Embed:
(wiki syntax)
Show/hide line numbers
testunity.c
00001 /* ========================================== 00002 Unity Project - A Test Framework for C 00003 Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams 00004 [Released under MIT License. Please refer to license.txt for details] 00005 ========================================== */ 00006 00007 #include <setjmp.h> 00008 #include "unity.h" 00009 #include <string.h> 00010 00011 // Dividing by these constants produces +/- infinity. 00012 // The rationale is given in UnityAssertFloatIsInf's body. 00013 #ifndef UNITY_EXCLUDE_FLOAT 00014 static const _UF f_zero = 0.0f; 00015 #endif 00016 00017 #ifndef UNITY_EXCLUDE_DOUBLE 00018 static const _UD d_zero = 0.0; 00019 #endif 00020 00021 #define EXPECT_ABORT_BEGIN \ 00022 if (TEST_PROTECT()) \ 00023 { 00024 00025 #define VERIFY_FAILS_END \ 00026 } \ 00027 Unity.CurrentTestFailed = (Unity.CurrentTestFailed == 1) ? 0 : 1; \ 00028 if (Unity.CurrentTestFailed == 1) { \ 00029 SetToOneMeanWeAlreadyCheckedThisGuy = 1; \ 00030 UnityPrintNumberUnsigned(Unity.CurrentTestLineNumber); \ 00031 UNITY_OUTPUT_CHAR(':'); \ 00032 UnityPrint(Unity.CurrentTestName); \ 00033 UnityPrint("[[[[ Previous Test Should Have Failed But Did Not ]]]]"); \ 00034 UNITY_OUTPUT_CHAR('\n'); \ 00035 } 00036 00037 #define VERIFY_IGNORES_END \ 00038 } \ 00039 Unity.CurrentTestFailed = (Unity.CurrentTestIgnored == 1) ? 0 : 1; \ 00040 Unity.CurrentTestIgnored = 0; \ 00041 if (Unity.CurrentTestFailed == 1) { \ 00042 SetToOneMeanWeAlreadyCheckedThisGuy = 1; \ 00043 UnityPrint("[[[[ Previous Test Should Have Ignored But Did Not ]]]]"); \ 00044 UNITY_OUTPUT_CHAR('\n'); \ 00045 } 00046 00047 static int SetToOneToFailInTearDown; 00048 static int SetToOneMeanWeAlreadyCheckedThisGuy; 00049 00050 void setUp(void) 00051 { 00052 SetToOneToFailInTearDown = 0; 00053 SetToOneMeanWeAlreadyCheckedThisGuy = 0; 00054 } 00055 00056 void tearDown(void) 00057 { 00058 if (SetToOneToFailInTearDown == 1) 00059 TEST_FAIL_MESSAGE("<= Failed in tearDown"); 00060 if ((SetToOneMeanWeAlreadyCheckedThisGuy == 0) && (Unity.CurrentTestFailed > 0)) 00061 { 00062 UnityPrint("[[[[ Previous Test Should Have Passed But Did Not ]]]]"); 00063 UNITY_OUTPUT_CHAR('\n'); 00064 } 00065 } 00066 00067 void testUnitySizeInitializationReminder(void) 00068 { 00069 /* This test ensures that sizeof(struct _Unity) doesn't change. If this 00070 * test breaks, go look at the initialization of the Unity global variable 00071 * in unity.c and make sure we're filling in the proper fields. */ 00072 const char* message = "Unexpected size for _Unity struct. Please check that " 00073 "the initialization of the Unity symbol in unity.c is " 00074 "still correct."; 00075 00076 /* Define a structure with all the same fields as `struct _Unity`. */ 00077 #ifdef UNITY_EXCLUDE_DETAILS 00078 struct { 00079 const char* TestFile; 00080 const char* CurrentTestName; 00081 UNITY_LINE_TYPE CurrentTestLineNumber; 00082 UNITY_COUNTER_TYPE NumberOfTests; 00083 UNITY_COUNTER_TYPE TestFailures; 00084 UNITY_COUNTER_TYPE TestIgnores; 00085 UNITY_COUNTER_TYPE CurrentTestFailed; 00086 UNITY_COUNTER_TYPE CurrentTestIgnored; 00087 jmp_buf AbortFrame; 00088 } _Expected_Unity; 00089 #else 00090 struct { 00091 const char* TestFile; 00092 const char* CurrentTestName; 00093 const char* CurrentDetails1; 00094 const char* CurrentDetails2; 00095 UNITY_LINE_TYPE CurrentTestLineNumber; 00096 UNITY_COUNTER_TYPE NumberOfTests; 00097 UNITY_COUNTER_TYPE TestFailures; 00098 UNITY_COUNTER_TYPE TestIgnores; 00099 UNITY_COUNTER_TYPE CurrentTestFailed; 00100 UNITY_COUNTER_TYPE CurrentTestIgnored; 00101 jmp_buf AbortFrame; 00102 } _Expected_Unity; 00103 #endif 00104 00105 /* Compare our fake structure's size to the actual structure's size. They 00106 * should be the same. 00107 * 00108 * This accounts for alignment, padding, and packing issues that might come 00109 * up between different architectures. */ 00110 TEST_ASSERT_EQUAL_MESSAGE(sizeof(_Expected_Unity), sizeof(Unity), message); 00111 } 00112 00113 void testPassShouldEndImmediatelyWithPass(void) 00114 { 00115 TEST_PASS(); 00116 TEST_FAIL_MESSAGE("We should have passed already and finished this test"); 00117 } 00118 00119 void testTrue(void) 00120 { 00121 TEST_ASSERT(1); 00122 00123 TEST_ASSERT_TRUE(1); 00124 } 00125 00126 void testFalse(void) 00127 { 00128 TEST_ASSERT_FALSE(0); 00129 00130 TEST_ASSERT_UNLESS(0); 00131 } 00132 00133 void testPreviousPass(void) 00134 { 00135 TEST_ASSERT_EQUAL_INT(0U, Unity.TestFailures); 00136 } 00137 00138 void testNotVanilla(void) 00139 { 00140 EXPECT_ABORT_BEGIN 00141 TEST_ASSERT(0); 00142 VERIFY_FAILS_END 00143 } 00144 00145 void testNotTrue(void) 00146 { 00147 EXPECT_ABORT_BEGIN 00148 TEST_ASSERT_TRUE(0); 00149 VERIFY_FAILS_END 00150 } 00151 00152 void testNotFalse(void) 00153 { 00154 EXPECT_ABORT_BEGIN 00155 TEST_ASSERT_FALSE(1); 00156 VERIFY_FAILS_END 00157 } 00158 00159 void testNotUnless(void) 00160 { 00161 EXPECT_ABORT_BEGIN 00162 TEST_ASSERT_UNLESS(1); 00163 VERIFY_FAILS_END 00164 } 00165 00166 void testNotNotEqual(void) 00167 { 00168 EXPECT_ABORT_BEGIN 00169 TEST_ASSERT_NOT_EQUAL(10, 10); 00170 VERIFY_FAILS_END 00171 } 00172 00173 void testFail(void) 00174 { 00175 EXPECT_ABORT_BEGIN 00176 TEST_FAIL_MESSAGE("Expected for testing"); 00177 VERIFY_FAILS_END 00178 } 00179 00180 void testIsNull(void) 00181 { 00182 char* ptr1 = NULL; 00183 const char* ptr2 = "hello"; 00184 00185 TEST_ASSERT_NULL(ptr1); 00186 TEST_ASSERT_NOT_NULL(ptr2); 00187 } 00188 00189 void testIsNullShouldFailIfNot(void) 00190 { 00191 const char* ptr1 = "hello"; 00192 00193 EXPECT_ABORT_BEGIN 00194 TEST_ASSERT_NULL(ptr1); 00195 VERIFY_FAILS_END 00196 } 00197 00198 void testNotNullShouldFailIfNULL(void) 00199 { 00200 char* ptr1 = NULL; 00201 00202 EXPECT_ABORT_BEGIN 00203 TEST_ASSERT_NOT_NULL(ptr1); 00204 VERIFY_FAILS_END 00205 } 00206 00207 void testIgnore(void) 00208 { 00209 EXPECT_ABORT_BEGIN 00210 TEST_IGNORE(); 00211 TEST_FAIL_MESSAGE("This should not be reached"); 00212 VERIFY_IGNORES_END 00213 } 00214 00215 void testIgnoreMessage(void) 00216 { 00217 EXPECT_ABORT_BEGIN 00218 TEST_IGNORE_MESSAGE("This is an expected TEST_IGNORE_MESSAGE string!"); 00219 TEST_FAIL_MESSAGE("This should not be reached"); 00220 VERIFY_IGNORES_END 00221 } 00222 00223 void testNotEqualInts(void) 00224 { 00225 EXPECT_ABORT_BEGIN 00226 TEST_ASSERT_EQUAL_INT(3982, 3983); 00227 VERIFY_FAILS_END 00228 } 00229 00230 void testNotEqualInt8s(void) 00231 { 00232 EXPECT_ABORT_BEGIN 00233 TEST_ASSERT_EQUAL_INT8(-127, -126); 00234 VERIFY_FAILS_END 00235 } 00236 00237 void testNotEqualInt16s(void) 00238 { 00239 EXPECT_ABORT_BEGIN 00240 TEST_ASSERT_EQUAL_INT16(-16383, -16382); 00241 VERIFY_FAILS_END 00242 } 00243 00244 void testNotEqualInt32s(void) 00245 { 00246 EXPECT_ABORT_BEGIN 00247 TEST_ASSERT_EQUAL_INT32(-2147483647, -2147483648); //use largest 32 bit negative to test printability 00248 VERIFY_FAILS_END 00249 } 00250 00251 void testNotEqualBits(void) 00252 { 00253 EXPECT_ABORT_BEGIN 00254 TEST_ASSERT_BITS(0xFF00, 0x5555, 0x5A55); 00255 VERIFY_FAILS_END 00256 } 00257 00258 void testNotEqualUInts(void) 00259 { 00260 _UU16 v0, v1; 00261 00262 v0 = 9000; 00263 v1 = 9001; 00264 00265 EXPECT_ABORT_BEGIN 00266 TEST_ASSERT_EQUAL_UINT(v0, v1); 00267 VERIFY_FAILS_END 00268 } 00269 00270 void testNotEqualUInt8s(void) 00271 { 00272 _UU8 v0, v1; 00273 00274 v0 = 254; 00275 v1 = 255; 00276 00277 EXPECT_ABORT_BEGIN 00278 TEST_ASSERT_EQUAL_UINT8(v0, v1); 00279 VERIFY_FAILS_END 00280 } 00281 00282 void testNotEqualUInt16s(void) 00283 { 00284 _UU16 v0, v1; 00285 00286 v0 = 65535; 00287 v1 = 65534; 00288 00289 EXPECT_ABORT_BEGIN 00290 TEST_ASSERT_EQUAL_UINT16(v0, v1); 00291 VERIFY_FAILS_END 00292 } 00293 00294 void testNotEqualUInt32s(void) 00295 { 00296 _UU32 v0, v1; 00297 00298 v0 = 4294967295; 00299 v1 = 4294967294; 00300 00301 EXPECT_ABORT_BEGIN 00302 TEST_ASSERT_EQUAL_UINT32(v0, v1); 00303 VERIFY_FAILS_END 00304 } 00305 00306 void testNotEqualHex8s(void) 00307 { 00308 _UU8 v0, v1; 00309 00310 v0 = 0x23; 00311 v1 = 0x22; 00312 00313 EXPECT_ABORT_BEGIN 00314 TEST_ASSERT_EQUAL_HEX8(v0, v1); 00315 VERIFY_FAILS_END 00316 } 00317 00318 void testNotEqualHex8sIfSigned(void) 00319 { 00320 _US8 v0, v1; 00321 00322 v0 = -2; 00323 v1 = 2; 00324 00325 EXPECT_ABORT_BEGIN 00326 TEST_ASSERT_EQUAL_HEX8(v0, v1); 00327 VERIFY_FAILS_END 00328 } 00329 00330 void testNotEqualHex16s(void) 00331 { 00332 _UU16 v0, v1; 00333 00334 v0 = 0x1234; 00335 v1 = 0x1235; 00336 00337 EXPECT_ABORT_BEGIN 00338 TEST_ASSERT_EQUAL_HEX16(v0, v1); 00339 VERIFY_FAILS_END 00340 } 00341 00342 void testNotEqualHex16sIfSigned(void) 00343 { 00344 _US16 v0, v1; 00345 00346 v0 = -1024; 00347 v1 = -1028; 00348 00349 EXPECT_ABORT_BEGIN 00350 TEST_ASSERT_EQUAL_HEX16(v0, v1); 00351 VERIFY_FAILS_END 00352 } 00353 00354 void testNotEqualHex32s(void) 00355 { 00356 _UU32 v0, v1; 00357 00358 v0 = 900000; 00359 v1 = 900001; 00360 00361 EXPECT_ABORT_BEGIN 00362 TEST_ASSERT_EQUAL_HEX32(v0, v1); 00363 VERIFY_FAILS_END 00364 } 00365 00366 void testNotEqualHex32sIfSigned(void) 00367 { 00368 _US32 v0, v1; 00369 00370 v0 = -900000; 00371 v1 = 900001; 00372 00373 EXPECT_ABORT_BEGIN 00374 TEST_ASSERT_EQUAL_HEX32(v0, v1); 00375 VERIFY_FAILS_END 00376 } 00377 00378 void testEqualInts(void) 00379 { 00380 int v0, v1; 00381 int *p0, *p1; 00382 00383 v0 = 19467; 00384 v1 = 19467; 00385 p0 = &v0; 00386 p1 = &v1; 00387 00388 TEST_ASSERT_EQUAL_INT(1837, 1837); 00389 TEST_ASSERT_EQUAL_INT(-27365, -27365); 00390 TEST_ASSERT_EQUAL_INT(v0, v1); 00391 TEST_ASSERT_EQUAL_INT(19467, v1); 00392 TEST_ASSERT_EQUAL_INT(v0, 19467); 00393 TEST_ASSERT_EQUAL_INT(*p0, v1); 00394 TEST_ASSERT_EQUAL_INT(*p0, *p1); 00395 TEST_ASSERT_EQUAL_INT(*p0, 19467); 00396 } 00397 00398 void testEqualInt8s(void) 00399 { 00400 _US8 v0, v1; 00401 _US8 *p0, *p1; 00402 00403 v0 = 0x22; 00404 v1 = 0x22; 00405 p0 = &v0; 00406 p1 = &v1; 00407 00408 TEST_ASSERT_EQUAL_INT8(0x22, 0x22); 00409 TEST_ASSERT_EQUAL_INT8(v0, v1); 00410 TEST_ASSERT_EQUAL_INT8(0x22, v1); 00411 TEST_ASSERT_EQUAL_INT8(v0, 0x22); 00412 TEST_ASSERT_EQUAL_INT8(*p0, v1); 00413 TEST_ASSERT_EQUAL_INT8(*p0, *p1); 00414 TEST_ASSERT_EQUAL_INT8(*p0, 0x22); 00415 } 00416 00417 void testEqualInt8sWhenThereAreDifferencesOutside8Bits(void) 00418 { 00419 TEST_ASSERT_EQUAL_INT8(0x321,0x421); 00420 TEST_ASSERT_EQUAL_INT8(0xFF21,0x0021); 00421 } 00422 00423 void testEqualInt16s(void) 00424 { 00425 _US16 v0, v1; 00426 _US16 *p0, *p1; 00427 00428 v0 = 0x7876; 00429 v1 = 0x7876; 00430 p0 = &v0; 00431 p1 = &v1; 00432 00433 TEST_ASSERT_EQUAL_INT16(0x7876, 0x7876); 00434 TEST_ASSERT_EQUAL_INT16(v0, v1); 00435 TEST_ASSERT_EQUAL_INT16(0x7876, v1); 00436 TEST_ASSERT_EQUAL_INT16(v0, 0x7876); 00437 TEST_ASSERT_EQUAL_INT16(*p0, v1); 00438 TEST_ASSERT_EQUAL_INT16(*p0, *p1); 00439 TEST_ASSERT_EQUAL_INT16(*p0, 0x7876); 00440 } 00441 00442 void testEqualInt16sNegatives(void) 00443 { 00444 _US16 v0, v1; 00445 _US16 *p0, *p1; 00446 00447 v0 = -7876; 00448 v1 = -7876; 00449 p0 = &v0; 00450 p1 = &v1; 00451 00452 TEST_ASSERT_EQUAL_INT16(-7876, -7876); 00453 TEST_ASSERT_EQUAL_INT16(v0, v1); 00454 TEST_ASSERT_EQUAL_INT16(-7876, v1); 00455 TEST_ASSERT_EQUAL_INT16(v0, -7876); 00456 TEST_ASSERT_EQUAL_INT16(*p0, v1); 00457 TEST_ASSERT_EQUAL_INT16(*p0, *p1); 00458 TEST_ASSERT_EQUAL_INT16(*p0, -7876); 00459 } 00460 00461 void testEqualInt16sWhenThereAreDifferencesOutside16Bits(void) 00462 { 00463 TEST_ASSERT_EQUAL_INT16(0x54321,0x64321); 00464 TEST_ASSERT_EQUAL_INT16(0xFFFF4321,0x00004321); 00465 } 00466 00467 void testEqualInt32s(void) 00468 { 00469 _US32 v0, v1; 00470 _US32 *p0, *p1; 00471 00472 v0 = 0x78760000; 00473 v1 = 0x78760000; 00474 p0 = &v0; 00475 p1 = &v1; 00476 00477 TEST_ASSERT_EQUAL_INT32(0x78760000, 0x78760000); 00478 TEST_ASSERT_EQUAL_INT32(v0, v1); 00479 TEST_ASSERT_EQUAL_INT32(0x78760000, v1); 00480 TEST_ASSERT_EQUAL_INT32(v0, 0x78760000); 00481 TEST_ASSERT_EQUAL_INT32(*p0, v1); 00482 TEST_ASSERT_EQUAL_INT32(*p0, *p1); 00483 TEST_ASSERT_EQUAL_INT32(*p0, 0x78760000); 00484 } 00485 00486 void testEqualInt32sNegatives(void) 00487 { 00488 _US32 v0, v1; 00489 _US32 *p0, *p1; 00490 00491 v0 = -123456789; 00492 v1 = -123456789; 00493 p0 = &v0; 00494 p1 = &v1; 00495 00496 TEST_ASSERT_EQUAL_INT32(-123456789, -123456789); 00497 TEST_ASSERT_EQUAL_INT32(v0, v1); 00498 TEST_ASSERT_EQUAL_INT32(-123456789, v1); 00499 TEST_ASSERT_EQUAL_INT32(v0, -123456789); 00500 TEST_ASSERT_EQUAL_INT32(*p0, v1); 00501 TEST_ASSERT_EQUAL_INT32(*p0, *p1); 00502 TEST_ASSERT_EQUAL_INT32(*p0, -123456789); 00503 } 00504 00505 00506 void testEqualUints(void) 00507 { 00508 unsigned int v0, v1; 00509 unsigned int *p0, *p1; 00510 00511 v0 = 19467; 00512 v1 = 19467; 00513 p0 = &v0; 00514 p1 = &v1; 00515 00516 TEST_ASSERT_EQUAL_UINT(1837, 1837); 00517 TEST_ASSERT_EQUAL_UINT(v0, v1); 00518 TEST_ASSERT_EQUAL_UINT(19467, v1); 00519 TEST_ASSERT_EQUAL_UINT(v0, 19467); 00520 TEST_ASSERT_EQUAL_UINT(*p0, v1); 00521 TEST_ASSERT_EQUAL_UINT(*p0, *p1); 00522 TEST_ASSERT_EQUAL_UINT(*p0, 19467); 00523 TEST_ASSERT_EQUAL_UINT(60872u, 60872u); 00524 } 00525 00526 00527 void testEqualUint8s(void) 00528 { 00529 _UU8 v0, v1; 00530 _UU8 *p0, *p1; 00531 00532 v0 = 0x22; 00533 v1 = 0x22; 00534 p0 = &v0; 00535 p1 = &v1; 00536 00537 TEST_ASSERT_EQUAL_UINT8(0x22, 0x22); 00538 TEST_ASSERT_EQUAL_UINT8(v0, v1); 00539 TEST_ASSERT_EQUAL_UINT8(0x22, v1); 00540 TEST_ASSERT_EQUAL_UINT8(v0, 0x22); 00541 TEST_ASSERT_EQUAL_UINT8(*p0, v1); 00542 TEST_ASSERT_EQUAL_UINT8(*p0, *p1); 00543 TEST_ASSERT_EQUAL_UINT8(*p0, 0x22); 00544 } 00545 00546 void testEqualUint8sWhenThereAreDifferencesOutside8Bits(void) 00547 { 00548 TEST_ASSERT_EQUAL_UINT8(0x321,0x421); 00549 TEST_ASSERT_EQUAL_UINT8(0xFF21,0x0021); 00550 } 00551 00552 void testEqualUint16s(void) 00553 { 00554 _UU16 v0, v1; 00555 _UU16 *p0, *p1; 00556 00557 v0 = 0x9876; 00558 v1 = 0x9876; 00559 p0 = &v0; 00560 p1 = &v1; 00561 00562 TEST_ASSERT_EQUAL_UINT16(0x9876, 0x9876); 00563 TEST_ASSERT_EQUAL_UINT16(v0, v1); 00564 TEST_ASSERT_EQUAL_UINT16(0x9876, v1); 00565 TEST_ASSERT_EQUAL_UINT16(v0, 0x9876); 00566 TEST_ASSERT_EQUAL_UINT16(*p0, v1); 00567 TEST_ASSERT_EQUAL_UINT16(*p0, *p1); 00568 TEST_ASSERT_EQUAL_UINT16(*p0, 0x9876); 00569 } 00570 00571 void testEqualUint16sWhenThereAreDifferencesOutside16Bits(void) 00572 { 00573 TEST_ASSERT_EQUAL_UINT16(0x54321,0x64321); 00574 TEST_ASSERT_EQUAL_UINT16(0xFFFF4321,0x00004321); 00575 } 00576 00577 void testEqualUint32s(void) 00578 { 00579 _UU32 v0, v1; 00580 _UU32 *p0, *p1; 00581 00582 v0 = 0x98760000; 00583 v1 = 0x98760000; 00584 p0 = &v0; 00585 p1 = &v1; 00586 00587 TEST_ASSERT_EQUAL_UINT32(0x98760000, 0x98760000); 00588 TEST_ASSERT_EQUAL_UINT32(v0, v1); 00589 TEST_ASSERT_EQUAL_UINT32(0x98760000, v1); 00590 TEST_ASSERT_EQUAL_UINT32(v0, 0x98760000); 00591 TEST_ASSERT_EQUAL_UINT32(*p0, v1); 00592 TEST_ASSERT_EQUAL_UINT32(*p0, *p1); 00593 TEST_ASSERT_EQUAL_UINT32(*p0, 0x98760000); 00594 } 00595 00596 void testNotEqual(void) 00597 { 00598 TEST_ASSERT_NOT_EQUAL(0, 1); 00599 TEST_ASSERT_NOT_EQUAL(1, 0); 00600 TEST_ASSERT_NOT_EQUAL(100, 101); 00601 TEST_ASSERT_NOT_EQUAL(0, -1); 00602 TEST_ASSERT_NOT_EQUAL(65535, -65535); 00603 TEST_ASSERT_NOT_EQUAL(75, 900); 00604 TEST_ASSERT_NOT_EQUAL(-100, -101); 00605 } 00606 00607 void testEqualHex8s(void) 00608 { 00609 _UU8 v0, v1; 00610 _UU8 *p0, *p1; 00611 00612 v0 = 0x22; 00613 v1 = 0x22; 00614 p0 = &v0; 00615 p1 = &v1; 00616 00617 TEST_ASSERT_EQUAL_HEX8(0x22, 0x22); 00618 TEST_ASSERT_EQUAL_HEX8(v0, v1); 00619 TEST_ASSERT_EQUAL_HEX8(0x22, v1); 00620 TEST_ASSERT_EQUAL_HEX8(v0, 0x22); 00621 TEST_ASSERT_EQUAL_HEX8(*p0, v1); 00622 TEST_ASSERT_EQUAL_HEX8(*p0, *p1); 00623 TEST_ASSERT_EQUAL_HEX8(*p0, 0x22); 00624 } 00625 00626 void testEqualHex8sWhenThereAreDifferencesOutside8Bits(void) 00627 { 00628 TEST_ASSERT_EQUAL_HEX8(0x321,0x421); 00629 TEST_ASSERT_EQUAL_HEX8(0xFF21,0x0021); 00630 } 00631 00632 void testEqualHex8sNegatives(void) 00633 { 00634 _UU8 v0, v1; 00635 _UU8 *p0, *p1; 00636 00637 v0 = 0xDD; 00638 v1 = 0xDD; 00639 p0 = &v0; 00640 p1 = &v1; 00641 00642 TEST_ASSERT_EQUAL_HEX8(0xDD, 0xDD); 00643 TEST_ASSERT_EQUAL_HEX8(v0, v1); 00644 TEST_ASSERT_EQUAL_HEX8(0xDD, v1); 00645 TEST_ASSERT_EQUAL_HEX8(v0, 0xDD); 00646 TEST_ASSERT_EQUAL_HEX8(*p0, v1); 00647 TEST_ASSERT_EQUAL_HEX8(*p0, *p1); 00648 TEST_ASSERT_EQUAL_HEX8(*p0, 0xDD); 00649 } 00650 00651 void testEqualHex16s(void) 00652 { 00653 _UU16 v0, v1; 00654 _UU16 *p0, *p1; 00655 00656 v0 = 0x9876; 00657 v1 = 0x9876; 00658 p0 = &v0; 00659 p1 = &v1; 00660 00661 TEST_ASSERT_EQUAL_HEX16(0x9876, 0x9876); 00662 TEST_ASSERT_EQUAL_HEX16(v0, v1); 00663 TEST_ASSERT_EQUAL_HEX16(0x9876, v1); 00664 TEST_ASSERT_EQUAL_HEX16(v0, 0x9876); 00665 TEST_ASSERT_EQUAL_HEX16(*p0, v1); 00666 TEST_ASSERT_EQUAL_HEX16(*p0, *p1); 00667 TEST_ASSERT_EQUAL_HEX16(*p0, 0x9876); 00668 } 00669 00670 void testEqualHex16sWhenThereAreDifferencesOutside16Bits(void) 00671 { 00672 TEST_ASSERT_EQUAL_HEX16(0x54321,0x64321); 00673 TEST_ASSERT_EQUAL_HEX16(0xFFFF4321,0x00004321); 00674 } 00675 00676 void testEqualHex32s(void) 00677 { 00678 _UU32 v0, v1; 00679 _UU32 *p0, *p1; 00680 00681 v0 = 0x98765432ul; 00682 v1 = 0x98765432ul; 00683 p0 = &v0; 00684 p1 = &v1; 00685 00686 TEST_ASSERT_EQUAL_HEX32(0x98765432ul, 0x98765432ul); 00687 TEST_ASSERT_EQUAL_HEX32(v0, v1); 00688 TEST_ASSERT_EQUAL_HEX32(0x98765432ul, v1); 00689 TEST_ASSERT_EQUAL_HEX32(v0, 0x98765432ul); 00690 TEST_ASSERT_EQUAL_HEX32(*p0, v1); 00691 TEST_ASSERT_EQUAL_HEX32(*p0, *p1); 00692 TEST_ASSERT_EQUAL_HEX32(*p0, 0x98765432ul); 00693 } 00694 00695 void testEqualBits(void) 00696 { 00697 _UU32 v0 = 0xFF55AA00; 00698 _UU32 v1 = 0x55550000; 00699 00700 TEST_ASSERT_BITS(v1, v0, 0x55550000); 00701 TEST_ASSERT_BITS(v1, v0, 0xFF55CC00); 00702 TEST_ASSERT_BITS(0xFFFFFFFF, v0, 0xFF55AA00); 00703 TEST_ASSERT_BITS(0xFFFFFFFF, v0, v0); 00704 TEST_ASSERT_BITS(0xF0F0F0F0, v0, 0xFC5DAE0F); 00705 TEST_ASSERT_BITS_HIGH(v1, v0); 00706 TEST_ASSERT_BITS_LOW(0x000055FF, v0); 00707 TEST_ASSERT_BIT_HIGH(30, v0); 00708 TEST_ASSERT_BIT_LOW(5, v0); 00709 } 00710 00711 void testNotEqualBitHigh(void) 00712 { 00713 _UU32 v0 = 0x7F55AA00; 00714 00715 EXPECT_ABORT_BEGIN 00716 TEST_ASSERT_BIT_HIGH(31, v0); 00717 VERIFY_FAILS_END 00718 } 00719 00720 void testNotEqualBitLow(void) 00721 { 00722 _UU32 v0 = 0xFF55AA00; 00723 00724 EXPECT_ABORT_BEGIN 00725 TEST_ASSERT_BIT_LOW(30, v0); 00726 VERIFY_FAILS_END 00727 } 00728 00729 void testNotEqualBitsHigh(void) 00730 { 00731 _UU32 v0 = 0xFF55AA00; 00732 _UU32 v1 = 0x55550000; 00733 00734 EXPECT_ABORT_BEGIN 00735 TEST_ASSERT_BITS_HIGH(v0, v1); 00736 VERIFY_FAILS_END 00737 00738 } 00739 00740 void testNotEqualBitsLow(void) 00741 { 00742 _UU32 v0 = 0xFF55AA00; 00743 _UU32 v1 = 0x55550000; 00744 00745 EXPECT_ABORT_BEGIN 00746 TEST_ASSERT_BITS_LOW(v0, v1); 00747 VERIFY_FAILS_END 00748 00749 } 00750 void testEqualShorts(void) 00751 { 00752 short v0, v1; 00753 short *p0, *p1; 00754 00755 v0 = 19467; 00756 v1 = 19467; 00757 p0 = &v0; 00758 p1 = &v1; 00759 00760 TEST_ASSERT_EQUAL_INT(1837, 1837); 00761 TEST_ASSERT_EQUAL_INT(-2987, -2987); 00762 TEST_ASSERT_EQUAL_INT(v0, v1); 00763 TEST_ASSERT_EQUAL_INT(19467, v1); 00764 TEST_ASSERT_EQUAL_INT(v0, 19467); 00765 TEST_ASSERT_EQUAL_INT(*p0, v1); 00766 TEST_ASSERT_EQUAL_INT(*p0, *p1); 00767 TEST_ASSERT_EQUAL_INT(*p0, 19467); 00768 } 00769 00770 void testEqualUShorts(void) 00771 { 00772 unsigned short v0, v1; 00773 unsigned short *p0, *p1; 00774 00775 v0 = 19467; 00776 v1 = 19467; 00777 p0 = &v0; 00778 p1 = &v1; 00779 00780 TEST_ASSERT_EQUAL_UINT(1837, 1837); 00781 TEST_ASSERT_EQUAL_UINT(2987, 2987); 00782 TEST_ASSERT_EQUAL_UINT(v0, v1); 00783 TEST_ASSERT_EQUAL_UINT(19467, v1); 00784 TEST_ASSERT_EQUAL_UINT(v0, 19467); 00785 TEST_ASSERT_EQUAL_UINT(*p0, v1); 00786 TEST_ASSERT_EQUAL_UINT(*p0, *p1); 00787 TEST_ASSERT_EQUAL_UINT(*p0, 19467); 00788 } 00789 00790 void testEqualChars(void) 00791 { 00792 signed char v0, v1; 00793 signed char *p0, *p1; 00794 00795 v0 = 109; 00796 v1 = 109; 00797 p0 = &v0; 00798 p1 = &v1; 00799 00800 TEST_ASSERT_EQUAL_INT(42, 42); 00801 TEST_ASSERT_EQUAL_INT(-116, -116); 00802 TEST_ASSERT_EQUAL_INT(v0, v1); 00803 TEST_ASSERT_EQUAL_INT(109, v1); 00804 TEST_ASSERT_EQUAL_INT(v0, 109); 00805 TEST_ASSERT_EQUAL_INT(*p0, v1); 00806 TEST_ASSERT_EQUAL_INT(*p0, *p1); 00807 TEST_ASSERT_EQUAL_INT(*p0, 109); 00808 } 00809 00810 void testEqualUChars(void) 00811 { 00812 unsigned char v0, v1; 00813 unsigned char *p0, *p1; 00814 00815 v0 = 251; 00816 v1 = 251; 00817 p0 = &v0; 00818 p1 = &v1; 00819 00820 TEST_ASSERT_EQUAL_INT(42, 42); 00821 TEST_ASSERT_EQUAL_INT(v0, v1); 00822 TEST_ASSERT_EQUAL_INT(251, v1); 00823 TEST_ASSERT_EQUAL_INT(v0, 251); 00824 TEST_ASSERT_EQUAL_INT(*p0, v1); 00825 TEST_ASSERT_EQUAL_INT(*p0, *p1); 00826 TEST_ASSERT_EQUAL_INT(*p0, 251); 00827 } 00828 00829 void testEqualPointers(void) 00830 { 00831 int v0, v1; 00832 int *p0, *p1, *p2; 00833 00834 v0 = 19467; 00835 v1 = 18271; 00836 p0 = &v0; 00837 p1 = &v1; 00838 p2 = &v1; 00839 00840 TEST_ASSERT_EQUAL_PTR(p0, &v0); 00841 TEST_ASSERT_EQUAL_PTR(&v1, p1); 00842 TEST_ASSERT_EQUAL_PTR(p2, p1); 00843 TEST_ASSERT_EQUAL_PTR(&v0, &v0); 00844 } 00845 00846 void testNotEqualPointers(void) 00847 { 00848 EXPECT_ABORT_BEGIN 00849 TEST_ASSERT_EQUAL_PTR(0x12345678, 0x12345677); 00850 VERIFY_FAILS_END 00851 } 00852 00853 void testIntsWithinDelta(void) 00854 { 00855 TEST_ASSERT_INT_WITHIN(1, 5000, 5001); 00856 TEST_ASSERT_INT_WITHIN(5, 5000, 4996); 00857 TEST_ASSERT_INT_WITHIN(5, 5000, 5005); 00858 TEST_ASSERT_INT_WITHIN(500, 50, -440); 00859 00860 TEST_ASSERT_INT_WITHIN(2, -1, -1); 00861 TEST_ASSERT_INT_WITHIN(5, 1, -1); 00862 TEST_ASSERT_INT_WITHIN(5, -1, 1); 00863 } 00864 00865 void testIntsWithinDeltaAndCustomMessage(void) 00866 { 00867 TEST_ASSERT_INT_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message."); 00868 TEST_ASSERT_INT_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message."); 00869 TEST_ASSERT_INT_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message."); 00870 TEST_ASSERT_INT_WITHIN_MESSAGE(500, 50, -440, "Custom Message."); 00871 00872 TEST_ASSERT_INT_WITHIN_MESSAGE(2, -1, -1, "Custom Message."); 00873 TEST_ASSERT_INT_WITHIN_MESSAGE(5, 1, -1, "Custom Message."); 00874 TEST_ASSERT_INT_WITHIN_MESSAGE(5, -1, 1, "Custom Message."); 00875 } 00876 00877 void testIntsNotWithinDelta(void) 00878 { 00879 EXPECT_ABORT_BEGIN 00880 TEST_ASSERT_INT_WITHIN(5, 5000, 5006); 00881 VERIFY_FAILS_END 00882 } 00883 00884 void testIntsNotWithinDeltaAndCustomMessage(void) 00885 { 00886 EXPECT_ABORT_BEGIN 00887 TEST_ASSERT_INT_WITHIN_MESSAGE(5, 5000, 5006, "Custom Message."); 00888 VERIFY_FAILS_END 00889 } 00890 00891 void testUIntsWithinDelta(void) 00892 { 00893 TEST_ASSERT_UINT_WITHIN(1, 5000, 5001); 00894 TEST_ASSERT_UINT_WITHIN(5, 5000, 4996); 00895 TEST_ASSERT_UINT_WITHIN(5, 5000, 5005); 00896 } 00897 00898 void testUIntsWithinDeltaAndCustomMessage(void) 00899 { 00900 TEST_ASSERT_UINT_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message."); 00901 TEST_ASSERT_UINT_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message."); 00902 TEST_ASSERT_UINT_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message."); 00903 } 00904 00905 void testUIntsNotWithinDelta(void) 00906 { 00907 EXPECT_ABORT_BEGIN 00908 TEST_ASSERT_UINT_WITHIN(1, 2147483647u, 2147483649u); 00909 VERIFY_FAILS_END 00910 } 00911 00912 void testUIntsNotWithinDeltaAndCustomMessage(void) 00913 { 00914 EXPECT_ABORT_BEGIN 00915 TEST_ASSERT_UINT_WITHIN_MESSAGE(1, 2147483647u, 2147483649u, "Custom Message."); 00916 VERIFY_FAILS_END 00917 } 00918 00919 void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassSmallFirst(void) 00920 { 00921 EXPECT_ABORT_BEGIN 00922 TEST_ASSERT_UINT_WITHIN(5, 1, -1); 00923 VERIFY_FAILS_END 00924 } 00925 00926 void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassSmallFirstAndCustomMessage(void) 00927 { 00928 EXPECT_ABORT_BEGIN 00929 TEST_ASSERT_UINT_WITHIN_MESSAGE(5, 1, -1, "Custom Message."); 00930 VERIFY_FAILS_END 00931 } 00932 00933 void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassBigFirst(void) 00934 { 00935 EXPECT_ABORT_BEGIN 00936 TEST_ASSERT_UINT_WITHIN(5, -1, 1); 00937 VERIFY_FAILS_END 00938 } 00939 00940 void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassBigFirstAndCustomMessage(void) 00941 { 00942 EXPECT_ABORT_BEGIN 00943 TEST_ASSERT_UINT_WITHIN_MESSAGE(5, -1, 1, "Custom Message."); 00944 VERIFY_FAILS_END 00945 } 00946 00947 void testHEX32sWithinDelta(void) 00948 { 00949 TEST_ASSERT_HEX32_WITHIN(1, 5000, 5001); 00950 TEST_ASSERT_HEX32_WITHIN(5, 5000, 4996); 00951 TEST_ASSERT_HEX32_WITHIN(5, 5000, 5005); 00952 } 00953 00954 void testHEX32sWithinDeltaAndCustomMessage(void) 00955 { 00956 TEST_ASSERT_HEX32_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message."); 00957 TEST_ASSERT_HEX32_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message."); 00958 TEST_ASSERT_HEX32_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message."); 00959 } 00960 00961 void testHEX32sNotWithinDelta(void) 00962 { 00963 EXPECT_ABORT_BEGIN 00964 TEST_ASSERT_HEX32_WITHIN(1, 2147483647u, 2147483649u); 00965 VERIFY_FAILS_END 00966 } 00967 00968 void testHEX32sNotWithinDeltaAndCustomMessage(void) 00969 { 00970 EXPECT_ABORT_BEGIN 00971 TEST_ASSERT_HEX32_WITHIN_MESSAGE(1, 2147483647u, 2147483649u, "Custom Message."); 00972 VERIFY_FAILS_END 00973 } 00974 00975 void testHEX32sNotWithinDeltaEvenThoughASignedIntWouldPass(void) 00976 { 00977 EXPECT_ABORT_BEGIN 00978 TEST_ASSERT_HEX32_WITHIN(5, 1, -1); 00979 VERIFY_FAILS_END 00980 } 00981 00982 void testHEX32sNotWithinDeltaEvenThoughASignedIntWouldPassAndCustomMessage(void) 00983 { 00984 EXPECT_ABORT_BEGIN 00985 TEST_ASSERT_HEX32_WITHIN_MESSAGE(5, 1, -1, "Custom Message."); 00986 VERIFY_FAILS_END 00987 } 00988 00989 void testHEX16sWithinDelta(void) 00990 { 00991 TEST_ASSERT_HEX16_WITHIN(1, 5000, 5001); 00992 TEST_ASSERT_HEX16_WITHIN(5, 5000, 4996); 00993 TEST_ASSERT_HEX16_WITHIN(5, 5000, 5005); 00994 } 00995 00996 void testHEX16sWithinDeltaAndCustomMessage(void) 00997 { 00998 TEST_ASSERT_HEX16_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message."); 00999 TEST_ASSERT_HEX16_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message."); 01000 TEST_ASSERT_HEX16_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message."); 01001 } 01002 01003 void testHEX16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void) 01004 { 01005 TEST_ASSERT_HEX16_WITHIN(5, 0x54321, 0x44321); 01006 } 01007 01008 void testHEX16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void) 01009 { 01010 TEST_ASSERT_HEX16_WITHIN_MESSAGE(5, 0x54321, 0x44321, "Custom Message."); 01011 } 01012 01013 void testHEX16sNotWithinDelta(void) 01014 { 01015 EXPECT_ABORT_BEGIN 01016 TEST_ASSERT_HEX16_WITHIN(2, 65535, 0); 01017 VERIFY_FAILS_END 01018 } 01019 01020 void testHEX16sNotWithinDeltaAndCustomMessage(void) 01021 { 01022 EXPECT_ABORT_BEGIN 01023 TEST_ASSERT_HEX16_WITHIN_MESSAGE(2, 65535, 0, "Custom Message."); 01024 VERIFY_FAILS_END 01025 } 01026 01027 void testHEX8sWithinDelta(void) 01028 { 01029 TEST_ASSERT_HEX8_WITHIN(1, 254, 255); 01030 TEST_ASSERT_HEX8_WITHIN(5, 251, 255); 01031 TEST_ASSERT_HEX8_WITHIN(5, 1, 4); 01032 } 01033 01034 void testHEX8sWithinDeltaAndCustomMessage(void) 01035 { 01036 TEST_ASSERT_HEX8_WITHIN_MESSAGE(1, 254, 255, "Custom Message."); 01037 TEST_ASSERT_HEX8_WITHIN_MESSAGE(5, 251, 255, "Custom Message."); 01038 TEST_ASSERT_HEX8_WITHIN_MESSAGE(5, 1, 4, "Custom Message."); 01039 } 01040 01041 void testHEX8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void) 01042 { 01043 TEST_ASSERT_HEX8_WITHIN(5, 0x123, 0xF23); 01044 } 01045 01046 void testHEX8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void) 01047 { 01048 TEST_ASSERT_HEX8_WITHIN_MESSAGE(5, 0x123, 0xF23, "Custom Message."); 01049 } 01050 01051 void testHEX8sNotWithinDelta(void) 01052 { 01053 EXPECT_ABORT_BEGIN 01054 TEST_ASSERT_HEX8_WITHIN(2, 255, 0); 01055 VERIFY_FAILS_END 01056 } 01057 01058 void testHEX8sNotWithinDeltaAndCustomMessage(void) 01059 { 01060 EXPECT_ABORT_BEGIN 01061 TEST_ASSERT_HEX8_WITHIN_MESSAGE(2, 255, 0, "Custom Message."); 01062 VERIFY_FAILS_END 01063 } 01064 01065 //----------------- 01066 01067 void testUINT32sWithinDelta(void) 01068 { 01069 TEST_ASSERT_UINT32_WITHIN(1, 5000, 5001); 01070 TEST_ASSERT_UINT32_WITHIN(5, 5000, 4996); 01071 TEST_ASSERT_UINT32_WITHIN(5, 5000, 5005); 01072 } 01073 01074 void testUINT32sWithinDeltaAndCustomMessage(void) 01075 { 01076 TEST_ASSERT_UINT32_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message."); 01077 TEST_ASSERT_UINT32_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message."); 01078 TEST_ASSERT_UINT32_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message."); 01079 } 01080 01081 void testUINT32sNotWithinDelta(void) 01082 { 01083 EXPECT_ABORT_BEGIN 01084 TEST_ASSERT_UINT32_WITHIN(1, 2147483647u, 2147483649u); 01085 VERIFY_FAILS_END 01086 } 01087 01088 void testUINT32sNotWithinDeltaAndCustomMessage(void) 01089 { 01090 EXPECT_ABORT_BEGIN 01091 TEST_ASSERT_UINT32_WITHIN_MESSAGE(1, 2147483647u, 2147483649u, "Custom Message."); 01092 VERIFY_FAILS_END 01093 } 01094 01095 void testUINT32sNotWithinDeltaEvenThoughASignedIntWouldPass(void) 01096 { 01097 EXPECT_ABORT_BEGIN 01098 TEST_ASSERT_UINT32_WITHIN(5, 1, -1); 01099 VERIFY_FAILS_END 01100 } 01101 01102 void testUINT32sNotWithinDeltaEvenThoughASignedIntWouldPassAndCustomMessage(void) 01103 { 01104 EXPECT_ABORT_BEGIN 01105 TEST_ASSERT_UINT32_WITHIN_MESSAGE(5, 1, -1, "Custom Message."); 01106 VERIFY_FAILS_END 01107 } 01108 01109 void testUINT16sWithinDelta(void) 01110 { 01111 TEST_ASSERT_UINT16_WITHIN(1, 5000, 5001); 01112 TEST_ASSERT_UINT16_WITHIN(5, 5000, 4996); 01113 TEST_ASSERT_UINT16_WITHIN(5, 5000, 5005); 01114 } 01115 01116 void testUINT16sWithinDeltaAndCustomMessage(void) 01117 { 01118 TEST_ASSERT_UINT16_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message."); 01119 TEST_ASSERT_UINT16_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message."); 01120 TEST_ASSERT_UINT16_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message."); 01121 } 01122 01123 void testUINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void) 01124 { 01125 TEST_ASSERT_UINT16_WITHIN(5, 0x54321, 0x44321); 01126 } 01127 01128 void testUINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void) 01129 { 01130 TEST_ASSERT_UINT16_WITHIN_MESSAGE(5, 0x54321, 0x44321, "Custom Message."); 01131 } 01132 01133 void testUINT16sNotWithinDelta(void) 01134 { 01135 EXPECT_ABORT_BEGIN 01136 TEST_ASSERT_UINT16_WITHIN(2, 65535, 0); 01137 VERIFY_FAILS_END 01138 } 01139 01140 void testUINT16sNotWithinDeltaAndCustomMessage(void) 01141 { 01142 EXPECT_ABORT_BEGIN 01143 TEST_ASSERT_UINT16_WITHIN_MESSAGE(2, 65535, 0, "Custom Message."); 01144 VERIFY_FAILS_END 01145 } 01146 01147 void testUINT8sWithinDelta(void) 01148 { 01149 TEST_ASSERT_UINT8_WITHIN(1, 254, 255); 01150 TEST_ASSERT_UINT8_WITHIN(5, 251, 255); 01151 TEST_ASSERT_UINT8_WITHIN(5, 1, 4); 01152 } 01153 01154 void testUINT8sWithinDeltaAndCustomMessage(void) 01155 { 01156 TEST_ASSERT_UINT8_WITHIN_MESSAGE(1, 254, 255, "Custom Message."); 01157 TEST_ASSERT_UINT8_WITHIN_MESSAGE(5, 251, 255, "Custom Message."); 01158 TEST_ASSERT_UINT8_WITHIN_MESSAGE(5, 1, 4, "Custom Message."); 01159 } 01160 01161 void testUINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void) 01162 { 01163 TEST_ASSERT_UINT8_WITHIN(5, 0x123, 0xF23); 01164 } 01165 01166 void testUINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void) 01167 { 01168 TEST_ASSERT_UINT8_WITHIN_MESSAGE(5, 0x123, 0xF23, "Custom Message."); 01169 } 01170 01171 void testUINT8sNotWithinDelta(void) 01172 { 01173 EXPECT_ABORT_BEGIN 01174 TEST_ASSERT_UINT8_WITHIN(2, 255, 0); 01175 VERIFY_FAILS_END 01176 } 01177 01178 void testUINT8sNotWithinDeltaAndCustomMessage(void) 01179 { 01180 EXPECT_ABORT_BEGIN 01181 TEST_ASSERT_UINT8_WITHIN_MESSAGE(2, 255, 0, "Custom Message."); 01182 VERIFY_FAILS_END 01183 } 01184 01185 void testINT32sWithinDelta(void) 01186 { 01187 TEST_ASSERT_INT32_WITHIN(1, 5000, 5001); 01188 TEST_ASSERT_INT32_WITHIN(5, 1, -2); 01189 TEST_ASSERT_INT32_WITHIN(5, -2, 1); 01190 } 01191 01192 void testINT32sWithinDeltaAndCustomMessage(void) 01193 { 01194 TEST_ASSERT_INT32_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message."); 01195 } 01196 01197 void testINT32sNotWithinDelta(void) 01198 { 01199 EXPECT_ABORT_BEGIN 01200 TEST_ASSERT_INT32_WITHIN(1, -3, 1); 01201 VERIFY_FAILS_END 01202 } 01203 01204 void testINT32sNotWithinDeltaAndDifferenceOverflows(void) 01205 { 01206 EXPECT_ABORT_BEGIN 01207 TEST_ASSERT_INT32_WITHIN(1, -1, 0x7FFFFFFF); 01208 VERIFY_FAILS_END 01209 } 01210 void testINT32sNotWithinDeltaAndCustomMessage(void) 01211 { 01212 EXPECT_ABORT_BEGIN 01213 TEST_ASSERT_INT32_WITHIN_MESSAGE(1, -2, 1, "Custom Message."); 01214 VERIFY_FAILS_END 01215 } 01216 01217 void testINT16sWithinDelta(void) 01218 { 01219 TEST_ASSERT_INT16_WITHIN(1, 5000, 5001); 01220 TEST_ASSERT_INT16_WITHIN(5, 2, -2); 01221 TEST_ASSERT_INT16_WITHIN(5, -2, 2); 01222 } 01223 01224 void testINT16sWithinDeltaAndCustomMessage(void) 01225 { 01226 TEST_ASSERT_INT16_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message."); 01227 } 01228 01229 void testINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void) 01230 { 01231 TEST_ASSERT_INT16_WITHIN(5, 0x54321, 0x44321); 01232 } 01233 01234 void testINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void) 01235 { 01236 TEST_ASSERT_INT16_WITHIN_MESSAGE(5, 0x54321, 0x44321, "Custom Message."); 01237 } 01238 01239 void testINT16sNotWithinDelta(void) 01240 { 01241 EXPECT_ABORT_BEGIN 01242 TEST_ASSERT_INT16_WITHIN(2, 4, -2); 01243 VERIFY_FAILS_END 01244 } 01245 01246 void testINT16sNotWithinDeltaAndCustomMessage(void) 01247 { 01248 EXPECT_ABORT_BEGIN 01249 TEST_ASSERT_INT16_WITHIN_MESSAGE(2, 3, 0, "Custom Message."); 01250 VERIFY_FAILS_END 01251 } 01252 01253 void testINT8sWithinDelta(void) 01254 { 01255 TEST_ASSERT_INT8_WITHIN(1, 127, 126); 01256 TEST_ASSERT_INT8_WITHIN(5, -2, 2); 01257 TEST_ASSERT_INT8_WITHIN(5, 2, -2); 01258 } 01259 01260 void testINT8sWithinDeltaAndCustomMessage(void) 01261 { 01262 TEST_ASSERT_INT8_WITHIN_MESSAGE(5, 1, 4, "Custom Message."); 01263 } 01264 01265 void testINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void) 01266 { 01267 TEST_ASSERT_INT8_WITHIN(5, 0x123, 0xF23); 01268 } 01269 01270 void testINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void) 01271 { 01272 TEST_ASSERT_INT8_WITHIN_MESSAGE(5, 0x123, 0xF23, "Custom Message."); 01273 } 01274 01275 void testINT8sNotWithinDelta(void) 01276 { 01277 EXPECT_ABORT_BEGIN 01278 TEST_ASSERT_INT8_WITHIN(2, -3, 0); 01279 VERIFY_FAILS_END 01280 } 01281 01282 void testINT8sNotWithinDeltaAndCustomMessage(void) 01283 { 01284 EXPECT_ABORT_BEGIN 01285 TEST_ASSERT_INT8_WITHIN_MESSAGE(2, -4, 0, "Custom Message."); 01286 VERIFY_FAILS_END 01287 } 01288 01289 void testEqualStrings(void) 01290 { 01291 const char *testString = "foo"; 01292 01293 TEST_ASSERT_EQUAL_STRING(testString, testString); 01294 TEST_ASSERT_EQUAL_STRING_MESSAGE("foo", "foo", "foo isn't foo"); 01295 TEST_ASSERT_EQUAL_STRING("foo", testString); 01296 TEST_ASSERT_EQUAL_STRING(testString, "foo"); 01297 TEST_ASSERT_EQUAL_STRING("", ""); 01298 } 01299 01300 void testEqualStringsLen(void) 01301 { 01302 const char *testString = "foobar"; 01303 TEST_ASSERT_EQUAL_STRING_LEN(testString, testString, strlen(testString)); 01304 TEST_ASSERT_EQUAL_STRING_LEN_MESSAGE("foobar", "foobaz", 5, "fooba isn't fooba"); 01305 TEST_ASSERT_EQUAL_STRING_LEN("foo", testString, 3); 01306 TEST_ASSERT_EQUAL_STRING_LEN(testString, "foo", 3); 01307 TEST_ASSERT_EQUAL_STRING_LEN("", "", 3); 01308 } 01309 01310 void testEqualStringsWithCarriageReturnsAndLineFeeds(void) 01311 { 01312 const char *testString = "foo\r\nbar"; 01313 01314 TEST_ASSERT_EQUAL_STRING(testString, testString); 01315 TEST_ASSERT_EQUAL_STRING("foo\r\nbar", "foo\r\nbar"); 01316 TEST_ASSERT_EQUAL_STRING("foo\r\nbar", testString); 01317 TEST_ASSERT_EQUAL_STRING(testString, "foo\r\nbar"); 01318 TEST_ASSERT_EQUAL_STRING("", ""); 01319 } 01320 01321 void testNotEqualString1(void) 01322 { 01323 EXPECT_ABORT_BEGIN 01324 TEST_ASSERT_EQUAL_STRING("foo", "bar"); 01325 VERIFY_FAILS_END 01326 } 01327 01328 void testNotEqualStringLen1(void) 01329 { 01330 EXPECT_ABORT_BEGIN 01331 TEST_ASSERT_EQUAL_STRING_LEN("foobar", "foobaz", 6); 01332 VERIFY_FAILS_END 01333 } 01334 01335 void testNotEqualString2(void) 01336 { 01337 EXPECT_ABORT_BEGIN 01338 TEST_ASSERT_EQUAL_STRING("foo", ""); 01339 VERIFY_FAILS_END 01340 } 01341 01342 void testNotEqualStringLen2(void) 01343 { 01344 EXPECT_ABORT_BEGIN 01345 TEST_ASSERT_EQUAL_STRING_LEN("foo", "", 3); 01346 VERIFY_FAILS_END 01347 } 01348 01349 void testNotEqualString3(void) 01350 { 01351 EXPECT_ABORT_BEGIN 01352 TEST_ASSERT_EQUAL_STRING("", "bar"); 01353 VERIFY_FAILS_END 01354 } 01355 01356 void testNotEqualStringLen3(void) 01357 { 01358 EXPECT_ABORT_BEGIN 01359 TEST_ASSERT_EQUAL_STRING_LEN("", "bar", 3); 01360 VERIFY_FAILS_END 01361 } 01362 01363 void testNotEqualString4(void) 01364 { 01365 EXPECT_ABORT_BEGIN 01366 TEST_ASSERT_EQUAL_STRING("bar\r", "bar\n"); 01367 VERIFY_FAILS_END 01368 } 01369 01370 void testNotEqualStringLen4(void) 01371 { 01372 EXPECT_ABORT_BEGIN 01373 TEST_ASSERT_EQUAL_STRING_LEN("\r\x16", "bar\n", 4); 01374 VERIFY_FAILS_END 01375 } 01376 01377 void testNotEqualString5(void) 01378 { 01379 const char str1[] = { 0x41, 0x42, 0x03, 0x00 }; 01380 const char str2[] = { 0x41, 0x42, 0x04, 0x00 }; 01381 EXPECT_ABORT_BEGIN 01382 TEST_ASSERT_EQUAL_STRING(str1, str2); 01383 VERIFY_FAILS_END 01384 } 01385 01386 void testNotEqualString_ExpectedStringIsNull(void) 01387 { 01388 EXPECT_ABORT_BEGIN 01389 TEST_ASSERT_EQUAL_STRING(NULL, "bar"); 01390 VERIFY_FAILS_END 01391 } 01392 01393 void testNotEqualStringLen_ExpectedStringIsNull(void) 01394 { 01395 EXPECT_ABORT_BEGIN 01396 TEST_ASSERT_EQUAL_STRING_LEN(NULL, "bar", 1); 01397 VERIFY_FAILS_END 01398 } 01399 01400 void testNotEqualString_ActualStringIsNull(void) 01401 { 01402 EXPECT_ABORT_BEGIN 01403 TEST_ASSERT_EQUAL_STRING("foo", NULL); 01404 VERIFY_FAILS_END 01405 } 01406 01407 void testNotEqualStringLen_ActualStringIsNull(void) 01408 { 01409 EXPECT_ABORT_BEGIN 01410 TEST_ASSERT_EQUAL_STRING_LEN("foo", NULL, 1); 01411 VERIFY_FAILS_END 01412 } 01413 01414 void testEqualStringArrays(void) 01415 { 01416 const char *testStrings[] = { "foo", "boo", "woo", "moo" }; 01417 const char *expStrings[] = { "foo", "boo", "woo", "zoo" }; 01418 01419 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, expStrings, 3); 01420 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 3); 01421 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 2); 01422 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 1); 01423 } 01424 01425 void testNotEqualStringArray1(void) 01426 { 01427 const char *testStrings[] = { "foo", "boo", "woo", "moo" }; 01428 const char *expStrings[] = { "foo", "boo", "woo", "zoo" }; 01429 01430 EXPECT_ABORT_BEGIN 01431 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); 01432 VERIFY_FAILS_END 01433 } 01434 01435 void testNotEqualStringArray2(void) 01436 { 01437 const char *testStrings[] = { "zoo", "boo", "woo", "moo" }; 01438 const char *expStrings[] = { "foo", "boo", "woo", "moo" }; 01439 01440 EXPECT_ABORT_BEGIN 01441 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); 01442 VERIFY_FAILS_END 01443 } 01444 01445 void testNotEqualStringArray3(void) 01446 { 01447 const char *testStrings[] = { "foo", "boo", "woo", NULL }; 01448 const char *expStrings[] = { "foo", "boo", "woo", "zoo" }; 01449 01450 EXPECT_ABORT_BEGIN 01451 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); 01452 VERIFY_FAILS_END 01453 } 01454 01455 void testNotEqualStringArray4(void) 01456 { 01457 const char *testStrings[] = { "foo", "boo", "woo", "moo" }; 01458 const char *expStrings[] = { "foo", NULL, "woo", "moo" }; 01459 01460 EXPECT_ABORT_BEGIN 01461 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); 01462 VERIFY_FAILS_END 01463 } 01464 01465 void testNotEqualStringArray5(void) 01466 { 01467 const char **testStrings = NULL; 01468 const char *expStrings[] = { "foo", "boo", "woo", "zoo" }; 01469 01470 EXPECT_ABORT_BEGIN 01471 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); 01472 VERIFY_FAILS_END 01473 } 01474 01475 void testNotEqualStringArray6(void) 01476 { 01477 const char *testStrings[] = { "foo", "boo", "woo", "zoo" }; 01478 const char **expStrings = NULL; 01479 01480 EXPECT_ABORT_BEGIN 01481 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); 01482 VERIFY_FAILS_END 01483 } 01484 01485 void testEqualStringArrayIfBothNulls(void) 01486 { 01487 const char **testStrings = NULL; 01488 const char **expStrings = NULL; 01489 01490 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); 01491 } 01492 01493 void testNotEqualStringArrayLengthZero(void) 01494 { 01495 const char *testStrings[] = {NULL}; 01496 const char **expStrings = NULL; 01497 01498 EXPECT_ABORT_BEGIN 01499 TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 0); 01500 VERIFY_FAILS_END 01501 } 01502 01503 void testEqualMemory(void) 01504 { 01505 const char *testString = "whatever"; 01506 01507 TEST_ASSERT_EQUAL_MEMORY(testString, testString, 8); 01508 TEST_ASSERT_EQUAL_MEMORY("whatever", "whatever", 8); 01509 TEST_ASSERT_EQUAL_MEMORY("whatever", testString, 8); 01510 TEST_ASSERT_EQUAL_MEMORY(testString, "whatever", 8); 01511 TEST_ASSERT_EQUAL_MEMORY(testString, "whatever", 2); 01512 TEST_ASSERT_EQUAL_MEMORY(NULL, NULL, 1); 01513 } 01514 01515 void testNotEqualMemory1(void) 01516 { 01517 EXPECT_ABORT_BEGIN 01518 TEST_ASSERT_EQUAL_MEMORY("foo", "bar", 3); 01519 VERIFY_FAILS_END 01520 } 01521 01522 void testNotEqualMemory2(void) 01523 { 01524 EXPECT_ABORT_BEGIN 01525 TEST_ASSERT_EQUAL_MEMORY("fool", "food", 4); 01526 VERIFY_FAILS_END 01527 } 01528 01529 void testNotEqualMemory3(void) 01530 { 01531 EXPECT_ABORT_BEGIN 01532 TEST_ASSERT_EQUAL_MEMORY(NULL, "food", 4); 01533 VERIFY_FAILS_END 01534 } 01535 01536 void testNotEqualMemory4(void) 01537 { 01538 EXPECT_ABORT_BEGIN 01539 TEST_ASSERT_EQUAL_MEMORY("fool", NULL, 4); 01540 VERIFY_FAILS_END 01541 } 01542 01543 void testNotEqualMemoryLengthZero(void) 01544 { 01545 EXPECT_ABORT_BEGIN 01546 TEST_ASSERT_EQUAL_MEMORY(NULL, NULL, 0); 01547 VERIFY_FAILS_END 01548 } 01549 01550 void testEqualIntArrays(void) 01551 { 01552 int p0[] = {1, 8, 987, -2}; 01553 int p1[] = {1, 8, 987, -2}; 01554 int p2[] = {1, 8, 987, 2}; 01555 int p3[] = {1, 500, 600, 700}; 01556 01557 TEST_ASSERT_EQUAL_INT_ARRAY(p0, p0, 1); 01558 TEST_ASSERT_EQUAL_INT_ARRAY(p0, p0, 4); 01559 TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); 01560 TEST_ASSERT_EQUAL_INT_ARRAY(p0, p2, 3); 01561 TEST_ASSERT_EQUAL_INT_ARRAY(p0, p3, 1); 01562 TEST_ASSERT_EQUAL_INT_ARRAY(NULL, NULL, 1); 01563 } 01564 01565 void testNotEqualIntArraysNullExpected(void) 01566 { 01567 int* p0 = NULL; 01568 int p1[] = {1, 8, 987, 2}; 01569 01570 EXPECT_ABORT_BEGIN 01571 TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); 01572 VERIFY_FAILS_END 01573 } 01574 01575 void testNotEqualIntArraysNullActual(void) 01576 { 01577 int* p1 = NULL; 01578 int p0[] = {1, 8, 987, 2}; 01579 01580 EXPECT_ABORT_BEGIN 01581 TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); 01582 VERIFY_FAILS_END 01583 } 01584 01585 void testNotEqualIntArrays1(void) 01586 { 01587 int p0[] = {1, 8, 987, -2}; 01588 int p1[] = {1, 8, 987, 2}; 01589 01590 EXPECT_ABORT_BEGIN 01591 TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); 01592 VERIFY_FAILS_END 01593 } 01594 01595 void testNotEqualIntArrays2(void) 01596 { 01597 int p0[] = {1, 8, 987, -2}; 01598 int p1[] = {2, 8, 987, -2}; 01599 01600 EXPECT_ABORT_BEGIN 01601 TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); 01602 VERIFY_FAILS_END 01603 } 01604 01605 void testNotEqualIntArrays3(void) 01606 { 01607 int p0[] = {1, 8, 987, -2}; 01608 int p1[] = {1, 8, 986, -2}; 01609 01610 EXPECT_ABORT_BEGIN 01611 TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); 01612 VERIFY_FAILS_END 01613 } 01614 01615 void testNotEqualIntArraysLengthZero(void) 01616 { 01617 _UU32 p0[1] = {1}; 01618 _UU32 p1[1] = {1}; 01619 01620 EXPECT_ABORT_BEGIN 01621 TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 0); 01622 VERIFY_FAILS_END 01623 } 01624 01625 void testEqualPtrArrays(void) 01626 { 01627 char A = 1; 01628 char B = 2; 01629 char C = 3; 01630 char* p0[] = {&A, &B, &C}; 01631 char* p1[] = {&A, &B, &C, &A}; 01632 char* p2[] = {&A, &B}; 01633 char* p3[] = {&A}; 01634 01635 TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p0, 1); 01636 TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p0, 3); 01637 TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 3); 01638 TEST_ASSERT_EQUAL_PTR_ARRAY(p1, p2, 2); 01639 TEST_ASSERT_EQUAL_PTR_ARRAY(p3, p0, 1); 01640 } 01641 01642 void testNotEqualPtrArraysNullExpected(void) 01643 { 01644 char A = 1; 01645 char B = 2; 01646 char** p0 = NULL; 01647 char* p1[] = {&A, &B}; 01648 01649 EXPECT_ABORT_BEGIN 01650 TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 2); 01651 VERIFY_FAILS_END 01652 } 01653 01654 void testNotEqualPtrArraysNullActual(void) 01655 { 01656 char A = 1; 01657 char B = 2; 01658 char** p0 = NULL; 01659 char* p1[] = {&A, &B}; 01660 01661 EXPECT_ABORT_BEGIN 01662 TEST_ASSERT_EQUAL_PTR_ARRAY(p1, p0, 2); 01663 VERIFY_FAILS_END 01664 } 01665 01666 void testNotEqualPtrArrays1(void) 01667 { 01668 char A = 1; 01669 char B = 2; 01670 char C = 3; 01671 char* p0[] = {&A, &B, &C, &B}; 01672 char* p1[] = {&A, &B, &C, &A}; 01673 01674 EXPECT_ABORT_BEGIN 01675 TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4); 01676 VERIFY_FAILS_END 01677 } 01678 01679 void testNotEqualPtrArrays2(void) 01680 { 01681 char A = 1; 01682 char B = 2; 01683 char C = 3; 01684 char* p0[] = {&B, &B, &C, &A}; 01685 char* p1[] = {&A, &B, &C, &A}; 01686 01687 EXPECT_ABORT_BEGIN 01688 TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4); 01689 VERIFY_FAILS_END 01690 } 01691 01692 void testNotEqualPtrArrays3(void) 01693 { 01694 char A = 1; 01695 char B = 2; 01696 char C = 3; 01697 char* p0[] = {&A, &B, &B, &A}; 01698 char* p1[] = {&A, &B, &C, &A}; 01699 01700 EXPECT_ABORT_BEGIN 01701 TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4); 01702 VERIFY_FAILS_END 01703 } 01704 01705 void testEqualInt8Arrays(void) 01706 { 01707 _US8 p0[] = {1, 8, 117, -2}; 01708 _US8 p1[] = {1, 8, 117, -2}; 01709 _US8 p2[] = {1, 8, 117, 2}; 01710 _US8 p3[] = {1, 50, 60, 70}; 01711 01712 TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p0, 1); 01713 TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p0, 4); 01714 TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p1, 4); 01715 TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p2, 3); 01716 TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p3, 1); 01717 } 01718 01719 void testNotEqualInt8Arrays(void) 01720 { 01721 _US8 p0[] = {1, 8, 36, -2}; 01722 _US8 p1[] = {1, 8, 36, 2}; 01723 01724 EXPECT_ABORT_BEGIN 01725 TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p1, 4); 01726 VERIFY_FAILS_END 01727 } 01728 01729 void testEqualUIntArrays(void) 01730 { 01731 unsigned int p0[] = {1, 8, 987, 65132u}; 01732 unsigned int p1[] = {1, 8, 987, 65132u}; 01733 unsigned int p2[] = {1, 8, 987, 2}; 01734 unsigned int p3[] = {1, 500, 600, 700}; 01735 01736 TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p0, 1); 01737 TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p0, 4); 01738 TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4); 01739 TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p2, 3); 01740 TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p3, 1); 01741 } 01742 01743 void testNotEqualUIntArrays1(void) 01744 { 01745 unsigned int p0[] = {1, 8, 987, 65132u}; 01746 unsigned int p1[] = {1, 8, 987, 65131u}; 01747 01748 EXPECT_ABORT_BEGIN 01749 TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4); 01750 VERIFY_FAILS_END 01751 } 01752 01753 void testNotEqualUIntArrays2(void) 01754 { 01755 unsigned int p0[] = {1, 8, 987, 65132u}; 01756 unsigned int p1[] = {2, 8, 987, 65132u}; 01757 01758 EXPECT_ABORT_BEGIN 01759 TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4); 01760 VERIFY_FAILS_END 01761 } 01762 01763 void testNotEqualUIntArrays3(void) 01764 { 01765 unsigned int p0[] = {1, 8, 987, 65132u}; 01766 unsigned int p1[] = {1, 8, 986, 65132u}; 01767 01768 EXPECT_ABORT_BEGIN 01769 TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4); 01770 VERIFY_FAILS_END 01771 } 01772 01773 void testEqualInt16Arrays(void) 01774 { 01775 _US16 p0[] = {1, 8, 117, 3}; 01776 _US16 p1[] = {1, 8, 117, 3}; 01777 _US16 p2[] = {1, 8, 117, 2}; 01778 _US16 p3[] = {1, 50, 60, 70}; 01779 01780 TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p0, 1); 01781 TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p0, 4); 01782 TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p1, 4); 01783 TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p2, 3); 01784 TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p3, 1); 01785 } 01786 01787 void testNotEqualInt16Arrays(void) 01788 { 01789 _US16 p0[] = {1, 8, 127, 3}; 01790 _US16 p1[] = {1, 8, 127, 2}; 01791 01792 EXPECT_ABORT_BEGIN 01793 TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p1, 4); 01794 VERIFY_FAILS_END 01795 } 01796 01797 void testEqualInt32Arrays(void) 01798 { 01799 _US32 p0[] = {1, 8, 117, 3}; 01800 _US32 p1[] = {1, 8, 117, 3}; 01801 _US32 p2[] = {1, 8, 117, 2}; 01802 _US32 p3[] = {1, 50, 60, 70}; 01803 01804 TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p0, 1); 01805 TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p0, 4); 01806 TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p1, 4); 01807 TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p2, 3); 01808 TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p3, 1); 01809 } 01810 01811 void testNotEqualInt32Arrays(void) 01812 { 01813 _US32 p0[] = {1, 8, 127, 3}; 01814 _US32 p1[] = {1, 8, 127, 2}; 01815 01816 EXPECT_ABORT_BEGIN 01817 TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p1, 4); 01818 VERIFY_FAILS_END 01819 } 01820 01821 void testEqualUINT8Arrays(void) 01822 { 01823 _UU8 p0[] = {1, 8, 100, 127}; 01824 _UU8 p1[] = {1, 8, 100, 127}; 01825 _UU8 p2[] = {1, 8, 100, 2}; 01826 _UU8 p3[] = {1, 50, 60, 70}; 01827 01828 TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p0, 1); 01829 TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p0, 4); 01830 TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p1, 4); 01831 TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p2, 3); 01832 TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p3, 1); 01833 } 01834 01835 void testNotEqualUINT8Arrays1(void) 01836 { 01837 unsigned char p0[] = {1, 8, 100, 127u}; 01838 unsigned char p1[] = {1, 8, 100, 255u}; 01839 01840 EXPECT_ABORT_BEGIN 01841 TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p1, 4); 01842 VERIFY_FAILS_END 01843 } 01844 01845 void testNotEqualUINT8Arrays2(void) 01846 { 01847 unsigned char p0[] = {1, 8, 100, 127u}; 01848 unsigned char p1[] = {1, 8, 100, 255u}; 01849 01850 EXPECT_ABORT_BEGIN 01851 TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p1, 4); 01852 VERIFY_FAILS_END 01853 } 01854 01855 void testNotEqualUINT8Arrays3(void) 01856 { 01857 unsigned char p0[] = {1, 8, 100, 127u}; 01858 unsigned char p1[] = {1, 8, 100, 255u}; 01859 01860 EXPECT_ABORT_BEGIN 01861 TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p1, 4); 01862 VERIFY_FAILS_END 01863 } 01864 01865 01866 void testEqualUINT16Arrays(void) 01867 { 01868 unsigned short p0[] = {1, 8, 987, 65132u}; 01869 unsigned short p1[] = {1, 8, 987, 65132u}; 01870 unsigned short p2[] = {1, 8, 987, 2}; 01871 unsigned short p3[] = {1, 500, 600, 700}; 01872 01873 TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p0, 1); 01874 TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p0, 4); 01875 TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4); 01876 TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p2, 3); 01877 TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p3, 1); 01878 } 01879 01880 void testNotEqualUINT16Arrays1(void) 01881 { 01882 unsigned short p0[] = {1, 8, 987, 65132u}; 01883 unsigned short p1[] = {1, 8, 987, 65131u}; 01884 01885 EXPECT_ABORT_BEGIN 01886 TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4); 01887 VERIFY_FAILS_END 01888 } 01889 01890 void testNotEqualUINT16Arrays2(void) 01891 { 01892 unsigned short p0[] = {1, 8, 987, 65132u}; 01893 unsigned short p1[] = {2, 8, 987, 65132u}; 01894 01895 EXPECT_ABORT_BEGIN 01896 TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4); 01897 VERIFY_FAILS_END 01898 } 01899 01900 void testNotEqualUINT16Arrays3(void) 01901 { 01902 unsigned short p0[] = {1, 8, 987, 65132u}; 01903 unsigned short p1[] = {1, 8, 986, 65132u}; 01904 01905 EXPECT_ABORT_BEGIN 01906 TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4); 01907 VERIFY_FAILS_END 01908 } 01909 01910 void testEqualUINT32Arrays(void) 01911 { 01912 _UU32 p0[] = {1, 8, 987, 65132u}; 01913 _UU32 p1[] = {1, 8, 987, 65132u}; 01914 _UU32 p2[] = {1, 8, 987, 2}; 01915 _UU32 p3[] = {1, 500, 600, 700}; 01916 01917 TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p0, 1); 01918 TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p0, 4); 01919 TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4); 01920 TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p2, 3); 01921 TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p3, 1); 01922 } 01923 01924 void testNotEqualUINT32Arrays1(void) 01925 { 01926 _UU32 p0[] = {1, 8, 987, 65132u}; 01927 _UU32 p1[] = {1, 8, 987, 65131u}; 01928 01929 EXPECT_ABORT_BEGIN 01930 TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4); 01931 VERIFY_FAILS_END 01932 } 01933 01934 void testNotEqualUINT32Arrays2(void) 01935 { 01936 _UU32 p0[] = {1, 8, 987, 65132u}; 01937 _UU32 p1[] = {2, 8, 987, 65132u}; 01938 01939 EXPECT_ABORT_BEGIN 01940 TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4); 01941 VERIFY_FAILS_END 01942 } 01943 01944 void testNotEqualUINT32Arrays3(void) 01945 { 01946 _UU32 p0[] = {1, 8, 987, 65132u}; 01947 _UU32 p1[] = {1, 8, 986, 65132u}; 01948 01949 EXPECT_ABORT_BEGIN 01950 TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4); 01951 VERIFY_FAILS_END 01952 } 01953 01954 void testEqualHEXArrays(void) 01955 { 01956 _UU32 p0[] = {1, 8, 987, 65132u}; 01957 _UU32 p1[] = {1, 8, 987, 65132u}; 01958 _UU32 p2[] = {1, 8, 987, 2}; 01959 _UU32 p3[] = {1, 500, 600, 700}; 01960 01961 TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p0, 1); 01962 TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p0, 4); 01963 TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p1, 4); 01964 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p2, 3); 01965 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p3, 1); 01966 } 01967 01968 void testNotEqualHEXArrays1(void) 01969 { 01970 _UU32 p0[] = {1, 8, 987, 65132u}; 01971 _UU32 p1[] = {1, 8, 987, 65131u}; 01972 01973 EXPECT_ABORT_BEGIN 01974 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4); 01975 VERIFY_FAILS_END 01976 } 01977 01978 void testNotEqualHEXArrays2(void) 01979 { 01980 _UU32 p0[] = {1, 8, 987, 65132u}; 01981 _UU32 p1[] = {2, 8, 987, 65132u}; 01982 01983 EXPECT_ABORT_BEGIN 01984 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4); 01985 VERIFY_FAILS_END 01986 } 01987 01988 void testNotEqualHEXArrays3(void) 01989 { 01990 _UU32 p0[] = {1, 8, 987, 65132u}; 01991 _UU32 p1[] = {1, 8, 986, 65132u}; 01992 01993 EXPECT_ABORT_BEGIN 01994 TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p1, 4); 01995 VERIFY_FAILS_END 01996 } 01997 01998 void testEqualHEX32Arrays(void) 01999 { 02000 _UU32 p0[] = {1, 8, 987, 65132u}; 02001 _UU32 p1[] = {1, 8, 987, 65132u}; 02002 _UU32 p2[] = {1, 8, 987, 2}; 02003 _UU32 p3[] = {1, 500, 600, 700}; 02004 02005 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p0, 1); 02006 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p0, 4); 02007 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4); 02008 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p2, 3); 02009 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p3, 1); 02010 } 02011 02012 void testNotEqualHEX32Arrays1(void) 02013 { 02014 _UU32 p0[] = {1, 8, 987, 65132u}; 02015 _UU32 p1[] = {1, 8, 987, 65131u}; 02016 02017 EXPECT_ABORT_BEGIN 02018 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4); 02019 VERIFY_FAILS_END 02020 } 02021 02022 void testNotEqualHEX32Arrays2(void) 02023 { 02024 _UU32 p0[] = {1, 8, 987, 65132u}; 02025 _UU32 p1[] = {2, 8, 987, 65132u}; 02026 02027 EXPECT_ABORT_BEGIN 02028 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4); 02029 VERIFY_FAILS_END 02030 } 02031 02032 void testNotEqualHEX32Arrays3(void) 02033 { 02034 _UU32 p0[] = {1, 8, 987, 65132u}; 02035 _UU32 p1[] = {1, 8, 986, 65132u}; 02036 02037 EXPECT_ABORT_BEGIN 02038 TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4); 02039 VERIFY_FAILS_END 02040 } 02041 02042 void testEqualHEX16Arrays(void) 02043 { 02044 unsigned short p0[] = {1, 8, 987, 65132u}; 02045 unsigned short p1[] = {1, 8, 987, 65132u}; 02046 unsigned short p2[] = {1, 8, 987, 2}; 02047 unsigned short p3[] = {1, 500, 600, 700}; 02048 02049 TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p0, 1); 02050 TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p0, 4); 02051 TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4); 02052 TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p2, 3); 02053 TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p3, 1); 02054 } 02055 02056 void testNotEqualHEX16Arrays1(void) 02057 { 02058 unsigned short p0[] = {1, 8, 987, 65132u}; 02059 unsigned short p1[] = {1, 8, 987, 65131u}; 02060 02061 EXPECT_ABORT_BEGIN 02062 TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4); 02063 VERIFY_FAILS_END 02064 } 02065 02066 void testNotEqualHEX16Arrays2(void) 02067 { 02068 unsigned short p0[] = {1, 8, 987, 65132u}; 02069 unsigned short p1[] = {2, 8, 987, 65132u}; 02070 02071 EXPECT_ABORT_BEGIN 02072 TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4); 02073 VERIFY_FAILS_END 02074 } 02075 02076 void testNotEqualHEX16Arrays3(void) 02077 { 02078 unsigned short p0[] = {1, 8, 987, 65132u}; 02079 unsigned short p1[] = {1, 8, 986, 65132u}; 02080 02081 EXPECT_ABORT_BEGIN 02082 TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4); 02083 VERIFY_FAILS_END 02084 } 02085 02086 void testEqualHEX8Arrays(void) 02087 { 02088 unsigned short p0[] = {1, 8, 254u, 123}; 02089 unsigned short p1[] = {1, 8, 254u, 123}; 02090 unsigned short p2[] = {1, 8, 254u, 2}; 02091 unsigned short p3[] = {1, 23, 25, 26}; 02092 02093 TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p0, 1); 02094 TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p0, 4); 02095 TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4); 02096 TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p2, 3); 02097 TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p3, 1); 02098 } 02099 02100 void testNotEqualHEX8Arrays1(void) 02101 { 02102 unsigned char p0[] = {1, 8, 254u, 253u}; 02103 unsigned char p1[] = {1, 8, 254u, 252u}; 02104 02105 EXPECT_ABORT_BEGIN 02106 TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4); 02107 VERIFY_FAILS_END 02108 } 02109 02110 void testNotEqualHEX8Arrays2(void) 02111 { 02112 unsigned char p0[] = {1, 8, 254u, 253u}; 02113 unsigned char p1[] = {2, 8, 254u, 253u}; 02114 02115 EXPECT_ABORT_BEGIN 02116 TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4); 02117 VERIFY_FAILS_END 02118 } 02119 02120 void testNotEqualHEX8Arrays3(void) 02121 { 02122 unsigned char p0[] = {1, 8, 254u, 253u}; 02123 unsigned char p1[] = {1, 8, 255u, 253u}; 02124 02125 EXPECT_ABORT_BEGIN 02126 TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4); 02127 VERIFY_FAILS_END 02128 } 02129 02130 void testEqualMemoryArrays(void) 02131 { 02132 int p0[] = {1, 8, 987, -2}; 02133 int p1[] = {1, 8, 987, -2}; 02134 int p2[] = {1, 8, 987, 2}; 02135 int p3[] = {1, 500, 600, 700}; 02136 02137 TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p0, sizeof(int), 1); 02138 TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p0, sizeof(int), 4); 02139 TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4); 02140 TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p2, sizeof(int), 3); 02141 TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p3, sizeof(int), 1); 02142 } 02143 02144 void testNotEqualMemoryArraysExpectedNull(void) 02145 { 02146 int* p0 = NULL; 02147 int p1[] = {1, 8, 987, 2}; 02148 02149 EXPECT_ABORT_BEGIN 02150 TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4); 02151 VERIFY_FAILS_END 02152 } 02153 02154 void testNotEqualMemoryArraysActualNull(void) 02155 { 02156 int p0[] = {1, 8, 987, -2}; 02157 int* p1 = NULL; 02158 02159 EXPECT_ABORT_BEGIN 02160 TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4); 02161 VERIFY_FAILS_END 02162 } 02163 02164 void testNotEqualMemoryArrays1(void) 02165 { 02166 int p0[] = {1, 8, 987, -2}; 02167 int p1[] = {1, 8, 987, 2}; 02168 02169 EXPECT_ABORT_BEGIN 02170 TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4); 02171 VERIFY_FAILS_END 02172 } 02173 02174 void testNotEqualMemoryArrays2(void) 02175 { 02176 int p0[] = {1, 8, 987, -2}; 02177 int p1[] = {2, 8, 987, -2}; 02178 02179 EXPECT_ABORT_BEGIN 02180 TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4); 02181 VERIFY_FAILS_END 02182 } 02183 02184 void testNotEqualMemoryArrays3(void) 02185 { 02186 int p0[] = {1, 8, 987, -2}; 02187 int p1[] = {1, 8, 986, -2}; 02188 02189 EXPECT_ABORT_BEGIN 02190 TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4); 02191 VERIFY_FAILS_END 02192 } 02193 02194 void testProtection(void) 02195 { 02196 volatile int mask = 0; 02197 02198 if (TEST_PROTECT()) 02199 { 02200 mask |= 1; 02201 TEST_ABORT(); 02202 } 02203 else 02204 { 02205 Unity.CurrentTestFailed = 0; 02206 mask |= 2; 02207 } 02208 02209 TEST_ASSERT_EQUAL(3, mask); 02210 } 02211 02212 void testIgnoredAndThenFailInTearDown(void) 02213 { 02214 SetToOneToFailInTearDown = 1; 02215 TEST_IGNORE(); 02216 } 02217 02218 // Tricky series of macros to set USING_OUTPUT_SPY 02219 #define USING_SPY_AS(a) EXPAND_AND_USE_2ND(ASSIGN_VALUE(a), 0) 02220 #define ASSIGN_VALUE(a) VAL_##a 02221 #define VAL_putcharSpy 0, 1 02222 #define EXPAND_AND_USE_2ND(a, b) SECOND_PARAM(a, b, throwaway) 02223 #define SECOND_PARAM(a, b, ...) b 02224 #if USING_SPY_AS(UNITY_OUTPUT_CHAR) 02225 #define USING_OUTPUT_SPY // true only if UNITY_OUTPUT_CHAR = putcharSpy 02226 #endif 02227 02228 #ifdef USING_OUTPUT_SPY 02229 #include <stdio.h> 02230 #define SPY_BUFFER_MAX 40 02231 static char putcharSpyBuffer[SPY_BUFFER_MAX]; 02232 #endif 02233 static int indexSpyBuffer; 02234 static int putcharSpyEnabled; 02235 02236 void startPutcharSpy(void) {indexSpyBuffer = 0; putcharSpyEnabled = 1;} 02237 02238 void endPutcharSpy(void) {putcharSpyEnabled = 0;} 02239 02240 char* getBufferPutcharSpy(void) 02241 { 02242 #ifdef USING_OUTPUT_SPY 02243 putcharSpyBuffer[indexSpyBuffer] = '\0'; 02244 return putcharSpyBuffer; 02245 #else 02246 return NULL; 02247 #endif 02248 } 02249 02250 void putcharSpy(int c) 02251 { 02252 #ifdef USING_OUTPUT_SPY 02253 if (putcharSpyEnabled) 02254 { 02255 if (indexSpyBuffer < SPY_BUFFER_MAX - 1) 02256 putcharSpyBuffer[indexSpyBuffer++] = (char)c; 02257 } else 02258 c = putchar(c); 02259 #endif 02260 } 02261 02262 void testFailureCountIncrementsAndIsReturnedAtEnd(void) 02263 { 02264 Unity.CurrentTestFailed = 1; 02265 startPutcharSpy(); // Suppress output 02266 UnityConcludeTest(); 02267 TEST_ASSERT_EQUAL(1, Unity.TestFailures); 02268 02269 int failures = UnityEnd(); 02270 Unity.TestFailures--; 02271 endPutcharSpy(); 02272 TEST_ASSERT_EQUAL(1, failures); 02273 } 02274 02275 #define TEST_ASSERT_EQUAL_PRINT_NUMBERS(expected, actual) { \ 02276 startPutcharSpy(); UnityPrintNumber((actual)); endPutcharSpy(); \ 02277 TEST_ASSERT_EQUAL_STRING((expected), getBufferPutcharSpy()); \ 02278 } 02279 02280 #define TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS(expected, actual) { \ 02281 startPutcharSpy(); UnityPrintNumberUnsigned((actual)); endPutcharSpy(); \ 02282 TEST_ASSERT_EQUAL_STRING((expected), getBufferPutcharSpy()); \ 02283 } 02284 02285 void testPrintNumbers32(void) 02286 { 02287 #ifndef USING_OUTPUT_SPY 02288 TEST_IGNORE_MESSAGE("Compile with '-D UNITY_OUTPUT_CHAR=putcharSpy' to enable print testing"); 02289 #else 02290 TEST_ASSERT_EQUAL_PRINT_NUMBERS("0", 0); 02291 TEST_ASSERT_EQUAL_PRINT_NUMBERS("1", 1); 02292 TEST_ASSERT_EQUAL_PRINT_NUMBERS("-1", -1); 02293 TEST_ASSERT_EQUAL_PRINT_NUMBERS("2000000000", 2000000000); 02294 TEST_ASSERT_EQUAL_PRINT_NUMBERS("-2147483648", (_US32)0x80000000); 02295 TEST_ASSERT_EQUAL_PRINT_NUMBERS("-1", (_US32)0xFFFFFFFF); 02296 #endif 02297 } 02298 02299 void testPrintNumbersUnsigned32(void) 02300 { 02301 #ifndef USING_OUTPUT_SPY 02302 TEST_IGNORE(); 02303 #else 02304 TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("0", 0); 02305 TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("1", 1); 02306 TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("1500000000", 1500000000); 02307 TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("2147483648", (_UU32)0x80000000); 02308 TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("4294967295", (_UU32)0xFFFFFFFF); 02309 #endif 02310 } 02311 02312 // ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES 64 BIT SUPPORT ================== 02313 02314 void testPrintNumbersInt64(void) 02315 { 02316 #ifndef UNITY_SUPPORT_64 02317 TEST_IGNORE(); 02318 #else 02319 #ifndef USING_OUTPUT_SPY 02320 TEST_IGNORE(); 02321 #else 02322 TEST_ASSERT_EQUAL_PRINT_NUMBERS("0", 0); 02323 TEST_ASSERT_EQUAL_PRINT_NUMBERS("10000000000", 10000000000); 02324 TEST_ASSERT_EQUAL_PRINT_NUMBERS("-9223372036854775808", (_U_SINT)0x8000000000000000); 02325 TEST_ASSERT_EQUAL_PRINT_NUMBERS("-1", (_U_SINT)0xFFFFFFFFFFFFFFFF); 02326 #endif 02327 #endif 02328 } 02329 02330 void testPrintNumbersUInt64(void) 02331 { 02332 #ifndef UNITY_SUPPORT_64 02333 TEST_IGNORE(); 02334 #else 02335 #ifndef USING_OUTPUT_SPY 02336 TEST_IGNORE(); 02337 #else 02338 TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("0", 0); 02339 TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("70000000000", 70000000000); 02340 TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("9223372036854775808", (_U_UINT)0x8000000000000000); 02341 TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("18446744073709551615", (_U_UINT)0xFFFFFFFFFFFFFFFF); 02342 #endif 02343 #endif 02344 } 02345 02346 void testEqualHex64s(void) 02347 { 02348 #ifndef UNITY_SUPPORT_64 02349 TEST_IGNORE(); 02350 #else 02351 _UU64 v0, v1; 02352 _UU64 *p0, *p1; 02353 02354 v0 = 0x9876543201234567; 02355 v1 = 0x9876543201234567; 02356 p0 = &v0; 02357 p1 = &v1; 02358 02359 TEST_ASSERT_EQUAL_HEX64(0x9876543201234567, 0x9876543201234567); 02360 TEST_ASSERT_EQUAL_HEX64(v0, v1); 02361 TEST_ASSERT_EQUAL_HEX64(0x9876543201234567, v1); 02362 TEST_ASSERT_EQUAL_HEX64(v0, 0x9876543201234567); 02363 TEST_ASSERT_EQUAL_HEX64(*p0, v1); 02364 TEST_ASSERT_EQUAL_HEX64(*p0, *p1); 02365 TEST_ASSERT_EQUAL_HEX64(*p0, 0x9876543201234567); 02366 #endif 02367 } 02368 02369 void testEqualUint64s(void) 02370 { 02371 #ifndef UNITY_SUPPORT_64 02372 TEST_IGNORE(); 02373 #else 02374 _UU64 v0, v1; 02375 _UU64 *p0, *p1; 02376 02377 v0 = 0x9876543201234567; 02378 v1 = 0x9876543201234567; 02379 p0 = &v0; 02380 p1 = &v1; 02381 02382 TEST_ASSERT_EQUAL_UINT64(0x9876543201234567, 0x9876543201234567); 02383 TEST_ASSERT_EQUAL_UINT64(v0, v1); 02384 TEST_ASSERT_EQUAL_UINT64(0x9876543201234567, v1); 02385 TEST_ASSERT_EQUAL_UINT64(v0, 0x9876543201234567); 02386 TEST_ASSERT_EQUAL_UINT64(*p0, v1); 02387 TEST_ASSERT_EQUAL_UINT64(*p0, *p1); 02388 TEST_ASSERT_EQUAL_UINT64(*p0, 0x9876543201234567); 02389 #endif 02390 } 02391 02392 void testEqualInt64s(void) 02393 { 02394 #ifndef UNITY_SUPPORT_64 02395 TEST_IGNORE(); 02396 #else 02397 _US64 v0, v1; 02398 _US64 *p0, *p1; 02399 02400 v0 = (_US64)0x9876543201234567; 02401 v1 = (_US64)0x9876543201234567; 02402 p0 = &v0; 02403 p1 = &v1; 02404 02405 TEST_ASSERT_EQUAL_INT64(0x9876543201234567, 0x9876543201234567); 02406 TEST_ASSERT_EQUAL_INT64(v0, v1); 02407 TEST_ASSERT_EQUAL_INT64(0x9876543201234567, v1); 02408 TEST_ASSERT_EQUAL_INT64(v0, 0x9876543201234567); 02409 TEST_ASSERT_EQUAL_INT64(*p0, v1); 02410 TEST_ASSERT_EQUAL_INT64(*p0, *p1); 02411 TEST_ASSERT_EQUAL_INT64(*p0, 0x9876543201234567); 02412 #endif 02413 } 02414 02415 02416 void testNotEqualHex64s(void) 02417 { 02418 #ifndef UNITY_SUPPORT_64 02419 TEST_IGNORE(); 02420 #else 02421 _UU64 v0, v1; 02422 02423 v0 = 9000000000; 02424 v1 = 9100000000; 02425 02426 EXPECT_ABORT_BEGIN 02427 TEST_ASSERT_EQUAL_HEX64(v0, v1); 02428 VERIFY_FAILS_END 02429 #endif 02430 } 02431 02432 void testNotEqualUint64s(void) 02433 { 02434 #ifndef UNITY_SUPPORT_64 02435 TEST_IGNORE(); 02436 #else 02437 _UU64 v0, v1; 02438 02439 v0 = 9000000000; 02440 v1 = 9100000000; 02441 02442 EXPECT_ABORT_BEGIN 02443 TEST_ASSERT_EQUAL_UINT64(v0, v1); 02444 VERIFY_FAILS_END 02445 #endif 02446 } 02447 02448 void testNotEqualInt64s(void) 02449 { 02450 #ifndef UNITY_SUPPORT_64 02451 TEST_IGNORE(); 02452 #else 02453 _US64 v0, v1; 02454 02455 v0 = -9000000000; 02456 v1 = 9100000000; 02457 02458 EXPECT_ABORT_BEGIN 02459 TEST_ASSERT_EQUAL_INT64(v0, v1); 02460 VERIFY_FAILS_END 02461 #endif 02462 } 02463 02464 void testNotEqualHex64sIfSigned(void) 02465 { 02466 #ifndef UNITY_SUPPORT_64 02467 TEST_IGNORE(); 02468 #else 02469 _US64 v0, v1; 02470 02471 v0 = -9000000000; 02472 v1 = 9000000000; 02473 02474 EXPECT_ABORT_BEGIN 02475 TEST_ASSERT_EQUAL_HEX64(v0, v1); 02476 VERIFY_FAILS_END 02477 #endif 02478 } 02479 02480 void testHEX64sWithinDelta(void) 02481 { 02482 #ifndef UNITY_SUPPORT_64 02483 TEST_IGNORE(); 02484 #else 02485 TEST_ASSERT_HEX64_WITHIN(1, 0x7FFFFFFFFFFFFFFF,0x7FFFFFFFFFFFFFFE); 02486 TEST_ASSERT_HEX64_WITHIN(5, 5000, 4996); 02487 TEST_ASSERT_HEX64_WITHIN(5, 5000, 5005); 02488 #endif 02489 } 02490 02491 void testHEX64sNotWithinDelta(void) 02492 { 02493 #ifndef UNITY_SUPPORT_64 02494 TEST_IGNORE(); 02495 #else 02496 EXPECT_ABORT_BEGIN 02497 TEST_ASSERT_HEX64_WITHIN(1, 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFC); 02498 VERIFY_FAILS_END 02499 #endif 02500 } 02501 02502 void testHEX64sNotWithinDeltaEvenThoughASignedIntWouldPass(void) 02503 { 02504 #ifndef UNITY_SUPPORT_64 02505 TEST_IGNORE(); 02506 #else 02507 EXPECT_ABORT_BEGIN 02508 TEST_ASSERT_HEX64_WITHIN(5, 1, -1); 02509 VERIFY_FAILS_END 02510 #endif 02511 } 02512 02513 void testUINT64sWithinDelta(void) 02514 { 02515 #ifndef UNITY_SUPPORT_64 02516 TEST_IGNORE(); 02517 #else 02518 TEST_ASSERT_UINT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF,0x7FFFFFFFFFFFFFFE); 02519 TEST_ASSERT_UINT64_WITHIN(5, 5000, 4996); 02520 TEST_ASSERT_UINT64_WITHIN(5, 5000, 5005); 02521 #endif 02522 } 02523 02524 void testUINT64sNotWithinDelta(void) 02525 { 02526 #ifndef UNITY_SUPPORT_64 02527 TEST_IGNORE(); 02528 #else 02529 EXPECT_ABORT_BEGIN 02530 TEST_ASSERT_UINT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFC); 02531 VERIFY_FAILS_END 02532 #endif 02533 } 02534 02535 void testUINT64sNotWithinDeltaEvenThoughASignedIntWouldPass(void) 02536 { 02537 #ifndef UNITY_SUPPORT_64 02538 TEST_IGNORE(); 02539 #else 02540 EXPECT_ABORT_BEGIN 02541 TEST_ASSERT_UINT64_WITHIN(5, 1, -1); 02542 VERIFY_FAILS_END 02543 #endif 02544 } 02545 02546 void testINT64sWithinDelta(void) 02547 { 02548 #ifndef UNITY_SUPPORT_64 02549 TEST_IGNORE(); 02550 #else 02551 TEST_ASSERT_INT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF,0x7FFFFFFFFFFFFFFE); 02552 TEST_ASSERT_INT64_WITHIN(5, 5000, 4996); 02553 TEST_ASSERT_INT64_WITHIN(5, 5000, 5005); 02554 #endif 02555 } 02556 02557 void testINT64sNotWithinDelta(void) 02558 { 02559 #ifndef UNITY_SUPPORT_64 02560 TEST_IGNORE(); 02561 #else 02562 EXPECT_ABORT_BEGIN 02563 TEST_ASSERT_INT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFC); 02564 VERIFY_FAILS_END 02565 #endif 02566 } 02567 02568 void testINT64sNotWithinDeltaAndDifferenceOverflows(void) 02569 { 02570 #ifndef UNITY_SUPPORT_64 02571 TEST_IGNORE(); 02572 #else 02573 EXPECT_ABORT_BEGIN 02574 TEST_ASSERT_INT64_WITHIN(1, 0x8000000000000000, 0x7FFFFFFFFFFFFFFF); 02575 VERIFY_FAILS_END 02576 #endif 02577 } 02578 02579 void testEqualHEX64Arrays(void) 02580 { 02581 #ifndef UNITY_SUPPORT_64 02582 TEST_IGNORE(); 02583 #else 02584 _UU64 p0[] = {1, 8, 987, 65132u}; 02585 _UU64 p1[] = {1, 8, 987, 65132u}; 02586 _UU64 p2[] = {1, 8, 987, 2}; 02587 _UU64 p3[] = {1, 500, 600, 700}; 02588 02589 TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p0, 1); 02590 TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p0, 4); 02591 TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p1, 4); 02592 TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p2, 3); 02593 TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p3, 1); 02594 #endif 02595 } 02596 02597 void testEqualUint64Arrays(void) 02598 { 02599 #ifndef UNITY_SUPPORT_64 02600 TEST_IGNORE(); 02601 #else 02602 _UU64 p0[] = {1, 8, 987, 65132u}; 02603 _UU64 p1[] = {1, 8, 987, 65132u}; 02604 _UU64 p2[] = {1, 8, 987, 2}; 02605 _UU64 p3[] = {1, 500, 600, 700}; 02606 02607 TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p0, 1); 02608 TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p0, 4); 02609 TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p1, 4); 02610 TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p2, 3); 02611 TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p3, 1); 02612 #endif 02613 } 02614 02615 void testEqualInt64Arrays(void) 02616 { 02617 #ifndef UNITY_SUPPORT_64 02618 TEST_IGNORE(); 02619 #else 02620 _US64 p0[] = {1, 8, 987, -65132}; 02621 _US64 p1[] = {1, 8, 987, -65132}; 02622 _US64 p2[] = {1, 8, 987, -2}; 02623 _US64 p3[] = {1, 500, 600, 700}; 02624 02625 TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p0, 1); 02626 TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p0, 4); 02627 TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p1, 4); 02628 TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p2, 3); 02629 TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p3, 1); 02630 #endif 02631 } 02632 02633 02634 void testNotEqualHEX64Arrays1(void) 02635 { 02636 #ifndef UNITY_SUPPORT_64 02637 TEST_IGNORE(); 02638 #else 02639 _UU64 p0[] = {1, 8, 987, 65132u}; 02640 _UU64 p1[] = {1, 8, 987, 65131u}; 02641 02642 EXPECT_ABORT_BEGIN 02643 TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p1, 4); 02644 VERIFY_FAILS_END 02645 #endif 02646 } 02647 02648 void testNotEqualHEX64Arrays2(void) 02649 { 02650 #ifndef UNITY_SUPPORT_64 02651 TEST_IGNORE(); 02652 #else 02653 _UU64 p0[] = {1, 8, 987, 65132u}; 02654 _UU64 p1[] = {2, 8, 987, 65132u}; 02655 02656 EXPECT_ABORT_BEGIN 02657 TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p1, 4); 02658 VERIFY_FAILS_END 02659 #endif 02660 } 02661 02662 void testNotEqualUint64Arrays(void) 02663 { 02664 #ifndef UNITY_SUPPORT_64 02665 TEST_IGNORE(); 02666 #else 02667 _UU64 p0[] = {1, 8, 987, 65132u}; 02668 _UU64 p1[] = {1, 8, 987, 65131u}; 02669 02670 EXPECT_ABORT_BEGIN 02671 TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p1, 4); 02672 VERIFY_FAILS_END 02673 #endif 02674 } 02675 02676 void testNotEqualInt64Arrays(void) 02677 { 02678 #ifndef UNITY_SUPPORT_64 02679 TEST_IGNORE(); 02680 #else 02681 _US64 p0[] = {1, 8, 987, -65132}; 02682 _US64 p1[] = {1, 8, 987, -65131}; 02683 02684 EXPECT_ABORT_BEGIN 02685 TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p1, 4); 02686 VERIFY_FAILS_END 02687 #endif 02688 } 02689 // ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES FLOAT SUPPORT ================== 02690 02691 void testFloatsWithinDelta(void) 02692 { 02693 #ifdef UNITY_EXCLUDE_FLOAT 02694 TEST_IGNORE(); 02695 #else 02696 TEST_ASSERT_FLOAT_WITHIN(0.00003f, 187245.03485f, 187245.03488f); 02697 TEST_ASSERT_FLOAT_WITHIN(1.0f, 187245.0f, 187246.0f); 02698 TEST_ASSERT_FLOAT_WITHIN(0.05f, 9273.2549f, 9273.2049f); 02699 TEST_ASSERT_FLOAT_WITHIN(0.007f, -726.93724f, -726.94424f); 02700 #endif 02701 } 02702 02703 void testFloatsNotWithinDelta(void) 02704 { 02705 #ifdef UNITY_EXCLUDE_FLOAT 02706 TEST_IGNORE(); 02707 #else 02708 EXPECT_ABORT_BEGIN 02709 TEST_ASSERT_FLOAT_WITHIN(0.05f, 9273.2649f, 9273.2049f); 02710 VERIFY_FAILS_END 02711 #endif 02712 } 02713 02714 void testFloatsEqual(void) 02715 { 02716 #ifdef UNITY_EXCLUDE_FLOAT 02717 TEST_IGNORE(); 02718 #else 02719 TEST_ASSERT_EQUAL_FLOAT(187245.0f, 187246.0f); 02720 TEST_ASSERT_EQUAL_FLOAT(18724.5f, 18724.6f); 02721 TEST_ASSERT_EQUAL_FLOAT(9273.2549f, 9273.2599f); 02722 TEST_ASSERT_EQUAL_FLOAT(-726.93724f, -726.9374f); 02723 #endif 02724 } 02725 02726 void testFloatsNotEqual(void) 02727 { 02728 #ifdef UNITY_EXCLUDE_FLOAT 02729 TEST_IGNORE(); 02730 #else 02731 EXPECT_ABORT_BEGIN 02732 TEST_ASSERT_EQUAL_FLOAT(9273.9649f, 9273.0049f); 02733 VERIFY_FAILS_END 02734 #endif 02735 } 02736 02737 void testFloatsNotEqualNegative1(void) 02738 { 02739 #ifdef UNITY_EXCLUDE_FLOAT 02740 TEST_IGNORE(); 02741 #else 02742 EXPECT_ABORT_BEGIN 02743 TEST_ASSERT_EQUAL_FLOAT(-9273.9649f, -9273.0049f); 02744 VERIFY_FAILS_END 02745 #endif 02746 } 02747 02748 void testFloatsNotEqualNegative2(void) 02749 { 02750 #ifdef UNITY_EXCLUDE_FLOAT 02751 TEST_IGNORE(); 02752 #else 02753 EXPECT_ABORT_BEGIN 02754 TEST_ASSERT_EQUAL_FLOAT(-9273.0049f, -9273.9649f); 02755 VERIFY_FAILS_END 02756 #endif 02757 } 02758 02759 void testFloatsNotEqualActualNaN(void) 02760 { 02761 #ifdef UNITY_EXCLUDE_FLOAT 02762 TEST_IGNORE(); 02763 #else 02764 EXPECT_ABORT_BEGIN 02765 TEST_ASSERT_EQUAL_FLOAT(85.963f, 0.0f / f_zero); 02766 VERIFY_FAILS_END 02767 #endif 02768 } 02769 02770 void testFloatsNotEqualExpectedNaN(void) 02771 { 02772 #ifdef UNITY_EXCLUDE_FLOAT 02773 TEST_IGNORE(); 02774 #else 02775 EXPECT_ABORT_BEGIN 02776 TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 85.963f); 02777 VERIFY_FAILS_END 02778 #endif 02779 } 02780 02781 void testFloatsNotEqualBothNaN(void) 02782 { 02783 #ifdef UNITY_EXCLUDE_FLOAT 02784 TEST_IGNORE(); 02785 #else 02786 EXPECT_ABORT_BEGIN 02787 TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 0.0f / f_zero); 02788 VERIFY_FAILS_END 02789 #endif 02790 } 02791 02792 void testFloatsNotEqualInfNaN(void) 02793 { 02794 #ifdef UNITY_EXCLUDE_FLOAT 02795 TEST_IGNORE(); 02796 #else 02797 EXPECT_ABORT_BEGIN 02798 TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 0.0f / f_zero); 02799 VERIFY_FAILS_END 02800 #endif 02801 } 02802 02803 void testFloatsNotEqualNaNInf(void) 02804 { 02805 #ifdef UNITY_EXCLUDE_FLOAT 02806 TEST_IGNORE(); 02807 #else 02808 EXPECT_ABORT_BEGIN 02809 TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 1.0f / f_zero); 02810 VERIFY_FAILS_END 02811 #endif 02812 } 02813 02814 void testFloatsNotEqualActualInf(void) 02815 { 02816 #ifdef UNITY_EXCLUDE_FLOAT 02817 TEST_IGNORE(); 02818 #else 02819 EXPECT_ABORT_BEGIN 02820 TEST_ASSERT_EQUAL_FLOAT(321.642f, 1.0f / f_zero); 02821 VERIFY_FAILS_END 02822 #endif 02823 } 02824 02825 void testFloatsNotEqualExpectedInf(void) 02826 { 02827 #ifdef UNITY_EXCLUDE_FLOAT 02828 TEST_IGNORE(); 02829 #else 02830 EXPECT_ABORT_BEGIN 02831 TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 321.642f); 02832 VERIFY_FAILS_END 02833 #endif 02834 } 02835 02836 void testFloatsNotEqualBothInf(void) 02837 { 02838 #ifdef UNITY_EXCLUDE_FLOAT 02839 TEST_IGNORE(); 02840 #else 02841 EXPECT_ABORT_BEGIN 02842 TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 1.0f / f_zero); 02843 VERIFY_FAILS_END 02844 #endif 02845 } 02846 02847 void testFloatsNotEqualPlusMinusInf(void) 02848 { 02849 #ifdef UNITY_EXCLUDE_FLOAT 02850 TEST_IGNORE(); 02851 #else 02852 EXPECT_ABORT_BEGIN 02853 TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, -1.0f / f_zero); 02854 VERIFY_FAILS_END 02855 #endif 02856 } 02857 02858 void testFloatIsPosInf1(void) 02859 { 02860 #ifdef UNITY_EXCLUDE_FLOAT 02861 TEST_IGNORE(); 02862 #else 02863 TEST_ASSERT_FLOAT_IS_INF(2.0f / f_zero); 02864 #endif 02865 } 02866 02867 void testFloatIsPosInf2(void) 02868 { 02869 #ifdef UNITY_EXCLUDE_FLOAT 02870 TEST_IGNORE(); 02871 #else 02872 EXPECT_ABORT_BEGIN 02873 TEST_ASSERT_FLOAT_IS_NOT_INF(2.0f / f_zero); 02874 VERIFY_FAILS_END 02875 #endif 02876 } 02877 02878 void testFloatIsNegInf1(void) 02879 { 02880 #ifdef UNITY_EXCLUDE_FLOAT 02881 TEST_IGNORE(); 02882 #else 02883 TEST_ASSERT_FLOAT_IS_NEG_INF(-3.0f / f_zero); 02884 #endif 02885 } 02886 02887 void testFloatIsNegInf2(void) 02888 { 02889 #ifdef UNITY_EXCLUDE_FLOAT 02890 TEST_IGNORE(); 02891 #else 02892 EXPECT_ABORT_BEGIN 02893 TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(-3.0f / f_zero); 02894 VERIFY_FAILS_END 02895 #endif 02896 } 02897 02898 void testFloatIsNotPosInf1(void) 02899 { 02900 #ifdef UNITY_EXCLUDE_FLOAT 02901 TEST_IGNORE(); 02902 #else 02903 EXPECT_ABORT_BEGIN 02904 TEST_ASSERT_FLOAT_IS_INF(2.0f); 02905 VERIFY_FAILS_END 02906 #endif 02907 } 02908 02909 void testFloatIsNotPosInf2(void) 02910 { 02911 #ifdef UNITY_EXCLUDE_FLOAT 02912 TEST_IGNORE(); 02913 #else 02914 TEST_ASSERT_FLOAT_IS_NOT_INF(2.0f); 02915 #endif 02916 } 02917 02918 void testFloatIsNotNegInf(void) 02919 { 02920 #ifdef UNITY_EXCLUDE_FLOAT 02921 TEST_IGNORE(); 02922 #else 02923 EXPECT_ABORT_BEGIN 02924 TEST_ASSERT_FLOAT_IS_NEG_INF(-999.876f); 02925 VERIFY_FAILS_END 02926 #endif 02927 } 02928 02929 void testFloatIsNan1(void) 02930 { 02931 #ifdef UNITY_EXCLUDE_FLOAT 02932 TEST_IGNORE(); 02933 #else 02934 TEST_ASSERT_FLOAT_IS_NAN(0.0f / f_zero); 02935 #endif 02936 } 02937 02938 void testFloatIsNan2(void) 02939 { 02940 #ifdef UNITY_EXCLUDE_FLOAT 02941 TEST_IGNORE(); 02942 #else 02943 EXPECT_ABORT_BEGIN 02944 TEST_ASSERT_FLOAT_IS_NOT_NAN(0.0f / f_zero); 02945 VERIFY_FAILS_END 02946 #endif 02947 } 02948 02949 void testFloatIsNotNan1(void) 02950 { 02951 #ifdef UNITY_EXCLUDE_FLOAT 02952 TEST_IGNORE(); 02953 #else 02954 EXPECT_ABORT_BEGIN 02955 TEST_ASSERT_FLOAT_IS_NAN(234.9f); 02956 VERIFY_FAILS_END 02957 #endif 02958 } 02959 02960 void testFloatIsNotNan2(void) 02961 { 02962 #ifdef UNITY_EXCLUDE_FLOAT 02963 TEST_IGNORE(); 02964 #else 02965 TEST_ASSERT_FLOAT_IS_NOT_NAN(234.9f); 02966 #endif 02967 } 02968 02969 void testFloatInfIsNotNan(void) 02970 { 02971 #ifdef UNITY_EXCLUDE_FLOAT 02972 TEST_IGNORE(); 02973 #else 02974 EXPECT_ABORT_BEGIN 02975 TEST_ASSERT_FLOAT_IS_NAN(1.0f / f_zero); 02976 VERIFY_FAILS_END 02977 #endif 02978 } 02979 02980 void testFloatNanIsNotInf(void) 02981 { 02982 #ifdef UNITY_EXCLUDE_FLOAT 02983 TEST_IGNORE(); 02984 #else 02985 EXPECT_ABORT_BEGIN 02986 TEST_ASSERT_FLOAT_IS_INF(0.0f / f_zero); 02987 VERIFY_FAILS_END 02988 #endif 02989 } 02990 02991 void testFloatIsDeterminate1(void) 02992 { 02993 #ifdef UNITY_EXCLUDE_FLOAT 02994 TEST_IGNORE(); 02995 #else 02996 TEST_ASSERT_FLOAT_IS_DETERMINATE(0.0f); 02997 TEST_ASSERT_FLOAT_IS_DETERMINATE(123.3f); 02998 TEST_ASSERT_FLOAT_IS_DETERMINATE(-88.3f); 02999 #endif 03000 } 03001 03002 void testFloatIsDeterminate2(void) 03003 { 03004 #ifdef UNITY_EXCLUDE_FLOAT 03005 TEST_IGNORE(); 03006 #else 03007 EXPECT_ABORT_BEGIN 03008 TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(-88.3f); 03009 VERIFY_FAILS_END 03010 #endif 03011 } 03012 03013 void testFloatIsNotDeterminate1(void) 03014 { 03015 #ifdef UNITY_EXCLUDE_FLOAT 03016 TEST_IGNORE(); 03017 #else 03018 TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(1.0f / f_zero); 03019 TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(-1.0f / f_zero); 03020 TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(0.0f / f_zero); 03021 #endif 03022 } 03023 03024 void testFloatIsNotDeterminate2(void) 03025 { 03026 #ifdef UNITY_EXCLUDE_FLOAT 03027 TEST_IGNORE(); 03028 #else 03029 EXPECT_ABORT_BEGIN 03030 TEST_ASSERT_FLOAT_IS_DETERMINATE(-1.0f / f_zero); 03031 VERIFY_FAILS_END 03032 #endif 03033 } 03034 03035 void testFloatTraitFailsOnInvalidTrait(void) 03036 { 03037 #ifdef UNITY_EXCLUDE_FLOAT 03038 TEST_IGNORE(); 03039 #else 03040 EXPECT_ABORT_BEGIN 03041 UnityAssertFloatSpecial(1.0f, NULL, __LINE__, UNITY_FLOAT_INVALID_TRAIT); 03042 VERIFY_FAILS_END 03043 #endif 03044 } 03045 03046 03047 void testEqualFloatArrays(void) 03048 { 03049 #ifdef UNITY_EXCLUDE_FLOAT 03050 TEST_IGNORE(); 03051 #else 03052 float p0[] = {1.0f, -8.0f, 25.4f, -0.123f}; 03053 float p1[] = {1.0f, -8.0f, 25.4f, -0.123f}; 03054 float p2[] = {1.0f, -8.0f, 25.4f, -0.2f}; 03055 float p3[] = {1.0f, -23.0f, 25.0f, -0.26f}; 03056 03057 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p0, 1); 03058 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p0, 4); 03059 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 03060 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p2, 3); 03061 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p3, 1); 03062 TEST_ASSERT_EQUAL_FLOAT_ARRAY(NULL, NULL, 1); 03063 #endif 03064 } 03065 03066 void testNotEqualFloatArraysExpectedNull(void) 03067 { 03068 #ifdef UNITY_EXCLUDE_FLOAT 03069 TEST_IGNORE(); 03070 #else 03071 float* p0 = NULL; 03072 float p1[] = {1.0f, 8.0f, 25.4f, 0.252f}; 03073 03074 EXPECT_ABORT_BEGIN 03075 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 03076 VERIFY_FAILS_END 03077 #endif 03078 } 03079 03080 void testNotEqualFloatArraysActualNull(void) 03081 { 03082 #ifdef UNITY_EXCLUDE_FLOAT 03083 TEST_IGNORE(); 03084 #else 03085 float p0[] = {1.0f, 8.0f, 25.4f, 0.253f}; 03086 float* p1 = NULL; 03087 03088 EXPECT_ABORT_BEGIN 03089 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 03090 VERIFY_FAILS_END 03091 #endif 03092 } 03093 03094 void testNotEqualFloatArrays1(void) 03095 { 03096 #ifdef UNITY_EXCLUDE_FLOAT 03097 TEST_IGNORE(); 03098 #else 03099 float p0[] = {1.0f, 8.0f, 25.4f, 0.253f}; 03100 float p1[] = {1.0f, 8.0f, 25.4f, 0.252f}; 03101 03102 EXPECT_ABORT_BEGIN 03103 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 03104 VERIFY_FAILS_END 03105 #endif 03106 } 03107 03108 void testNotEqualFloatArrays2(void) 03109 { 03110 #ifdef UNITY_EXCLUDE_FLOAT 03111 TEST_IGNORE(); 03112 #else 03113 float p0[] = {1.0f, 8.0f, 25.4f, 0.253f}; 03114 float p1[] = {2.0f, 8.0f, 25.4f, 0.253f}; 03115 03116 EXPECT_ABORT_BEGIN 03117 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 03118 VERIFY_FAILS_END 03119 #endif 03120 } 03121 03122 void testNotEqualFloatArrays3(void) 03123 { 03124 #ifdef UNITY_EXCLUDE_FLOAT 03125 TEST_IGNORE(); 03126 #else 03127 float p0[] = {1.0f, 8.0f, 25.4f, 0.253f}; 03128 float p1[] = {1.0f, 8.0f, 25.5f, 0.253f}; 03129 03130 EXPECT_ABORT_BEGIN 03131 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 03132 VERIFY_FAILS_END 03133 #endif 03134 } 03135 03136 void testNotEqualFloatArraysNegative1(void) 03137 { 03138 #ifdef UNITY_EXCLUDE_FLOAT 03139 TEST_IGNORE(); 03140 #else 03141 float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f}; 03142 float p1[] = {-1.0f, -8.0f, -25.4f, -0.252f}; 03143 03144 EXPECT_ABORT_BEGIN 03145 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 03146 VERIFY_FAILS_END 03147 #endif 03148 } 03149 03150 void testNotEqualFloatArraysNegative2(void) 03151 { 03152 #ifdef UNITY_EXCLUDE_FLOAT 03153 TEST_IGNORE(); 03154 #else 03155 float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f}; 03156 float p1[] = {-2.0f, -8.0f, -25.4f, -0.253f}; 03157 03158 EXPECT_ABORT_BEGIN 03159 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 03160 VERIFY_FAILS_END 03161 #endif 03162 } 03163 03164 void testNotEqualFloatArraysNegative3(void) 03165 { 03166 #ifdef UNITY_EXCLUDE_FLOAT 03167 TEST_IGNORE(); 03168 #else 03169 float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f}; 03170 float p1[] = {-1.0f, -8.0f, -25.5f, -0.253f}; 03171 03172 EXPECT_ABORT_BEGIN 03173 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 03174 VERIFY_FAILS_END 03175 #endif 03176 } 03177 03178 void testNotEqualFloatArraysNaN(void) 03179 { 03180 #ifdef UNITY_EXCLUDE_FLOAT 03181 TEST_IGNORE(); 03182 #else 03183 float p0[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f}; 03184 float p1[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f}; 03185 03186 EXPECT_ABORT_BEGIN 03187 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 03188 VERIFY_FAILS_END 03189 #endif 03190 } 03191 03192 void testNotEqualFloatArraysInf(void) 03193 { 03194 #ifdef UNITY_EXCLUDE_FLOAT 03195 TEST_IGNORE(); 03196 #else 03197 float p0[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f}; 03198 float p1[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f}; 03199 03200 EXPECT_ABORT_BEGIN 03201 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); 03202 VERIFY_FAILS_END 03203 #endif 03204 } 03205 03206 void testNotEqualFloatArraysLengthZero(void) 03207 { 03208 #ifdef UNITY_EXCLUDE_FLOAT 03209 TEST_IGNORE(); 03210 #else 03211 float p0[1] = {0.0f}; 03212 float p1[1] = {0.0f}; 03213 03214 EXPECT_ABORT_BEGIN 03215 TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 0); 03216 VERIFY_FAILS_END 03217 #endif 03218 } 03219 03220 // ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES DOUBLE SUPPORT ================== 03221 03222 void testDoublesWithinDelta(void) 03223 { 03224 #ifdef UNITY_EXCLUDE_DOUBLE 03225 TEST_IGNORE(); 03226 #else 03227 TEST_ASSERT_DOUBLE_WITHIN(0.00003, 187245.03485, 187245.03488); 03228 TEST_ASSERT_DOUBLE_WITHIN(1.0, 187245.0, 187246.0); 03229 TEST_ASSERT_DOUBLE_WITHIN(0.05, 9273.2549, 9273.2049); 03230 TEST_ASSERT_DOUBLE_WITHIN(0.007, -726.93725, -726.94424); 03231 #endif 03232 } 03233 03234 void testDoublesNotWithinDelta(void) 03235 { 03236 #ifdef UNITY_EXCLUDE_DOUBLE 03237 TEST_IGNORE(); 03238 #else 03239 EXPECT_ABORT_BEGIN 03240 TEST_ASSERT_DOUBLE_WITHIN(0.05, 9273.2649, 9273.2049); 03241 VERIFY_FAILS_END 03242 #endif 03243 } 03244 03245 03246 void testDoublesEqual(void) 03247 { 03248 #ifdef UNITY_EXCLUDE_DOUBLE 03249 TEST_IGNORE(); 03250 #else 03251 TEST_ASSERT_EQUAL_DOUBLE(187245123456.0, 187245123456.0); 03252 TEST_ASSERT_EQUAL_DOUBLE(187241234567.5, 187241234567.6); 03253 TEST_ASSERT_EQUAL_DOUBLE(9273.2512345649, 9273.25123455699); 03254 TEST_ASSERT_EQUAL_DOUBLE(-726.12345693724, -726.1234569374); 03255 #endif 03256 } 03257 03258 void testDoublesNotEqual(void) 03259 { 03260 #ifdef UNITY_EXCLUDE_DOUBLE 03261 TEST_IGNORE(); 03262 #else 03263 EXPECT_ABORT_BEGIN 03264 TEST_ASSERT_EQUAL_DOUBLE(9273.9649, 9273.0049); 03265 VERIFY_FAILS_END 03266 #endif 03267 } 03268 03269 void testDoublesNotEqualNegative1(void) 03270 { 03271 #ifdef UNITY_EXCLUDE_DOUBLE 03272 TEST_IGNORE(); 03273 #else 03274 EXPECT_ABORT_BEGIN 03275 TEST_ASSERT_EQUAL_DOUBLE(-9273.9649, -9273.0049); 03276 VERIFY_FAILS_END 03277 #endif 03278 } 03279 03280 void testDoublesNotEqualNegative2(void) 03281 { 03282 #ifdef UNITY_EXCLUDE_DOUBLE 03283 TEST_IGNORE(); 03284 #else 03285 EXPECT_ABORT_BEGIN 03286 TEST_ASSERT_EQUAL_DOUBLE(-9273.0049, -9273.9649); 03287 VERIFY_FAILS_END 03288 #endif 03289 } 03290 03291 void testDoublesNotEqualActualNaN(void) 03292 { 03293 #ifdef UNITY_EXCLUDE_DOUBLE 03294 TEST_IGNORE(); 03295 #else 03296 EXPECT_ABORT_BEGIN 03297 TEST_ASSERT_EQUAL_DOUBLE(85.963, 0.0 / d_zero); 03298 VERIFY_FAILS_END 03299 #endif 03300 } 03301 03302 void testDoublesNotEqualExpectedNaN(void) 03303 { 03304 #ifdef UNITY_EXCLUDE_DOUBLE 03305 TEST_IGNORE(); 03306 #else 03307 EXPECT_ABORT_BEGIN 03308 TEST_ASSERT_EQUAL_DOUBLE(0.0 / d_zero, 85.963); 03309 VERIFY_FAILS_END 03310 #endif 03311 } 03312 03313 void testDoublesNotEqualBothNaN(void) 03314 { 03315 #ifdef UNITY_EXCLUDE_DOUBLE 03316 TEST_IGNORE(); 03317 #else 03318 EXPECT_ABORT_BEGIN 03319 TEST_ASSERT_EQUAL_DOUBLE(0.0 / d_zero, 0.0 / d_zero); 03320 VERIFY_FAILS_END 03321 #endif 03322 } 03323 03324 void testDoublesNotEqualInfNaN(void) 03325 { 03326 #ifdef UNITY_EXCLUDE_DOUBLE 03327 TEST_IGNORE(); 03328 #else 03329 EXPECT_ABORT_BEGIN 03330 TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, 0.0 / d_zero); 03331 VERIFY_FAILS_END 03332 #endif 03333 } 03334 03335 void testDoublesNotEqualNaNInf(void) 03336 { 03337 #ifdef UNITY_EXCLUDE_DOUBLE 03338 TEST_IGNORE(); 03339 #else 03340 EXPECT_ABORT_BEGIN 03341 TEST_ASSERT_EQUAL_DOUBLE(0.0 / d_zero, 1.0 / d_zero); 03342 VERIFY_FAILS_END 03343 #endif 03344 } 03345 03346 void testDoublesNotEqualActualInf(void) 03347 { 03348 #ifdef UNITY_EXCLUDE_DOUBLE 03349 TEST_IGNORE(); 03350 #else 03351 EXPECT_ABORT_BEGIN 03352 TEST_ASSERT_EQUAL_DOUBLE(321.642, 1.0 / d_zero); 03353 VERIFY_FAILS_END 03354 #endif 03355 } 03356 03357 void testDoublesNotEqualExpectedInf(void) 03358 { 03359 #ifdef UNITY_EXCLUDE_DOUBLE 03360 TEST_IGNORE(); 03361 #else 03362 EXPECT_ABORT_BEGIN 03363 TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, 321.642); 03364 VERIFY_FAILS_END 03365 #endif 03366 } 03367 03368 void testDoublesNotEqualBothInf(void) 03369 { 03370 #ifdef UNITY_EXCLUDE_DOUBLE 03371 TEST_IGNORE(); 03372 #else 03373 EXPECT_ABORT_BEGIN 03374 TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, 1.0 / d_zero); 03375 VERIFY_FAILS_END 03376 #endif 03377 } 03378 03379 void testDoublesNotEqualPlusMinusInf(void) 03380 { 03381 #ifdef UNITY_EXCLUDE_DOUBLE 03382 TEST_IGNORE(); 03383 #else 03384 EXPECT_ABORT_BEGIN 03385 TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, -1.0 / d_zero); 03386 VERIFY_FAILS_END 03387 #endif 03388 } 03389 03390 void testDoubleIsPosInf1(void) 03391 { 03392 #ifdef UNITY_EXCLUDE_DOUBLE 03393 TEST_IGNORE(); 03394 #else 03395 TEST_ASSERT_DOUBLE_IS_INF(2.0 / d_zero); 03396 #endif 03397 } 03398 03399 void testDoubleIsPosInf2(void) 03400 { 03401 #ifdef UNITY_EXCLUDE_DOUBLE 03402 TEST_IGNORE(); 03403 #else 03404 EXPECT_ABORT_BEGIN 03405 TEST_ASSERT_DOUBLE_IS_NOT_INF(2.0 / d_zero); 03406 VERIFY_FAILS_END 03407 #endif 03408 } 03409 03410 void testDoubleIsNegInf1(void) 03411 { 03412 #ifdef UNITY_EXCLUDE_DOUBLE 03413 TEST_IGNORE(); 03414 #else 03415 TEST_ASSERT_DOUBLE_IS_NEG_INF(-3.0 / d_zero); 03416 #endif 03417 } 03418 03419 void testDoubleIsNegInf2(void) 03420 { 03421 #ifdef UNITY_EXCLUDE_DOUBLE 03422 TEST_IGNORE(); 03423 #else 03424 EXPECT_ABORT_BEGIN 03425 TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(-3.0 / d_zero); 03426 VERIFY_FAILS_END 03427 #endif 03428 } 03429 03430 void testDoubleIsNotPosInf1(void) 03431 { 03432 #ifdef UNITY_EXCLUDE_DOUBLE 03433 TEST_IGNORE(); 03434 #else 03435 EXPECT_ABORT_BEGIN 03436 TEST_ASSERT_DOUBLE_IS_INF(2.0); 03437 VERIFY_FAILS_END 03438 #endif 03439 } 03440 03441 void testDoubleIsNotPosInf2(void) 03442 { 03443 #ifdef UNITY_EXCLUDE_DOUBLE 03444 TEST_IGNORE(); 03445 #else 03446 TEST_ASSERT_DOUBLE_IS_NOT_INF(2.0); 03447 #endif 03448 } 03449 03450 void testDoubleIsNotNegInf(void) 03451 { 03452 #ifdef UNITY_EXCLUDE_DOUBLE 03453 TEST_IGNORE(); 03454 #else 03455 EXPECT_ABORT_BEGIN 03456 TEST_ASSERT_DOUBLE_IS_NEG_INF(-999.876); 03457 VERIFY_FAILS_END 03458 #endif 03459 } 03460 03461 void testDoubleIsNan1(void) 03462 { 03463 #ifdef UNITY_EXCLUDE_DOUBLE 03464 TEST_IGNORE(); 03465 #else 03466 TEST_ASSERT_DOUBLE_IS_NAN(0.0 / d_zero); 03467 #endif 03468 } 03469 03470 void testDoubleIsNan2(void) 03471 { 03472 #ifdef UNITY_EXCLUDE_DOUBLE 03473 TEST_IGNORE(); 03474 #else 03475 EXPECT_ABORT_BEGIN 03476 TEST_ASSERT_DOUBLE_IS_NOT_NAN(0.0 / d_zero); 03477 VERIFY_FAILS_END 03478 #endif 03479 } 03480 03481 void testDoubleIsNotNan1(void) 03482 { 03483 #ifdef UNITY_EXCLUDE_DOUBLE 03484 TEST_IGNORE(); 03485 #else 03486 EXPECT_ABORT_BEGIN 03487 TEST_ASSERT_DOUBLE_IS_NAN(234.9); 03488 VERIFY_FAILS_END 03489 #endif 03490 } 03491 03492 void testDoubleIsNotNan2(void) 03493 { 03494 #ifdef UNITY_EXCLUDE_DOUBLE 03495 TEST_IGNORE(); 03496 #else 03497 TEST_ASSERT_DOUBLE_IS_NOT_NAN(234.9); 03498 #endif 03499 } 03500 03501 void testDoubleInfIsNotNan(void) 03502 { 03503 #ifdef UNITY_EXCLUDE_DOUBLE 03504 TEST_IGNORE(); 03505 #else 03506 EXPECT_ABORT_BEGIN 03507 TEST_ASSERT_DOUBLE_IS_NAN(1.0 / d_zero); 03508 VERIFY_FAILS_END 03509 #endif 03510 } 03511 03512 void testDoubleNanIsNotInf(void) 03513 { 03514 #ifdef UNITY_EXCLUDE_DOUBLE 03515 TEST_IGNORE(); 03516 #else 03517 EXPECT_ABORT_BEGIN 03518 TEST_ASSERT_DOUBLE_IS_INF(0.0 / d_zero); 03519 VERIFY_FAILS_END 03520 #endif 03521 } 03522 03523 void testDoubleIsDeterminate1(void) 03524 { 03525 #ifdef UNITY_EXCLUDE_DOUBLE 03526 TEST_IGNORE(); 03527 #else 03528 TEST_ASSERT_DOUBLE_IS_DETERMINATE(0.0); 03529 TEST_ASSERT_DOUBLE_IS_DETERMINATE(123.3); 03530 TEST_ASSERT_DOUBLE_IS_DETERMINATE(-88.3); 03531 #endif 03532 } 03533 03534 void testDoubleIsDeterminate2(void) 03535 { 03536 #ifdef UNITY_EXCLUDE_DOUBLE 03537 TEST_IGNORE(); 03538 #else 03539 EXPECT_ABORT_BEGIN 03540 TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(-88.3); 03541 VERIFY_FAILS_END 03542 #endif 03543 } 03544 03545 void testDoubleIsNotDeterminate1(void) 03546 { 03547 #ifdef UNITY_EXCLUDE_DOUBLE 03548 TEST_IGNORE(); 03549 #else 03550 TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(1.0 / d_zero); 03551 TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(-1.0 / d_zero); 03552 TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(0.0 / d_zero); 03553 #endif 03554 } 03555 03556 void testDoubleIsNotDeterminate2(void) 03557 { 03558 #ifdef UNITY_EXCLUDE_DOUBLE 03559 TEST_IGNORE(); 03560 #else 03561 EXPECT_ABORT_BEGIN 03562 TEST_ASSERT_DOUBLE_IS_DETERMINATE(-1.0 / d_zero); 03563 VERIFY_FAILS_END 03564 #endif 03565 } 03566 03567 void testDoubleTraitFailsOnInvalidTrait(void) 03568 { 03569 #ifdef UNITY_EXCLUDE_DOUBLE 03570 TEST_IGNORE(); 03571 #else 03572 EXPECT_ABORT_BEGIN 03573 UnityAssertDoubleSpecial(1.0, NULL, __LINE__, UNITY_FLOAT_INVALID_TRAIT); 03574 VERIFY_FAILS_END 03575 #endif 03576 } 03577 03578 void testEqualDoubleArrays(void) 03579 { 03580 #ifdef UNITY_EXCLUDE_DOUBLE 03581 TEST_IGNORE(); 03582 #else 03583 double p0[] = {1.0, -8.0, 25.4, -0.123}; 03584 double p1[] = {1.0, -8.0, 25.4, -0.123}; 03585 double p2[] = {1.0, -8.0, 25.4, -0.2}; 03586 double p3[] = {1.0, -23.0, 25.0, -0.26}; 03587 03588 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p0, 1); 03589 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p0, 4); 03590 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); 03591 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p2, 3); 03592 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p3, 1); 03593 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(NULL, NULL, 1); 03594 #endif 03595 } 03596 03597 void testNotEqualDoubleArraysExpectedNull(void) 03598 { 03599 #ifdef UNITY_EXCLUDE_DOUBLE 03600 TEST_IGNORE(); 03601 #else 03602 double* p0 = NULL; 03603 double p1[] = {1.0, 8.0, 25.4, 0.252}; 03604 03605 EXPECT_ABORT_BEGIN 03606 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); 03607 VERIFY_FAILS_END 03608 #endif 03609 } 03610 03611 void testNotEqualDoubleArraysActualNull(void) 03612 { 03613 #ifdef UNITY_EXCLUDE_DOUBLE 03614 TEST_IGNORE(); 03615 #else 03616 double p0[] = {1.0, 8.0, 25.4, 0.253}; 03617 double* p1 = NULL; 03618 03619 EXPECT_ABORT_BEGIN 03620 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); 03621 VERIFY_FAILS_END 03622 #endif 03623 } 03624 03625 void testNotEqualDoubleArrays1(void) 03626 { 03627 #ifdef UNITY_EXCLUDE_DOUBLE 03628 TEST_IGNORE(); 03629 #else 03630 double p0[] = {1.0, 8.0, 25.4, 0.25666666667}; 03631 double p1[] = {1.0, 8.0, 25.4, 0.25666666666}; 03632 03633 EXPECT_ABORT_BEGIN 03634 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); 03635 VERIFY_FAILS_END 03636 #endif 03637 } 03638 03639 void testNotEqualDoubleArrays2(void) 03640 { 03641 #ifdef UNITY_EXCLUDE_DOUBLE 03642 TEST_IGNORE(); 03643 #else 03644 double p0[] = {1.0, 8.0, 25.4, 0.253}; 03645 double p1[] = {2.0, 8.0, 25.4, 0.253}; 03646 03647 EXPECT_ABORT_BEGIN 03648 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); 03649 VERIFY_FAILS_END 03650 #endif 03651 } 03652 03653 void testNotEqualDoubleArrays3(void) 03654 { 03655 #ifdef UNITY_EXCLUDE_DOUBLE 03656 TEST_IGNORE(); 03657 #else 03658 double p0[] = {1.0, 8.0, 25.4, 0.253}; 03659 double p1[] = {1.0, 8.0, 25.5, 0.253}; 03660 03661 EXPECT_ABORT_BEGIN 03662 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); 03663 VERIFY_FAILS_END 03664 #endif 03665 } 03666 03667 void testNotEqualDoubleArraysNegative1(void) 03668 { 03669 #ifdef UNITY_EXCLUDE_DOUBLE 03670 TEST_IGNORE(); 03671 #else 03672 double p0[] = {-1.0, -8.0, -25.4, -0.2566666667}; 03673 double p1[] = {-1.0, -8.0, -25.4, -0.2566666666}; 03674 03675 EXPECT_ABORT_BEGIN 03676 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); 03677 VERIFY_FAILS_END 03678 #endif 03679 } 03680 03681 void testNotEqualDoubleArraysNegative2(void) 03682 { 03683 #ifdef UNITY_EXCLUDE_DOUBLE 03684 TEST_IGNORE(); 03685 #else 03686 double p0[] = {-1.0, -8.0, -25.4, -0.253}; 03687 double p1[] = {-2.0, -8.0, -25.4, -0.253}; 03688 03689 EXPECT_ABORT_BEGIN 03690 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); 03691 VERIFY_FAILS_END 03692 #endif 03693 } 03694 03695 void testNotEqualDoubleArraysNegative3(void) 03696 { 03697 #ifdef UNITY_EXCLUDE_DOUBLE 03698 TEST_IGNORE(); 03699 #else 03700 double p0[] = {-1.0, -8.0, -25.4, -0.253}; 03701 double p1[] = {-1.0, -8.0, -25.5, -0.253}; 03702 03703 EXPECT_ABORT_BEGIN 03704 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); 03705 VERIFY_FAILS_END 03706 #endif 03707 } 03708 03709 void testNotEqualDoubleArraysNaN(void) 03710 { 03711 #ifdef UNITY_EXCLUDE_DOUBLE 03712 TEST_IGNORE(); 03713 #else 03714 double p0[] = {1.0, 0.0 / d_zero, 25.4, 0.253}; 03715 double p1[] = {1.0, 0.0 / d_zero, 25.4, 0.253}; 03716 03717 EXPECT_ABORT_BEGIN 03718 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); 03719 VERIFY_FAILS_END 03720 #endif 03721 } 03722 03723 void testNotEqualDoubleArraysInf(void) 03724 { 03725 #ifdef UNITY_EXCLUDE_DOUBLE 03726 TEST_IGNORE(); 03727 #else 03728 double p0[] = {1.0, 1.0 / d_zero, 25.4, 0.253}; 03729 double p1[] = {1.0, 1.0 / d_zero, 25.4, 0.253}; 03730 03731 EXPECT_ABORT_BEGIN 03732 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); 03733 VERIFY_FAILS_END 03734 #endif 03735 } 03736 03737 void testNotEqualDoubleArraysLengthZero(void) 03738 { 03739 #ifdef UNITY_EXCLUDE_DOUBLE 03740 TEST_IGNORE(); 03741 #else 03742 double p0[1] = {0.0}; 03743 double p1[1] = {0.0}; 03744 03745 EXPECT_ABORT_BEGIN 03746 TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 0); 03747 VERIFY_FAILS_END 03748 #endif 03749 } 03750 03751 // ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES DETAIL SUPPORT ================== 03752 03753 void testThatDetailsCanBeHandleOneDetail(void) 03754 { 03755 #ifdef UNITY_EXCLUDE_DETAILS 03756 TEST_IGNORE(); 03757 #else 03758 UNITY_SET_DETAIL("Detail1"); 03759 03760 EXPECT_ABORT_BEGIN 03761 TEST_ASSERT_EQUAL_INT_MESSAGE(5, 6, "Should Fail And Say Detail1"); 03762 VERIFY_FAILS_END 03763 #endif 03764 } 03765 03766 void testThatDetailsCanHandleTestFail(void) 03767 { 03768 #ifdef UNITY_EXCLUDE_DETAILS 03769 TEST_IGNORE(); 03770 #else 03771 UNITY_SET_DETAILS("Detail1","Detail2"); 03772 03773 EXPECT_ABORT_BEGIN 03774 TEST_FAIL_MESSAGE("Should Fail And Say Detail1 and Detail2"); 03775 VERIFY_FAILS_END 03776 #endif 03777 } 03778 03779 void testThatDetailsCanBeHandleTwoDetails(void) 03780 { 03781 #ifdef UNITY_EXCLUDE_DETAILS 03782 TEST_IGNORE(); 03783 #else 03784 UNITY_SET_DETAILS("Detail1","Detail2"); 03785 03786 EXPECT_ABORT_BEGIN 03787 TEST_ASSERT_EQUAL_HEX8_MESSAGE(7, 8, "Should Fail And Say Detail1 and Detail2"); 03788 VERIFY_FAILS_END 03789 #endif 03790 } 03791 03792 void testThatDetailsCanBeHandleSingleDetailClearingTwoDetails(void) 03793 { 03794 #ifdef UNITY_EXCLUDE_DETAILS 03795 TEST_IGNORE(); 03796 #else 03797 UNITY_SET_DETAILS("Detail1","Detail2"); 03798 UNITY_SET_DETAIL("DetailNew"); 03799 03800 EXPECT_ABORT_BEGIN 03801 TEST_ASSERT_EQUAL_STRING_MESSAGE("MEH", "GUH", "Should Fail And Say DetailNew"); 03802 VERIFY_FAILS_END 03803 #endif 03804 }
Generated on Tue Jul 12 2022 19:01:37 by 1.7.2