Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 Mon Aug 29 2022 19:53:42 by
