• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* ==========================================
2     Unity Project - A Test Framework for C
3     Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4     [Released under MIT License. Please refer to license.txt for details]
5 ========================================== */
6 
7 #include "unity.h"
8 #include <string.h>
9 #include <stdint.h>
10 
11 /* Dividing by these constants produces +/- infinity.
12  * The rationale is given in UnityAssertFloatIsInf's body.
13  */
14 #ifndef UNITY_EXCLUDE_FLOAT
15 static const UNITY_FLOAT f_zero = 0.0f;
16 #endif
17 
18 #ifndef UNITY_EXCLUDE_DOUBLE
19 static const UNITY_DOUBLE d_zero = 0.0;
20 #endif
21 
22 #define EXPECT_ABORT_BEGIN \
23     startPutcharSpy();     \
24     if (TEST_PROTECT())    \
25     {
26 
27 #define VERIFY_FAILS_END                                                       \
28     }                                                                          \
29     endPutcharSpy(); /* start/end Spy to suppress output of failure message */ \
30     Unity.CurrentTestFailed = (Unity.CurrentTestFailed == 1) ? 0 : 1;          \
31     if (Unity.CurrentTestFailed == 1) {                                        \
32       SetToOneMeanWeAlreadyCheckedThisGuy = 1;                                 \
33       UnityPrintNumberUnsigned(Unity.CurrentTestLineNumber);                   \
34       UNITY_OUTPUT_CHAR(':');                                                  \
35       UnityPrint(Unity.CurrentTestName);                                       \
36       UnityPrint(":FAIL: [[[[ Test Should Have Failed But Did Not ]]]]");      \
37       UNITY_OUTPUT_CHAR('\n');                                                 \
38     }
39 
40 #define VERIFY_IGNORES_END                                                     \
41     }                                                                          \
42     endPutcharSpy(); /* start/end Spy to suppress output of ignore message */  \
43     Unity.CurrentTestFailed = (Unity.CurrentTestIgnored == 1) ? 0 : 1;         \
44     Unity.CurrentTestIgnored = 0;                                              \
45     if (Unity.CurrentTestFailed == 1) {                                        \
46       SetToOneMeanWeAlreadyCheckedThisGuy = 1;                                 \
47       UnityPrintNumberUnsigned(Unity.CurrentTestLineNumber);                   \
48       UNITY_OUTPUT_CHAR(':');                                                  \
49       UnityPrint(Unity.CurrentTestName);                                       \
50       UnityPrint(":FAIL: [[[[ Test Should Have Ignored But Did Not ]]]]");     \
51       UNITY_OUTPUT_CHAR('\n');                                                 \
52     }
53 
54 void startPutcharSpy(void);
55 void endPutcharSpy(void);
56 char* getBufferPutcharSpy(void);
57 
58 void startFlushSpy(void);
59 void endFlushSpy(void);
60 int getFlushSpyCalls(void);
61 
62 static int SetToOneToFailInTearDown;
63 static int SetToOneMeanWeAlreadyCheckedThisGuy;
64 
setUp(void)65 void setUp(void)
66 {
67     SetToOneToFailInTearDown = 0;
68     SetToOneMeanWeAlreadyCheckedThisGuy = 0;
69 }
70 
tearDown(void)71 void tearDown(void)
72 {
73     endPutcharSpy(); /* Stop suppressing test output */
74     if (SetToOneToFailInTearDown == 1)
75     {
76         /* These will be skipped internally if already failed/ignored */
77         TEST_FAIL_MESSAGE("<= Failed in tearDown");
78         TEST_IGNORE_MESSAGE("<= Ignored in tearDown");
79     }
80     if ((SetToOneMeanWeAlreadyCheckedThisGuy == 0) && (Unity.CurrentTestFailed > 0))
81     {
82         UnityPrint(": [[[[ Test Should Have Passed But Did Not ]]]]");
83         UNITY_OUTPUT_CHAR('\n');
84     }
85 }
86 
testUnitySizeInitializationReminder(void)87 void testUnitySizeInitializationReminder(void)
88 {
89     /* This test ensures that sizeof(struct UNITY_STORAGE_T) doesn't change. If this
90      * test breaks, go look at the initialization of the Unity global variable
91      * in unity.c and make sure we're filling in the proper fields. */
92     const char* message = "Unexpected size for UNITY_STORAGE_T struct. Please check that "
93                      "the initialization of the Unity symbol in unity.c is "
94                      "still correct.";
95 
96     /* Define a structure with all the same fields as `struct UNITY_STORAGE_T`. */
97 #ifdef UNITY_EXCLUDE_DETAILS
98     struct {
99         const char* TestFile;
100         const char* CurrentTestName;
101         UNITY_LINE_TYPE CurrentTestLineNumber;
102         UNITY_COUNTER_TYPE NumberOfTests;
103         UNITY_COUNTER_TYPE TestFailures;
104         UNITY_COUNTER_TYPE TestIgnores;
105         UNITY_COUNTER_TYPE CurrentTestFailed;
106         UNITY_COUNTER_TYPE CurrentTestIgnored;
107 #ifdef UNITY_INCLUDE_EXEC_TIME
108         UNITY_TIME_TYPE CurrentTestStartTime;
109         UNITY_TIME_TYPE CurrentTestStopTime;
110 #endif
111 #ifndef UNITY_EXCLUDE_SETJMP_H
112         jmp_buf AbortFrame;
113 #endif
114     } _Expected_Unity;
115 #else
116     struct {
117         const char* TestFile;
118         const char* CurrentTestName;
119         const char* CurrentDetails1;
120         const char* CurrentDetails2;
121         UNITY_LINE_TYPE CurrentTestLineNumber;
122         UNITY_COUNTER_TYPE NumberOfTests;
123         UNITY_COUNTER_TYPE TestFailures;
124         UNITY_COUNTER_TYPE TestIgnores;
125         UNITY_COUNTER_TYPE CurrentTestFailed;
126         UNITY_COUNTER_TYPE CurrentTestIgnored;
127 #ifdef UNITY_INCLUDE_EXEC_TIME
128         UNITY_COUNTER_TYPE CurrentTestStartTime;
129         UNITY_COUNTER_TYPE CurrentTestStopTime;
130 #endif
131 #ifndef UNITY_EXCLUDE_SETJMP_H
132         jmp_buf AbortFrame;
133 #endif
134     } _Expected_Unity;
135 #endif
136 
137     /* Compare our fake structure's size to the actual structure's size. They
138      * should be the same.
139      *
140      * This accounts for alignment, padding, and packing issues that might come
141      * up between different architectures. */
142     TEST_ASSERT_EQUAL_MESSAGE(sizeof(_Expected_Unity), sizeof(Unity), message);
143 }
144 
testPassShouldEndImmediatelyWithPass(void)145 void testPassShouldEndImmediatelyWithPass(void)
146 {
147     TEST_PASS();
148     TEST_FAIL_MESSAGE("We should have passed already and finished this test");
149 }
150 
testPassShouldEndImmediatelyWithPassAndMessage(void)151 void testPassShouldEndImmediatelyWithPassAndMessage(void)
152 {
153     TEST_PASS_MESSAGE("Woohoo! This Automatically Passes!");
154     TEST_FAIL_MESSAGE("We should have passed already and finished this test");
155 }
156 
testMessageShouldDisplayMessageWithoutEndingAndGoOnToPass(void)157 void testMessageShouldDisplayMessageWithoutEndingAndGoOnToPass(void)
158 {
159     TEST_MESSAGE("This is just a message");
160     TEST_MESSAGE("This is another message");
161     TEST_PASS();
162 }
163 
testMessageShouldDisplayMessageWithoutEndingAndGoOnToFail(void)164 void testMessageShouldDisplayMessageWithoutEndingAndGoOnToFail(void)
165 {
166     TEST_MESSAGE("This is yet another message");
167 
168     EXPECT_ABORT_BEGIN
169     TEST_FAIL();
170     VERIFY_FAILS_END
171 }
172 
testTrue(void)173 void testTrue(void)
174 {
175     TEST_ASSERT(1);
176 
177     TEST_ASSERT_TRUE(1);
178 }
179 
testFalse(void)180 void testFalse(void)
181 {
182     TEST_ASSERT_FALSE(0);
183 
184     TEST_ASSERT_UNLESS(0);
185 }
186 
testPreviousPass(void)187 void testPreviousPass(void)
188 {
189     TEST_ASSERT_EQUAL_INT(0U, Unity.TestFailures);
190 }
191 
testNotVanilla(void)192 void testNotVanilla(void)
193 {
194     EXPECT_ABORT_BEGIN
195     TEST_ASSERT(0);
196     VERIFY_FAILS_END
197 }
198 
testNotTrue(void)199 void testNotTrue(void)
200 {
201     EXPECT_ABORT_BEGIN
202     TEST_ASSERT_TRUE(0);
203     VERIFY_FAILS_END
204 }
205 
testNotFalse(void)206 void testNotFalse(void)
207 {
208     EXPECT_ABORT_BEGIN
209     TEST_ASSERT_FALSE(1);
210     VERIFY_FAILS_END
211 }
212 
testNotUnless(void)213 void testNotUnless(void)
214 {
215     EXPECT_ABORT_BEGIN
216     TEST_ASSERT_UNLESS(1);
217     VERIFY_FAILS_END
218 }
219 
testNotNotEqual(void)220 void testNotNotEqual(void)
221 {
222     EXPECT_ABORT_BEGIN
223     TEST_ASSERT_NOT_EQUAL(10, 10);
224     VERIFY_FAILS_END
225 }
226 
testFail(void)227 void testFail(void)
228 {
229     EXPECT_ABORT_BEGIN
230     TEST_FAIL_MESSAGE("Expected for testing");
231     VERIFY_FAILS_END
232 }
233 
testIsNull(void)234 void testIsNull(void)
235 {
236     char* ptr1 = NULL;
237     const char* ptr2 = "hello";
238 
239     TEST_ASSERT_NULL(ptr1);
240     TEST_ASSERT_NOT_NULL(ptr2);
241 }
242 
testIsNullShouldFailIfNot(void)243 void testIsNullShouldFailIfNot(void)
244 {
245     const char* ptr1 = "hello";
246 
247     EXPECT_ABORT_BEGIN
248     TEST_ASSERT_NULL(ptr1);
249     VERIFY_FAILS_END
250 }
251 
testNotNullShouldFailIfNULL(void)252 void testNotNullShouldFailIfNULL(void)
253 {
254     char* ptr1 = NULL;
255 
256     EXPECT_ABORT_BEGIN
257     TEST_ASSERT_NOT_NULL(ptr1);
258     VERIFY_FAILS_END
259 }
260 
testIgnore(void)261 void testIgnore(void)
262 {
263     EXPECT_ABORT_BEGIN
264     TEST_IGNORE();
265     TEST_FAIL_MESSAGE("This should not be reached");
266     VERIFY_IGNORES_END
267 }
268 
testIgnoreMessage(void)269 void testIgnoreMessage(void)
270 {
271     EXPECT_ABORT_BEGIN
272     TEST_IGNORE_MESSAGE("This is an expected TEST_IGNORE_MESSAGE string!");
273     TEST_FAIL_MESSAGE("This should not be reached");
274     VERIFY_IGNORES_END
275 }
276 
testNotEqualInts(void)277 void testNotEqualInts(void)
278 {
279     EXPECT_ABORT_BEGIN
280     TEST_ASSERT_EQUAL_INT(3982, 3983);
281     VERIFY_FAILS_END
282 }
283 
testNotEqualInt8s(void)284 void testNotEqualInt8s(void)
285 {
286     EXPECT_ABORT_BEGIN
287     TEST_ASSERT_EQUAL_INT8(-127, -126);
288     VERIFY_FAILS_END
289 }
290 
testNotEqualChars(void)291 void testNotEqualChars(void)
292 {
293     EXPECT_ABORT_BEGIN
294     TEST_ASSERT_EQUAL_CHAR('A', 'a');
295     VERIFY_FAILS_END
296 }
297 
testNotEqualInt16s(void)298 void testNotEqualInt16s(void)
299 {
300     EXPECT_ABORT_BEGIN
301     TEST_ASSERT_EQUAL_INT16(-16383, -16382);
302     VERIFY_FAILS_END
303 }
304 
testNotEqualInt32s(void)305 void testNotEqualInt32s(void)
306 {
307     EXPECT_ABORT_BEGIN
308     /*use largest 32 bit negative to test printability*/
309     /*note: (-2147483647 - 1) is used instead of -2147483648 because of C90 casting rules */
310     TEST_ASSERT_EQUAL_INT32(-2147483647, (-2147483647 - 1));
311     VERIFY_FAILS_END
312 }
313 
testNotEqualBits(void)314 void testNotEqualBits(void)
315 {
316     EXPECT_ABORT_BEGIN
317     TEST_ASSERT_BITS(0xFF00, 0x5555, 0x5A55);
318     VERIFY_FAILS_END
319 }
320 
testNotEqualUInts(void)321 void testNotEqualUInts(void)
322 {
323     UNITY_UINT16 v0, v1;
324 
325     v0 = 9000;
326     v1 = 9001;
327 
328     EXPECT_ABORT_BEGIN
329     TEST_ASSERT_EQUAL_UINT(v0, v1);
330     VERIFY_FAILS_END
331 }
332 
testNotEqualUInt8s(void)333 void testNotEqualUInt8s(void)
334 {
335     UNITY_UINT8 v0, v1;
336 
337     v0 = 254;
338     v1 = 255;
339 
340     EXPECT_ABORT_BEGIN
341     TEST_ASSERT_EQUAL_UINT8(v0, v1);
342     VERIFY_FAILS_END
343 }
344 
testNotEqualUInt16s(void)345 void testNotEqualUInt16s(void)
346 {
347     UNITY_UINT16 v0, v1;
348 
349     v0 = 65535u;
350     v1 = 65534u;
351 
352     EXPECT_ABORT_BEGIN
353     TEST_ASSERT_EQUAL_UINT16(v0, v1);
354     VERIFY_FAILS_END
355 }
356 
testNotEqualUInt32s(void)357 void testNotEqualUInt32s(void)
358 {
359     UNITY_UINT32 v0, v1;
360 
361     v0 = 4294967295u;
362     v1 = 4294967294u;
363 
364     EXPECT_ABORT_BEGIN
365     TEST_ASSERT_EQUAL_UINT32(v0, v1);
366     VERIFY_FAILS_END
367 }
368 
testNotEqualHex8s(void)369 void testNotEqualHex8s(void)
370 {
371     UNITY_UINT8 v0, v1;
372 
373     v0 = 0x23;
374     v1 = 0x22;
375 
376     EXPECT_ABORT_BEGIN
377     TEST_ASSERT_EQUAL_HEX8(v0, v1);
378     VERIFY_FAILS_END
379 }
380 
testNotEqualHex8sIfSigned(void)381 void testNotEqualHex8sIfSigned(void)
382 {
383     UNITY_INT8 v0, v1;
384 
385     v0 = -2;
386     v1 = 2;
387 
388     EXPECT_ABORT_BEGIN
389     TEST_ASSERT_EQUAL_HEX8(v0, v1);
390     VERIFY_FAILS_END
391 }
392 
testNotEqualHex16s(void)393 void testNotEqualHex16s(void)
394 {
395     UNITY_UINT16 v0, v1;
396 
397     v0 = 0x1234;
398     v1 = 0x1235;
399 
400     EXPECT_ABORT_BEGIN
401     TEST_ASSERT_EQUAL_HEX16(v0, v1);
402     VERIFY_FAILS_END
403 }
404 
testNotEqualHex16sIfSigned(void)405 void testNotEqualHex16sIfSigned(void)
406 {
407     UNITY_INT16 v0, v1;
408 
409     v0 = -1024;
410     v1 = -1028;
411 
412     EXPECT_ABORT_BEGIN
413     TEST_ASSERT_EQUAL_HEX16(v0, v1);
414     VERIFY_FAILS_END
415 }
416 
testNotEqualHex32s(void)417 void testNotEqualHex32s(void)
418 {
419     UNITY_UINT32 v0, v1;
420 
421     v0 = 900000;
422     v1 = 900001;
423 
424     EXPECT_ABORT_BEGIN
425     TEST_ASSERT_EQUAL_HEX32(v0, v1);
426     VERIFY_FAILS_END
427 }
428 
testNotEqualHex32sIfSigned(void)429 void testNotEqualHex32sIfSigned(void)
430 {
431     UNITY_INT32 v0, v1;
432 
433     v0 = -900000;
434     v1 = 900001;
435 
436     EXPECT_ABORT_BEGIN
437     TEST_ASSERT_EQUAL_HEX32(v0, v1);
438     VERIFY_FAILS_END
439 }
440 
testEqualInts(void)441 void testEqualInts(void)
442 {
443     int v0, v1;
444     int *p0, *p1;
445 
446     v0 = 19467;
447     v1 = 19467;
448     p0 = &v0;
449     p1 = &v1;
450 
451     TEST_ASSERT_EQUAL_INT(1837, 1837);
452     TEST_ASSERT_EQUAL_INT(-27365, -27365);
453     TEST_ASSERT_EQUAL_INT(v0, v1);
454     TEST_ASSERT_EQUAL_INT(19467, v1);
455     TEST_ASSERT_EQUAL_INT(v0, 19467);
456     TEST_ASSERT_EQUAL_INT(*p0, v1);
457     TEST_ASSERT_EQUAL_INT(*p0, *p1);
458     TEST_ASSERT_EQUAL_INT(*p0, 19467);
459 }
460 
testEqualInt8s(void)461 void testEqualInt8s(void)
462 {
463     UNITY_INT8 v0, v1;
464     UNITY_INT8 *p0, *p1;
465 
466     v0 = 0x22;
467     v1 = 0x22;
468     p0 = &v0;
469     p1 = &v1;
470 
471     TEST_ASSERT_EQUAL_INT8(0x22, 0x22);
472     TEST_ASSERT_EQUAL_INT8(v0, v1);
473     TEST_ASSERT_EQUAL_INT8(0x22, v1);
474     TEST_ASSERT_EQUAL_INT8(v0, 0x22);
475     TEST_ASSERT_EQUAL_INT8(*p0, v1);
476     TEST_ASSERT_EQUAL_INT8(*p0, *p1);
477     TEST_ASSERT_EQUAL_INT8(*p0, 0x22);
478 }
479 
testEqualInt8sWhenThereAreDifferencesOutside8Bits(void)480 void testEqualInt8sWhenThereAreDifferencesOutside8Bits(void)
481 {
482     TEST_ASSERT_EQUAL_INT8(0x321,0x421);
483     TEST_ASSERT_EQUAL_INT8(0xFF21,0x0021);
484 }
485 
testEqualChars(void)486 void testEqualChars(void)
487 {
488     char v0, v1;
489     char *p0, *p1;
490 
491     v0 = 'A';
492     v1 = 'A';
493     p0 = &v0;
494     p1 = &v1;
495 
496     TEST_ASSERT_EQUAL_CHAR('A', 'A');
497     TEST_ASSERT_EQUAL_CHAR(v0, v1);
498     TEST_ASSERT_EQUAL_CHAR('A', v1);
499     TEST_ASSERT_EQUAL_CHAR(v0, 'A');
500     TEST_ASSERT_EQUAL_CHAR(*p0, v1);
501     TEST_ASSERT_EQUAL_CHAR(*p0, *p1);
502     TEST_ASSERT_EQUAL_CHAR(*p0, 'A');
503 }
504 
testEqualCharsWhenThereAreDifferencesOutside8Bits(void)505 void testEqualCharsWhenThereAreDifferencesOutside8Bits(void)
506 {
507     TEST_ASSERT_EQUAL_CHAR(0x321,0x421);
508     TEST_ASSERT_EQUAL_CHAR(0xFF21,0x0021);
509 }
510 
511 
testEqualInt16s(void)512 void testEqualInt16s(void)
513 {
514     UNITY_INT16 v0, v1;
515     UNITY_INT16 *p0, *p1;
516 
517     v0 = 0x7876;
518     v1 = 0x7876;
519     p0 = &v0;
520     p1 = &v1;
521 
522     TEST_ASSERT_EQUAL_INT16(0x7876, 0x7876);
523     TEST_ASSERT_EQUAL_INT16(v0, v1);
524     TEST_ASSERT_EQUAL_INT16(0x7876, v1);
525     TEST_ASSERT_EQUAL_INT16(v0, 0x7876);
526     TEST_ASSERT_EQUAL_INT16(*p0, v1);
527     TEST_ASSERT_EQUAL_INT16(*p0, *p1);
528     TEST_ASSERT_EQUAL_INT16(*p0, 0x7876);
529 }
530 
testEqualInt16sNegatives(void)531 void testEqualInt16sNegatives(void)
532 {
533     UNITY_INT16 v0, v1;
534     UNITY_INT16 *p0, *p1;
535 
536     v0 = -7876;
537     v1 = -7876;
538     p0 = &v0;
539     p1 = &v1;
540 
541     TEST_ASSERT_EQUAL_INT16(-7876, -7876);
542     TEST_ASSERT_EQUAL_INT16(v0, v1);
543     TEST_ASSERT_EQUAL_INT16(-7876, v1);
544     TEST_ASSERT_EQUAL_INT16(v0, -7876);
545     TEST_ASSERT_EQUAL_INT16(*p0, v1);
546     TEST_ASSERT_EQUAL_INT16(*p0, *p1);
547     TEST_ASSERT_EQUAL_INT16(*p0, -7876);
548 }
549 
testEqualInt16sWhenThereAreDifferencesOutside16Bits(void)550 void testEqualInt16sWhenThereAreDifferencesOutside16Bits(void)
551 {
552     TEST_ASSERT_EQUAL_INT16(0x54321,0x64321);
553     TEST_ASSERT_EQUAL_INT16(0xFFFF4321,0x00004321);
554 }
555 
testEqualInt32s(void)556 void testEqualInt32s(void)
557 {
558     UNITY_INT32 v0, v1;
559     UNITY_INT32 *p0, *p1;
560 
561     v0 = 0x78760000;
562     v1 = 0x78760000;
563     p0 = &v0;
564     p1 = &v1;
565 
566     TEST_ASSERT_EQUAL_INT32(0x78760000, 0x78760000);
567     TEST_ASSERT_EQUAL_INT32(v0, v1);
568     TEST_ASSERT_EQUAL_INT32(0x78760000, v1);
569     TEST_ASSERT_EQUAL_INT32(v0, 0x78760000);
570     TEST_ASSERT_EQUAL_INT32(*p0, v1);
571     TEST_ASSERT_EQUAL_INT32(*p0, *p1);
572     TEST_ASSERT_EQUAL_INT32(*p0, 0x78760000);
573 }
574 
testEqualInt32sNegatives(void)575 void testEqualInt32sNegatives(void)
576 {
577     UNITY_INT32 v0, v1;
578     UNITY_INT32 *p0, *p1;
579 
580     v0 = -123456789;
581     v1 = -123456789;
582     p0 = &v0;
583     p1 = &v1;
584 
585     TEST_ASSERT_EQUAL_INT32(-123456789, -123456789);
586     TEST_ASSERT_EQUAL_INT32(v0, v1);
587     TEST_ASSERT_EQUAL_INT32(-123456789, v1);
588     TEST_ASSERT_EQUAL_INT32(v0, -123456789);
589     TEST_ASSERT_EQUAL_INT32(*p0, v1);
590     TEST_ASSERT_EQUAL_INT32(*p0, *p1);
591     TEST_ASSERT_EQUAL_INT32(*p0, -123456789);
592 }
593 
594 
testEqualUints(void)595 void testEqualUints(void)
596 {
597     unsigned int v0, v1;
598     unsigned int *p0, *p1;
599 
600     v0 = 19467;
601     v1 = 19467;
602     p0 = &v0;
603     p1 = &v1;
604 
605     TEST_ASSERT_EQUAL_UINT(1837, 1837);
606     TEST_ASSERT_EQUAL_UINT(v0, v1);
607     TEST_ASSERT_EQUAL_UINT(19467, v1);
608     TEST_ASSERT_EQUAL_UINT(v0, 19467);
609     TEST_ASSERT_EQUAL_UINT(*p0, v1);
610     TEST_ASSERT_EQUAL_UINT(*p0, *p1);
611     TEST_ASSERT_EQUAL_UINT(*p0, 19467);
612     TEST_ASSERT_EQUAL_UINT(60872u, 60872u);
613 }
614 
615 
testEqualUint8s(void)616 void testEqualUint8s(void)
617 {
618     UNITY_UINT8 v0, v1;
619     UNITY_UINT8 *p0, *p1;
620 
621     v0 = 0x22;
622     v1 = 0x22;
623     p0 = &v0;
624     p1 = &v1;
625 
626     TEST_ASSERT_EQUAL_UINT8(0x22, 0x22);
627     TEST_ASSERT_EQUAL_UINT8(v0, v1);
628     TEST_ASSERT_EQUAL_UINT8(0x22, v1);
629     TEST_ASSERT_EQUAL_UINT8(v0, 0x22);
630     TEST_ASSERT_EQUAL_UINT8(*p0, v1);
631     TEST_ASSERT_EQUAL_UINT8(*p0, *p1);
632     TEST_ASSERT_EQUAL_UINT8(*p0, 0x22);
633 }
634 
testEqualUint8sWhenThereAreDifferencesOutside8Bits(void)635 void testEqualUint8sWhenThereAreDifferencesOutside8Bits(void)
636 {
637     TEST_ASSERT_EQUAL_UINT8(0x321,0x421);
638     TEST_ASSERT_EQUAL_UINT8(0xFF21,0x0021);
639 }
640 
testEqualUint16s(void)641 void testEqualUint16s(void)
642 {
643     UNITY_UINT16 v0, v1;
644     UNITY_UINT16 *p0, *p1;
645 
646     v0 = 0x9876;
647     v1 = 0x9876;
648     p0 = &v0;
649     p1 = &v1;
650 
651     TEST_ASSERT_EQUAL_UINT16(0x9876, 0x9876);
652     TEST_ASSERT_EQUAL_UINT16(v0, v1);
653     TEST_ASSERT_EQUAL_UINT16(0x9876, v1);
654     TEST_ASSERT_EQUAL_UINT16(v0, 0x9876);
655     TEST_ASSERT_EQUAL_UINT16(*p0, v1);
656     TEST_ASSERT_EQUAL_UINT16(*p0, *p1);
657     TEST_ASSERT_EQUAL_UINT16(*p0, 0x9876);
658 }
659 
testEqualUint16sWhenThereAreDifferencesOutside16Bits(void)660 void testEqualUint16sWhenThereAreDifferencesOutside16Bits(void)
661 {
662     TEST_ASSERT_EQUAL_UINT16(0x54321,0x64321);
663     TEST_ASSERT_EQUAL_UINT16(0xFFFF4321,0x00004321);
664 }
665 
testEqualUint32s(void)666 void testEqualUint32s(void)
667 {
668     UNITY_UINT32 v0, v1;
669     UNITY_UINT32 *p0, *p1;
670 
671     v0 = 0x98760000;
672     v1 = 0x98760000;
673     p0 = &v0;
674     p1 = &v1;
675 
676     TEST_ASSERT_EQUAL_UINT32(0x98760000, 0x98760000);
677     TEST_ASSERT_EQUAL_UINT32(v0, v1);
678     TEST_ASSERT_EQUAL_UINT32(0x98760000, v1);
679     TEST_ASSERT_EQUAL_UINT32(v0, 0x98760000);
680     TEST_ASSERT_EQUAL_UINT32(*p0, v1);
681     TEST_ASSERT_EQUAL_UINT32(*p0, *p1);
682     TEST_ASSERT_EQUAL_UINT32(*p0, 0x98760000);
683 }
684 
testNotEqual(void)685 void testNotEqual(void)
686 {
687     TEST_ASSERT_NOT_EQUAL(0, 1);
688     TEST_ASSERT_NOT_EQUAL(1, 0);
689     TEST_ASSERT_NOT_EQUAL(100, 101);
690     TEST_ASSERT_NOT_EQUAL(0, -1);
691     TEST_ASSERT_NOT_EQUAL(65535, -65535);
692     TEST_ASSERT_NOT_EQUAL(75, 900);
693     TEST_ASSERT_NOT_EQUAL(-100, -101);
694 }
695 
testEqualHex8s(void)696 void testEqualHex8s(void)
697 {
698     UNITY_UINT8 v0, v1;
699     UNITY_UINT8 *p0, *p1;
700 
701     v0 = 0x22;
702     v1 = 0x22;
703     p0 = &v0;
704     p1 = &v1;
705 
706     TEST_ASSERT_EQUAL_HEX8(0x22, 0x22);
707     TEST_ASSERT_EQUAL_HEX8(v0, v1);
708     TEST_ASSERT_EQUAL_HEX8(0x22, v1);
709     TEST_ASSERT_EQUAL_HEX8(v0, 0x22);
710     TEST_ASSERT_EQUAL_HEX8(*p0, v1);
711     TEST_ASSERT_EQUAL_HEX8(*p0, *p1);
712     TEST_ASSERT_EQUAL_HEX8(*p0, 0x22);
713 }
714 
testEqualHex8sWhenThereAreDifferencesOutside8Bits(void)715 void testEqualHex8sWhenThereAreDifferencesOutside8Bits(void)
716 {
717     TEST_ASSERT_EQUAL_HEX8(0x321,0x421);
718     TEST_ASSERT_EQUAL_HEX8(0xFF21,0x0021);
719 }
720 
testEqualHex8sNegatives(void)721 void testEqualHex8sNegatives(void)
722 {
723     UNITY_UINT8 v0, v1;
724     UNITY_UINT8 *p0, *p1;
725 
726     v0 = 0xDD;
727     v1 = 0xDD;
728     p0 = &v0;
729     p1 = &v1;
730 
731     TEST_ASSERT_EQUAL_HEX8(0xDD, 0xDD);
732     TEST_ASSERT_EQUAL_HEX8(v0, v1);
733     TEST_ASSERT_EQUAL_HEX8(0xDD, v1);
734     TEST_ASSERT_EQUAL_HEX8(v0, 0xDD);
735     TEST_ASSERT_EQUAL_HEX8(*p0, v1);
736     TEST_ASSERT_EQUAL_HEX8(*p0, *p1);
737     TEST_ASSERT_EQUAL_HEX8(*p0, 0xDD);
738 }
739 
testEqualHex16s(void)740 void testEqualHex16s(void)
741 {
742     UNITY_UINT16 v0, v1;
743     UNITY_UINT16 *p0, *p1;
744 
745     v0 = 0x9876;
746     v1 = 0x9876;
747     p0 = &v0;
748     p1 = &v1;
749 
750     TEST_ASSERT_EQUAL_HEX16(0x9876, 0x9876);
751     TEST_ASSERT_EQUAL_HEX16(v0, v1);
752     TEST_ASSERT_EQUAL_HEX16(0x9876, v1);
753     TEST_ASSERT_EQUAL_HEX16(v0, 0x9876);
754     TEST_ASSERT_EQUAL_HEX16(*p0, v1);
755     TEST_ASSERT_EQUAL_HEX16(*p0, *p1);
756     TEST_ASSERT_EQUAL_HEX16(*p0, 0x9876);
757 }
758 
testEqualHex16sWhenThereAreDifferencesOutside16Bits(void)759 void testEqualHex16sWhenThereAreDifferencesOutside16Bits(void)
760 {
761     TEST_ASSERT_EQUAL_HEX16(0x54321,0x64321);
762     TEST_ASSERT_EQUAL_HEX16(0xFFFF4321,0x00004321);
763 }
764 
testEqualHex32s(void)765 void testEqualHex32s(void)
766 {
767     UNITY_UINT32 v0, v1;
768     UNITY_UINT32 *p0, *p1;
769 
770     v0 = 0x98765432ul;
771     v1 = 0x98765432ul;
772     p0 = &v0;
773     p1 = &v1;
774 
775     TEST_ASSERT_EQUAL_HEX32(0x98765432ul, 0x98765432ul);
776     TEST_ASSERT_EQUAL_HEX32(v0, v1);
777     TEST_ASSERT_EQUAL_HEX32(0x98765432ul, v1);
778     TEST_ASSERT_EQUAL_HEX32(v0, 0x98765432ul);
779     TEST_ASSERT_EQUAL_HEX32(*p0, v1);
780     TEST_ASSERT_EQUAL_HEX32(*p0, *p1);
781     TEST_ASSERT_EQUAL_HEX32(*p0, 0x98765432ul);
782 }
783 
testEqualBits(void)784 void testEqualBits(void)
785 {
786     UNITY_UINT32 v0 = 0xFF55AA00;
787     UNITY_UINT32 v1 = 0x55550000;
788 
789     TEST_ASSERT_BITS(v1, v0, 0x55550000);
790     TEST_ASSERT_BITS(v1, v0, 0xFF55CC00);
791     TEST_ASSERT_BITS(0xFFFFFFFF, v0, 0xFF55AA00);
792     TEST_ASSERT_BITS(0xFFFFFFFF, v0, v0);
793     TEST_ASSERT_BITS(0xF0F0F0F0, v0, 0xFC5DAE0F);
794     TEST_ASSERT_BITS_HIGH(v1, v0);
795     TEST_ASSERT_BITS_LOW(0x000055FF, v0);
796     TEST_ASSERT_BIT_HIGH(30, v0);
797     TEST_ASSERT_BIT_LOW(5, v0);
798 }
799 
testNotEqualBitHigh(void)800 void testNotEqualBitHigh(void)
801 {
802     UNITY_UINT32 v0 = 0x7F55AA00;
803 
804     EXPECT_ABORT_BEGIN
805     TEST_ASSERT_BIT_HIGH(31, v0);
806     VERIFY_FAILS_END
807 }
808 
testNotEqualBitLow(void)809 void testNotEqualBitLow(void)
810 {
811     UNITY_UINT32 v0 = 0xFF55AA00;
812 
813     EXPECT_ABORT_BEGIN
814     TEST_ASSERT_BIT_LOW(30, v0);
815     VERIFY_FAILS_END
816 }
817 
testNotEqualBitsHigh(void)818 void testNotEqualBitsHigh(void)
819 {
820     UNITY_UINT32 v0 = 0xFF55AA00;
821     UNITY_UINT32 v1 = 0x55550000;
822 
823     EXPECT_ABORT_BEGIN
824     TEST_ASSERT_BITS_HIGH(v0, v1);
825     VERIFY_FAILS_END
826 
827 }
828 
testNotEqualBitsLow(void)829 void testNotEqualBitsLow(void)
830 {
831     UNITY_UINT32 v0 = 0xFF55AA00;
832     UNITY_UINT32 v1 = 0x55550000;
833 
834     EXPECT_ABORT_BEGIN
835     TEST_ASSERT_BITS_LOW(v0, v1);
836     VERIFY_FAILS_END
837 }
838 
839 
testEqualShorts(void)840 void testEqualShorts(void)
841 {
842     short v0, v1;
843     short *p0, *p1;
844 
845     v0 = 19467;
846     v1 = 19467;
847     p0 = &v0;
848     p1 = &v1;
849 
850     TEST_ASSERT_EQUAL_INT(1837, 1837);
851     TEST_ASSERT_EQUAL_INT(-2987, -2987);
852     TEST_ASSERT_EQUAL_INT(v0, v1);
853     TEST_ASSERT_EQUAL_INT(19467, v1);
854     TEST_ASSERT_EQUAL_INT(v0, 19467);
855     TEST_ASSERT_EQUAL_INT(*p0, v1);
856     TEST_ASSERT_EQUAL_INT(*p0, *p1);
857     TEST_ASSERT_EQUAL_INT(*p0, 19467);
858 }
859 
testEqualUShorts(void)860 void testEqualUShorts(void)
861 {
862     unsigned short v0, v1;
863     unsigned short *p0, *p1;
864 
865     v0 = 19467;
866     v1 = 19467;
867     p0 = &v0;
868     p1 = &v1;
869 
870     TEST_ASSERT_EQUAL_UINT(1837, 1837);
871     TEST_ASSERT_EQUAL_UINT(2987, 2987);
872     TEST_ASSERT_EQUAL_UINT(v0, v1);
873     TEST_ASSERT_EQUAL_UINT(19467, v1);
874     TEST_ASSERT_EQUAL_UINT(v0, 19467);
875     TEST_ASSERT_EQUAL_UINT(*p0, v1);
876     TEST_ASSERT_EQUAL_UINT(*p0, *p1);
877     TEST_ASSERT_EQUAL_UINT(*p0, 19467);
878 }
879 
testEqualUInts(void)880 void testEqualUInts(void)
881 {
882     unsigned char v0, v1;
883     unsigned char *p0, *p1;
884 
885     v0 = 109;
886     v1 = 109;
887     p0 = &v0;
888     p1 = &v1;
889 
890     TEST_ASSERT_EQUAL_UINT(42, 42);
891     TEST_ASSERT_EQUAL_UINT(-116, -116);
892     TEST_ASSERT_EQUAL_UINT(v0, v1);
893     TEST_ASSERT_EQUAL_UINT(109, v1);
894     TEST_ASSERT_EQUAL_UINT(v0, 109);
895     TEST_ASSERT_EQUAL_UINT(*p0, v1);
896     TEST_ASSERT_EQUAL_UINT(*p0, *p1);
897     TEST_ASSERT_EQUAL_UINT(*p0, 109);
898 }
899 
testEqualUChars(void)900 void testEqualUChars(void)
901 {
902     unsigned char v0, v1;
903     unsigned char *p0, *p1;
904 
905     v0 = 251;
906     v1 = 251;
907     p0 = &v0;
908     p1 = &v1;
909 
910     TEST_ASSERT_EQUAL_INT(42, 42);
911     TEST_ASSERT_EQUAL_INT(v0, v1);
912     TEST_ASSERT_EQUAL_INT(251, v1);
913     TEST_ASSERT_EQUAL_INT(v0, 251);
914     TEST_ASSERT_EQUAL_INT(*p0, v1);
915     TEST_ASSERT_EQUAL_INT(*p0, *p1);
916     TEST_ASSERT_EQUAL_INT(*p0, 251);
917 }
918 
testEqualPointers(void)919 void testEqualPointers(void)
920 {
921     int v0, v1;
922     int *p0, *p1, *p2;
923 
924     v0 = 19467;
925     v1 = 18271;
926     p0 = &v0;
927     p1 = &v1;
928     p2 = &v1;
929 
930     TEST_ASSERT_EQUAL_PTR(p0, &v0);
931     TEST_ASSERT_EQUAL_PTR(&v1, p1);
932     TEST_ASSERT_EQUAL_PTR(p2, p1);
933     TEST_ASSERT_EQUAL_PTR(&v0, &v0);
934 }
935 
testNotEqualPointers(void)936 void testNotEqualPointers(void)
937 {
938     EXPECT_ABORT_BEGIN
939     TEST_ASSERT_EQUAL_PTR(0x12345678, 0x12345677);
940     VERIFY_FAILS_END
941 }
942 
testIntsWithinDelta(void)943 void testIntsWithinDelta(void)
944 {
945     TEST_ASSERT_INT_WITHIN(1, 5000, 5001);
946     TEST_ASSERT_INT_WITHIN(5, 5000, 4996);
947     TEST_ASSERT_INT_WITHIN(5, 5000, 5005);
948     TEST_ASSERT_INT_WITHIN(500, 50, -440);
949 
950     TEST_ASSERT_INT_WITHIN(2, -1, -1);
951     TEST_ASSERT_INT_WITHIN(5, 1, -1);
952     TEST_ASSERT_INT_WITHIN(5, -1, 1);
953 }
954 
testIntsWithinDeltaAndCustomMessage(void)955 void testIntsWithinDeltaAndCustomMessage(void)
956 {
957     TEST_ASSERT_INT_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
958     TEST_ASSERT_INT_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
959     TEST_ASSERT_INT_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
960     TEST_ASSERT_INT_WITHIN_MESSAGE(500, 50, -440, "Custom Message.");
961 
962     TEST_ASSERT_INT_WITHIN_MESSAGE(2, -1, -1, "Custom Message.");
963     TEST_ASSERT_INT_WITHIN_MESSAGE(5, 1, -1, "Custom Message.");
964     TEST_ASSERT_INT_WITHIN_MESSAGE(5, -1, 1, "Custom Message.");
965 }
966 
testIntsNotWithinDelta(void)967 void testIntsNotWithinDelta(void)
968 {
969     EXPECT_ABORT_BEGIN
970     TEST_ASSERT_INT_WITHIN(5, 5000, 5006);
971     VERIFY_FAILS_END
972 }
973 
testIntsNotWithinDeltaAndCustomMessage(void)974 void testIntsNotWithinDeltaAndCustomMessage(void)
975 {
976     EXPECT_ABORT_BEGIN
977     TEST_ASSERT_INT_WITHIN_MESSAGE(5, 5000, 5006, "Custom Message.");
978     VERIFY_FAILS_END
979 }
980 
testUIntsWithinDelta(void)981 void testUIntsWithinDelta(void)
982 {
983     TEST_ASSERT_UINT_WITHIN(1, 5000, 5001);
984     TEST_ASSERT_UINT_WITHIN(5, 5000, 4996);
985     TEST_ASSERT_UINT_WITHIN(5, 5000, 5005);
986 }
987 
testUIntsWithinDeltaAndCustomMessage(void)988 void testUIntsWithinDeltaAndCustomMessage(void)
989 {
990     TEST_ASSERT_UINT_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
991     TEST_ASSERT_UINT_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
992     TEST_ASSERT_UINT_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
993 }
994 
testUIntsNotWithinDelta(void)995 void testUIntsNotWithinDelta(void)
996 {
997     EXPECT_ABORT_BEGIN
998     TEST_ASSERT_UINT_WITHIN(1, 2147483647u, 2147483649u);
999     VERIFY_FAILS_END
1000 }
1001 
testUIntsNotWithinDeltaAndCustomMessage(void)1002 void testUIntsNotWithinDeltaAndCustomMessage(void)
1003 {
1004     EXPECT_ABORT_BEGIN
1005     TEST_ASSERT_UINT_WITHIN_MESSAGE(1, 2147483647u, 2147483649u, "Custom Message.");
1006     VERIFY_FAILS_END
1007 }
1008 
testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassSmallFirst(void)1009 void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassSmallFirst(void)
1010 {
1011     EXPECT_ABORT_BEGIN
1012     TEST_ASSERT_UINT_WITHIN(5, 1, -1);
1013     VERIFY_FAILS_END
1014 }
1015 
testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassSmallFirstAndCustomMessage(void)1016 void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassSmallFirstAndCustomMessage(void)
1017 {
1018     EXPECT_ABORT_BEGIN
1019     TEST_ASSERT_UINT_WITHIN_MESSAGE(5, 1, -1, "Custom Message.");
1020     VERIFY_FAILS_END
1021 }
1022 
testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassBigFirst(void)1023 void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassBigFirst(void)
1024 {
1025     EXPECT_ABORT_BEGIN
1026     TEST_ASSERT_UINT_WITHIN(5, -1, 1);
1027     VERIFY_FAILS_END
1028 }
1029 
testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassBigFirstAndCustomMessage(void)1030 void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassBigFirstAndCustomMessage(void)
1031 {
1032     EXPECT_ABORT_BEGIN
1033     TEST_ASSERT_UINT_WITHIN_MESSAGE(5, -1, 1, "Custom Message.");
1034     VERIFY_FAILS_END
1035 }
1036 
testHEX32sWithinDelta(void)1037 void testHEX32sWithinDelta(void)
1038 {
1039     TEST_ASSERT_HEX32_WITHIN(1, 5000, 5001);
1040     TEST_ASSERT_HEX32_WITHIN(5, 5000, 4996);
1041     TEST_ASSERT_HEX32_WITHIN(5, 5000, 5005);
1042 }
1043 
testHEX32sWithinDeltaAndCustomMessage(void)1044 void testHEX32sWithinDeltaAndCustomMessage(void)
1045 {
1046     TEST_ASSERT_HEX32_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
1047     TEST_ASSERT_HEX32_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
1048     TEST_ASSERT_HEX32_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
1049 }
1050 
testHEX32sNotWithinDelta(void)1051 void testHEX32sNotWithinDelta(void)
1052 {
1053     EXPECT_ABORT_BEGIN
1054     TEST_ASSERT_HEX32_WITHIN(1, 2147483647u, 2147483649u);
1055     VERIFY_FAILS_END
1056 }
1057 
testHEX32sNotWithinDeltaAndCustomMessage(void)1058 void testHEX32sNotWithinDeltaAndCustomMessage(void)
1059 {
1060     EXPECT_ABORT_BEGIN
1061     TEST_ASSERT_HEX32_WITHIN_MESSAGE(1, 2147483647u, 2147483649u, "Custom Message.");
1062     VERIFY_FAILS_END
1063 }
1064 
testHEX32sNotWithinDeltaEvenThoughASignedIntWouldPass(void)1065 void testHEX32sNotWithinDeltaEvenThoughASignedIntWouldPass(void)
1066 {
1067     EXPECT_ABORT_BEGIN
1068     TEST_ASSERT_HEX32_WITHIN(5, 1, -1);
1069     VERIFY_FAILS_END
1070 }
1071 
testHEX32sNotWithinDeltaEvenThoughASignedIntWouldPassAndCustomMessage(void)1072 void testHEX32sNotWithinDeltaEvenThoughASignedIntWouldPassAndCustomMessage(void)
1073 {
1074     EXPECT_ABORT_BEGIN
1075     TEST_ASSERT_HEX32_WITHIN_MESSAGE(5, 1, -1, "Custom Message.");
1076     VERIFY_FAILS_END
1077 }
1078 
testHEX16sWithinDelta(void)1079 void testHEX16sWithinDelta(void)
1080 {
1081     TEST_ASSERT_HEX16_WITHIN(1, 5000, 5001);
1082     TEST_ASSERT_HEX16_WITHIN(5, 5000, 4996);
1083     TEST_ASSERT_HEX16_WITHIN(5, 5000, 5005);
1084 }
1085 
testHEX16sWithinDeltaAndCustomMessage(void)1086 void testHEX16sWithinDeltaAndCustomMessage(void)
1087 {
1088     TEST_ASSERT_HEX16_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
1089     TEST_ASSERT_HEX16_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
1090     TEST_ASSERT_HEX16_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
1091 }
1092 
testHEX16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void)1093 void testHEX16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void)
1094 {
1095     TEST_ASSERT_HEX16_WITHIN(5, 0x54321, 0x44321);
1096 }
1097 
testHEX16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void)1098 void testHEX16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void)
1099 {
1100     TEST_ASSERT_HEX16_WITHIN_MESSAGE(5, 0x54321, 0x44321, "Custom Message.");
1101 }
1102 
testHEX16sNotWithinDelta(void)1103 void testHEX16sNotWithinDelta(void)
1104 {
1105     EXPECT_ABORT_BEGIN
1106     TEST_ASSERT_HEX16_WITHIN(2, 65535, 0);
1107     VERIFY_FAILS_END
1108 }
1109 
testHEX16sNotWithinDeltaAndCustomMessage(void)1110 void testHEX16sNotWithinDeltaAndCustomMessage(void)
1111 {
1112     EXPECT_ABORT_BEGIN
1113     TEST_ASSERT_HEX16_WITHIN_MESSAGE(2, 65535, 0, "Custom Message.");
1114     VERIFY_FAILS_END
1115 }
1116 
testHEX8sWithinDelta(void)1117 void testHEX8sWithinDelta(void)
1118 {
1119     TEST_ASSERT_HEX8_WITHIN(1, 254, 255);
1120     TEST_ASSERT_HEX8_WITHIN(5, 251, 255);
1121     TEST_ASSERT_HEX8_WITHIN(5, 1, 4);
1122 }
1123 
testHEX8sWithinDeltaAndCustomMessage(void)1124 void testHEX8sWithinDeltaAndCustomMessage(void)
1125 {
1126     TEST_ASSERT_HEX8_WITHIN_MESSAGE(1, 254, 255, "Custom Message.");
1127     TEST_ASSERT_HEX8_WITHIN_MESSAGE(5, 251, 255, "Custom Message.");
1128     TEST_ASSERT_HEX8_WITHIN_MESSAGE(5, 1, 4, "Custom Message.");
1129 }
1130 
testHEX8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)1131 void testHEX8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)
1132 {
1133     TEST_ASSERT_HEX8_WITHIN(5, 0x123, 0xF23);
1134 }
1135 
testHEX8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void)1136 void testHEX8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void)
1137 {
1138     TEST_ASSERT_HEX8_WITHIN_MESSAGE(5, 0x123, 0xF23, "Custom Message.");
1139 }
1140 
testHEX8sNotWithinDelta(void)1141 void testHEX8sNotWithinDelta(void)
1142 {
1143     EXPECT_ABORT_BEGIN
1144     TEST_ASSERT_HEX8_WITHIN(2, 255, 0);
1145     VERIFY_FAILS_END
1146 }
1147 
testHEX8sNotWithinDeltaAndCustomMessage(void)1148 void testHEX8sNotWithinDeltaAndCustomMessage(void)
1149 {
1150     EXPECT_ABORT_BEGIN
1151     TEST_ASSERT_HEX8_WITHIN_MESSAGE(2, 255, 0, "Custom Message.");
1152     VERIFY_FAILS_END
1153 }
1154 
1155 /*-----------------*/
1156 
testUINT32sWithinDelta(void)1157 void testUINT32sWithinDelta(void)
1158 {
1159     TEST_ASSERT_UINT32_WITHIN(1, 5000, 5001);
1160     TEST_ASSERT_UINT32_WITHIN(5, 5000, 4996);
1161     TEST_ASSERT_UINT32_WITHIN(5, 5000, 5005);
1162 }
1163 
testUINT32sWithinDeltaAndCustomMessage(void)1164 void testUINT32sWithinDeltaAndCustomMessage(void)
1165 {
1166     TEST_ASSERT_UINT32_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
1167     TEST_ASSERT_UINT32_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
1168     TEST_ASSERT_UINT32_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
1169 }
1170 
testUINT32sNotWithinDelta(void)1171 void testUINT32sNotWithinDelta(void)
1172 {
1173     EXPECT_ABORT_BEGIN
1174     TEST_ASSERT_UINT32_WITHIN(1, 2147483647u, 2147483649u);
1175     VERIFY_FAILS_END
1176 }
1177 
testUINT32sNotWithinDeltaAndCustomMessage(void)1178 void testUINT32sNotWithinDeltaAndCustomMessage(void)
1179 {
1180     EXPECT_ABORT_BEGIN
1181     TEST_ASSERT_UINT32_WITHIN_MESSAGE(1, 2147483647u, 2147483649u, "Custom Message.");
1182     VERIFY_FAILS_END
1183 }
1184 
testUINT32sNotWithinDeltaEvenThoughASignedIntWouldPass(void)1185 void testUINT32sNotWithinDeltaEvenThoughASignedIntWouldPass(void)
1186 {
1187     EXPECT_ABORT_BEGIN
1188     TEST_ASSERT_UINT32_WITHIN(5, 1, -1);
1189     VERIFY_FAILS_END
1190 }
1191 
testUINT32sNotWithinDeltaEvenThoughASignedIntWouldPassAndCustomMessage(void)1192 void testUINT32sNotWithinDeltaEvenThoughASignedIntWouldPassAndCustomMessage(void)
1193 {
1194     EXPECT_ABORT_BEGIN
1195     TEST_ASSERT_UINT32_WITHIN_MESSAGE(5, 1, -1, "Custom Message.");
1196     VERIFY_FAILS_END
1197 }
1198 
testUINT16sWithinDelta(void)1199 void testUINT16sWithinDelta(void)
1200 {
1201     TEST_ASSERT_UINT16_WITHIN(1, 5000, 5001);
1202     TEST_ASSERT_UINT16_WITHIN(5, 5000, 4996);
1203     TEST_ASSERT_UINT16_WITHIN(5, 5000, 5005);
1204 }
1205 
testUINT16sWithinDeltaAndCustomMessage(void)1206 void testUINT16sWithinDeltaAndCustomMessage(void)
1207 {
1208     TEST_ASSERT_UINT16_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
1209     TEST_ASSERT_UINT16_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
1210     TEST_ASSERT_UINT16_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
1211 }
1212 
testUINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void)1213 void testUINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void)
1214 {
1215     TEST_ASSERT_UINT16_WITHIN(5, 0x54321, 0x44321);
1216 }
1217 
testUINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void)1218 void testUINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void)
1219 {
1220     TEST_ASSERT_UINT16_WITHIN_MESSAGE(5, 0x54321, 0x44321, "Custom Message.");
1221 }
1222 
testUINT16sNotWithinDelta(void)1223 void testUINT16sNotWithinDelta(void)
1224 {
1225     EXPECT_ABORT_BEGIN
1226     TEST_ASSERT_UINT16_WITHIN(2, 65535, 0);
1227     VERIFY_FAILS_END
1228 }
1229 
testUINT16sNotWithinDeltaAndCustomMessage(void)1230 void testUINT16sNotWithinDeltaAndCustomMessage(void)
1231 {
1232     EXPECT_ABORT_BEGIN
1233     TEST_ASSERT_UINT16_WITHIN_MESSAGE(2, 65535, 0, "Custom Message.");
1234     VERIFY_FAILS_END
1235 }
1236 
testUINT8sWithinDelta(void)1237 void testUINT8sWithinDelta(void)
1238 {
1239     TEST_ASSERT_UINT8_WITHIN(1, 254, 255);
1240     TEST_ASSERT_UINT8_WITHIN(5, 251, 255);
1241     TEST_ASSERT_UINT8_WITHIN(5, 1, 4);
1242 }
1243 
testUINT8sWithinDeltaAndCustomMessage(void)1244 void testUINT8sWithinDeltaAndCustomMessage(void)
1245 {
1246     TEST_ASSERT_UINT8_WITHIN_MESSAGE(1, 254, 255, "Custom Message.");
1247     TEST_ASSERT_UINT8_WITHIN_MESSAGE(5, 251, 255, "Custom Message.");
1248     TEST_ASSERT_UINT8_WITHIN_MESSAGE(5, 1, 4, "Custom Message.");
1249 }
1250 
testUINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)1251 void testUINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)
1252 {
1253     TEST_ASSERT_UINT8_WITHIN(5, 0x123, 0xF23);
1254 }
1255 
testUINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void)1256 void testUINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void)
1257 {
1258     TEST_ASSERT_UINT8_WITHIN_MESSAGE(5, 0x123, 0xF23, "Custom Message.");
1259 }
1260 
testUINT8sNotWithinDelta(void)1261 void testUINT8sNotWithinDelta(void)
1262 {
1263     EXPECT_ABORT_BEGIN
1264     TEST_ASSERT_UINT8_WITHIN(2, 255, 0);
1265     VERIFY_FAILS_END
1266 }
1267 
testUINT8sNotWithinDeltaAndCustomMessage(void)1268 void testUINT8sNotWithinDeltaAndCustomMessage(void)
1269 {
1270     EXPECT_ABORT_BEGIN
1271     TEST_ASSERT_UINT8_WITHIN_MESSAGE(2, 255, 0, "Custom Message.");
1272     VERIFY_FAILS_END
1273 }
1274 
testINT32sWithinDelta(void)1275 void testINT32sWithinDelta(void)
1276 {
1277     TEST_ASSERT_INT32_WITHIN(1, 5000, 5001);
1278     TEST_ASSERT_INT32_WITHIN(5, 1, -2);
1279     TEST_ASSERT_INT32_WITHIN(5, -2, 1);
1280 }
1281 
testINT32sWithinDeltaAndCustomMessage(void)1282 void testINT32sWithinDeltaAndCustomMessage(void)
1283 {
1284     TEST_ASSERT_INT32_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
1285 }
1286 
testINT32sNotWithinDelta(void)1287 void testINT32sNotWithinDelta(void)
1288 {
1289     EXPECT_ABORT_BEGIN
1290     TEST_ASSERT_INT32_WITHIN(1, -3, 1);
1291     VERIFY_FAILS_END
1292 }
1293 
testINT32sNotWithinDeltaAndDifferenceOverflows(void)1294 void testINT32sNotWithinDeltaAndDifferenceOverflows(void)
1295 {
1296     EXPECT_ABORT_BEGIN
1297     TEST_ASSERT_INT32_WITHIN(1, -1, 0x7FFFFFFF);
1298     VERIFY_FAILS_END
1299 }
testINT32sNotWithinDeltaAndCustomMessage(void)1300 void testINT32sNotWithinDeltaAndCustomMessage(void)
1301 {
1302     EXPECT_ABORT_BEGIN
1303     TEST_ASSERT_INT32_WITHIN_MESSAGE(1, -2, 1, "Custom Message.");
1304     VERIFY_FAILS_END
1305 }
1306 
testINT16sWithinDelta(void)1307 void testINT16sWithinDelta(void)
1308 {
1309     TEST_ASSERT_INT16_WITHIN(1, 5000, 5001);
1310     TEST_ASSERT_INT16_WITHIN(5, 2, -2);
1311     TEST_ASSERT_INT16_WITHIN(5, -2, 2);
1312 }
1313 
testINT16sWithinDeltaAndCustomMessage(void)1314 void testINT16sWithinDeltaAndCustomMessage(void)
1315 {
1316     TEST_ASSERT_INT16_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
1317 }
1318 
testINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void)1319 void testINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void)
1320 {
1321     TEST_ASSERT_INT16_WITHIN(5, 0x54321, 0x44321);
1322 }
1323 
testINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void)1324 void testINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void)
1325 {
1326     TEST_ASSERT_INT16_WITHIN_MESSAGE(5, 0x54321, 0x44321, "Custom Message.");
1327 }
1328 
testINT16sNotWithinDelta(void)1329 void testINT16sNotWithinDelta(void)
1330 {
1331     EXPECT_ABORT_BEGIN
1332     TEST_ASSERT_INT16_WITHIN(2, 4, -2);
1333     VERIFY_FAILS_END
1334 }
1335 
testINT16sNotWithinDeltaAndCustomMessage(void)1336 void testINT16sNotWithinDeltaAndCustomMessage(void)
1337 {
1338     EXPECT_ABORT_BEGIN
1339     TEST_ASSERT_INT16_WITHIN_MESSAGE(2, 3, 0, "Custom Message.");
1340     VERIFY_FAILS_END
1341 }
1342 
testINT8sWithinDelta(void)1343 void testINT8sWithinDelta(void)
1344 {
1345     TEST_ASSERT_INT8_WITHIN(1, 127, 126);
1346     TEST_ASSERT_INT8_WITHIN(5, -2, 2);
1347     TEST_ASSERT_INT8_WITHIN(5, 2, -2);
1348 }
1349 
testINT8sWithinDeltaAndCustomMessage(void)1350 void testINT8sWithinDeltaAndCustomMessage(void)
1351 {
1352     TEST_ASSERT_INT8_WITHIN_MESSAGE(5, 1, 4, "Custom Message.");
1353 }
1354 
testINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)1355 void testINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)
1356 {
1357     TEST_ASSERT_INT8_WITHIN(5, 0x123, 0xF23);
1358 }
1359 
testINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void)1360 void testINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void)
1361 {
1362     TEST_ASSERT_INT8_WITHIN_MESSAGE(5, 0x123, 0xF23, "Custom Message.");
1363 }
1364 
testINT8sNotWithinDelta(void)1365 void testINT8sNotWithinDelta(void)
1366 {
1367     EXPECT_ABORT_BEGIN
1368     TEST_ASSERT_INT8_WITHIN(2, -3, 0);
1369     VERIFY_FAILS_END
1370 }
1371 
testINT8sNotWithinDeltaAndCustomMessage(void)1372 void testINT8sNotWithinDeltaAndCustomMessage(void)
1373 {
1374     EXPECT_ABORT_BEGIN
1375     TEST_ASSERT_INT8_WITHIN_MESSAGE(2, -4, 0, "Custom Message.");
1376     VERIFY_FAILS_END
1377 }
1378 
testCHARsWithinDelta(void)1379 void testCHARsWithinDelta(void)
1380 {
1381     TEST_ASSERT_CHAR_WITHIN(1, 'M', 'L');
1382     TEST_ASSERT_CHAR_WITHIN(5, -2, 2);
1383     TEST_ASSERT_CHAR_WITHIN(5, 2, -2);
1384 }
1385 
testCHARsWithinDeltaAndCustomMessage(void)1386 void testCHARsWithinDeltaAndCustomMessage(void)
1387 {
1388     TEST_ASSERT_CHAR_WITHIN_MESSAGE(5, 1, 4, "Custom Message.");
1389 }
1390 
testCHARsWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)1391 void testCHARsWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)
1392 {
1393     TEST_ASSERT_CHAR_WITHIN(5, 0x123, 0xF23);
1394 }
1395 
testCHARsWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void)1396 void testCHARsWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void)
1397 {
1398     TEST_ASSERT_CHAR_WITHIN_MESSAGE(5, 0x123, 0xF23, "Custom Message.");
1399 }
1400 
testCHARsNotWithinDelta(void)1401 void testCHARsNotWithinDelta(void)
1402 {
1403     EXPECT_ABORT_BEGIN
1404     TEST_ASSERT_CHAR_WITHIN(2, -3, 0);
1405     VERIFY_FAILS_END
1406 }
1407 
testCHARsNotWithinDeltaAndCustomMessage(void)1408 void testCHARsNotWithinDeltaAndCustomMessage(void)
1409 {
1410     EXPECT_ABORT_BEGIN
1411     TEST_ASSERT_CHAR_WITHIN_MESSAGE(2, -4, 0, "Custom Message.");
1412     VERIFY_FAILS_END
1413 }
1414 
1415 /*------------------------*/
1416 
testInt64ArrayWithinDelta(void)1417 void testInt64ArrayWithinDelta(void)
1418 {
1419 #ifndef UNITY_SUPPORT_64
1420     TEST_IGNORE();
1421 #else
1422     UNITY_INT64 expected[] = {12345000, -12344995, 12345005};
1423     UNITY_INT64 actualSmallDelta[] = {12345001, -12344996, 12345005};
1424     UNITY_INT64 actualBigDelta[] = {12345101, -12344896, 12345055};
1425 
1426     TEST_ASSERT_INT64_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
1427     TEST_ASSERT_INT64_ARRAY_WITHIN(110, expected, actualBigDelta, 3);
1428 #endif
1429 }
1430 
testInt64ArrayWithinDeltaAndMessage(void)1431 void testInt64ArrayWithinDeltaAndMessage(void)
1432 {
1433 #ifndef UNITY_SUPPORT_64
1434     TEST_IGNORE();
1435 #else
1436     UNITY_INT64 expected[] = {12345000, -12344995, 12345005};
1437     UNITY_INT64 actualSmallDelta[] = {12345001, -12344996, 12345005};
1438     UNITY_INT64 actualBigDelta[] = {12345101, -12344896, 12345055};
1439 
1440     TEST_ASSERT_INT64_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
1441     TEST_ASSERT_INT64_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 3, "Custom Message.");
1442 #endif
1443 }
1444 
tesUInt64ArrayNotWithinDelta(void)1445 void tesUInt64ArrayNotWithinDelta(void)
1446 {
1447 #ifndef UNITY_SUPPORT_64
1448     TEST_IGNORE();
1449 #else
1450     UNITY_INT64 expected[] = {12345000, -12344995, 12345005};
1451     UNITY_INT64 actualBigDelta[] = {12345101, -12344896, 12345055};
1452 
1453     EXPECT_ABORT_BEGIN
1454     TEST_ASSERT_UINT64_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
1455     VERIFY_FAILS_END
1456 #endif
1457 }
1458 
testInt64ArrayNotWithinDeltaAndMessage(void)1459 void testInt64ArrayNotWithinDeltaAndMessage(void)
1460 {
1461 #ifndef UNITY_SUPPORT_64
1462     TEST_IGNORE();
1463 #else
1464     UNITY_INT64 expected[] = {12345000, -12344995, 12345005};
1465     UNITY_INT64 actualBigDelta[] = {12345101, -12344896, 12345055};
1466 
1467     EXPECT_ABORT_BEGIN
1468     TEST_ASSERT_INT64_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
1469     VERIFY_FAILS_END
1470 #endif
1471 }
1472 
testInt64ArrayWithinDeltaPointless(void)1473 void testInt64ArrayWithinDeltaPointless(void)
1474 {
1475 #ifndef UNITY_SUPPORT_64
1476     TEST_IGNORE();
1477 #else
1478     UNITY_INT64 expected[] = {12345000, -12344995, 12345005};
1479     UNITY_INT64 actualBigDelta[] = {12345101, -12344896, 12345055};
1480 
1481     EXPECT_ABORT_BEGIN
1482     TEST_ASSERT_INT64_ARRAY_WITHIN(110, expected, actualBigDelta, 0);
1483     VERIFY_FAILS_END
1484 #endif
1485 }
1486 
testInt64ArrayWithinDeltaPointlessAndMessage(void)1487 void testInt64ArrayWithinDeltaPointlessAndMessage(void)
1488 {
1489 #ifndef UNITY_SUPPORT_64
1490     TEST_IGNORE();
1491 #else
1492     UNITY_INT64 expected[] = {12345000, -12344995, 12345005};
1493     UNITY_INT64 actualBigDelta[] = {12345101, -12344896, 12345055};
1494 
1495     EXPECT_ABORT_BEGIN
1496     TEST_ASSERT_INT64_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 0, "Custom Message.");
1497     VERIFY_FAILS_END
1498 #endif
1499 }
1500 
testInt64ArrayWithinDeltaExpectedNull(void)1501 void testInt64ArrayWithinDeltaExpectedNull(void)
1502 {
1503 #ifndef UNITY_SUPPORT_64
1504     TEST_IGNORE();
1505 #else
1506     UNITY_INT64 actualBigDelta[] = {12345101, -12344896, 12345055};
1507 
1508     EXPECT_ABORT_BEGIN
1509     TEST_ASSERT_INT64_ARRAY_WITHIN(110, NULL, actualBigDelta, 3);
1510     VERIFY_FAILS_END
1511 #endif
1512 }
1513 
testInt64ArrayWithinDeltaExpectedNullAndMessage(void)1514 void testInt64ArrayWithinDeltaExpectedNullAndMessage(void)
1515 {
1516 #ifndef UNITY_SUPPORT_64
1517     TEST_IGNORE();
1518 #else
1519     UNITY_INT64 actualBigDelta[] = {12345101, -12344896, 12345055};
1520 
1521     EXPECT_ABORT_BEGIN
1522     TEST_ASSERT_INT64_ARRAY_WITHIN_MESSAGE(110, NULL, actualBigDelta, 3, "Custom Message.");
1523     VERIFY_FAILS_END
1524 #endif
1525 }
1526 
testInt64ArrayWithinDeltaActualNull(void)1527 void testInt64ArrayWithinDeltaActualNull(void)
1528 {
1529 #ifndef UNITY_SUPPORT_64
1530     TEST_IGNORE();
1531 #else
1532     UNITY_INT64 expected[] = {12345000, -12344995, 12345005};
1533 
1534     EXPECT_ABORT_BEGIN
1535     TEST_ASSERT_INT64_ARRAY_WITHIN(110, expected, NULL, 3);
1536     VERIFY_FAILS_END
1537 #endif
1538 }
1539 
testInt64ArrayWithinDeltaActualNullAndMessage(void)1540 void testInt64ArrayWithinDeltaActualNullAndMessage(void)
1541 {
1542 #ifndef UNITY_SUPPORT_64
1543     TEST_IGNORE();
1544 #else
1545     UNITY_INT64 expected[] = {12345000, -12344995, 12345005};
1546 
1547     EXPECT_ABORT_BEGIN
1548     TEST_ASSERT_INT64_ARRAY_WITHIN_MESSAGE(110, expected, NULL, 3, "Custom Message.");
1549     VERIFY_FAILS_END
1550 #endif
1551 }
1552 
testInt64ArrayWithinDeltaSamePointer(void)1553 void testInt64ArrayWithinDeltaSamePointer(void)
1554 {
1555 #ifndef UNITY_SUPPORT_64
1556     TEST_IGNORE();
1557 #else
1558     UNITY_INT64 expected[] = {12345000, -12344995, 12345005};
1559 
1560     TEST_ASSERT_UINT64_ARRAY_WITHIN(110, expected, expected, 3);
1561 #endif
1562 }
1563 
testInt64ArrayWithinDeltaSamePointerAndMessage(void)1564 void testInt64ArrayWithinDeltaSamePointerAndMessage(void)
1565 {
1566 #ifndef UNITY_SUPPORT_64
1567     TEST_IGNORE();
1568 #else
1569     UNITY_INT64 expected[] = {12345000, -12344995, 12345005};
1570 
1571     TEST_ASSERT_INT64_ARRAY_WITHIN_MESSAGE(110, expected, expected, 3, "Custom Message.");
1572 #endif
1573 }
1574 
testIntArrayWithinDelta(void)1575 void testIntArrayWithinDelta(void)
1576 {
1577     UNITY_INT expected[] = {5000, -4995, 5005};
1578     UNITY_INT actualSmallDelta[] = {5001, -4996, 5005};
1579     UNITY_INT actualBigDelta[] = {5101, -4896, 5055};
1580 
1581     TEST_ASSERT_INT_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
1582     TEST_ASSERT_INT_ARRAY_WITHIN(110, expected, actualBigDelta, 3);
1583 }
1584 
testIntArrayWithinDeltaAndMessage(void)1585 void testIntArrayWithinDeltaAndMessage(void)
1586 {
1587     UNITY_INT expected[] = {5000, -4995, 5005};
1588     UNITY_INT actualSmallDelta[] = {5001, -4996, 5005};
1589     UNITY_INT actualBigDelta[] = {5101, -4896, 5055};
1590 
1591     TEST_ASSERT_INT_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
1592     TEST_ASSERT_INT_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 3, "Custom Message.");
1593 }
1594 
testIntArrayNotWithinDelta(void)1595 void testIntArrayNotWithinDelta(void)
1596 {
1597     UNITY_INT expected[] = {5000, -4995, 5005};
1598     UNITY_INT actualBigDelta[] = {5101, -4896, 5055};
1599 
1600     EXPECT_ABORT_BEGIN
1601     TEST_ASSERT_INT_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
1602     VERIFY_FAILS_END
1603 }
1604 
testIntArrayNotWithinDeltaAndMessage(void)1605 void testIntArrayNotWithinDeltaAndMessage(void)
1606 {
1607     UNITY_INT expected[] = {5000, -4995, 5005};
1608     UNITY_INT actualBigDelta[] = {5101, -4896, 5055};
1609 
1610     EXPECT_ABORT_BEGIN
1611     TEST_ASSERT_INT_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
1612     VERIFY_FAILS_END
1613 }
1614 
testIntArrayWithinDeltaPointless(void)1615 void testIntArrayWithinDeltaPointless(void)
1616 {
1617     UNITY_INT expected[] = {5000, -4995, 5005};
1618     UNITY_INT actualBigDelta[] = {5101, -4896, 5055};
1619 
1620     EXPECT_ABORT_BEGIN
1621     TEST_ASSERT_INT_ARRAY_WITHIN(110, expected, actualBigDelta, 0);
1622     VERIFY_FAILS_END
1623 }
1624 
testIntArrayWithinDeltaPointlessAndMessage(void)1625 void testIntArrayWithinDeltaPointlessAndMessage(void)
1626 {
1627     UNITY_INT expected[] = {5000, -4995, 5005};
1628     UNITY_INT actualBigDelta[] = {5101, -4896, 5055};
1629 
1630     EXPECT_ABORT_BEGIN
1631     TEST_ASSERT_INT_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 0, "Custom Message.");
1632     VERIFY_FAILS_END
1633 }
1634 
testIntArrayWithinDeltaExpectedNull(void)1635 void testIntArrayWithinDeltaExpectedNull(void)
1636 {
1637     UNITY_INT actualBigDelta[] = {5101, -4896, 5055};
1638 
1639     EXPECT_ABORT_BEGIN
1640     TEST_ASSERT_INT_ARRAY_WITHIN(110, NULL, actualBigDelta, 3);
1641     VERIFY_FAILS_END
1642 }
1643 
testIntArrayWithinDeltaExpectedNullAndMessage(void)1644 void testIntArrayWithinDeltaExpectedNullAndMessage(void)
1645 {
1646     UNITY_INT actualBigDelta[] = {5101, -4896, 5055};
1647 
1648     EXPECT_ABORT_BEGIN
1649     TEST_ASSERT_INT_ARRAY_WITHIN_MESSAGE(110, NULL, actualBigDelta, 3, "Custom Message.");
1650     VERIFY_FAILS_END
1651 }
1652 
testIntArrayWithinDeltaActualNull(void)1653 void testIntArrayWithinDeltaActualNull(void)
1654 {
1655     UNITY_INT expected[] = {5000, -4995, 5005};
1656 
1657     EXPECT_ABORT_BEGIN
1658     TEST_ASSERT_INT_ARRAY_WITHIN(110, expected, NULL, 3);
1659     VERIFY_FAILS_END
1660 }
1661 
testIntArrayWithinDeltaActualNullAndMessage(void)1662 void testIntArrayWithinDeltaActualNullAndMessage(void)
1663 {
1664     UNITY_INT expected[] = {5000, -4995, 5005};
1665 
1666     EXPECT_ABORT_BEGIN
1667     TEST_ASSERT_INT_ARRAY_WITHIN_MESSAGE(110, expected, NULL, 3, "Custom Message.");
1668     VERIFY_FAILS_END
1669 }
1670 
testIntArrayWithinDeltaSamePointer(void)1671 void testIntArrayWithinDeltaSamePointer(void)
1672 {
1673     UNITY_INT expected[] = {5000, -4995, 5005};
1674 
1675     TEST_ASSERT_INT_ARRAY_WITHIN(110, expected, expected, 3);
1676 }
1677 
testIntArrayWithinDeltaSamePointerAndMessage(void)1678 void testIntArrayWithinDeltaSamePointerAndMessage(void)
1679 {
1680     UNITY_INT expected[] = {5000, -4995, 5005};
1681 
1682     TEST_ASSERT_INT_ARRAY_WITHIN_MESSAGE(110, expected, expected, 3, "Custom Message.");
1683 }
1684 
testInt16ArrayWithinDelta(void)1685 void testInt16ArrayWithinDelta(void)
1686 {
1687     UNITY_INT16 expected[] = {5000, -4995, 5005};
1688     UNITY_INT16 actualSmallDelta[] = {5001, -4996, 5005};
1689     UNITY_INT16 actualBigDelta[] = {5101, -4896, 5055};
1690 
1691     TEST_ASSERT_INT16_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
1692     TEST_ASSERT_INT16_ARRAY_WITHIN(110, expected, actualBigDelta, 3);
1693 }
1694 
testInt16ArrayWithinDeltaAndMessage(void)1695 void testInt16ArrayWithinDeltaAndMessage(void)
1696 {
1697     UNITY_INT16 expected[] = {5000, -4995, 5005};
1698     UNITY_INT16 actualSmallDelta[] = {5001, -4996, 5005};
1699     UNITY_INT16 actualBigDelta[] = {5101, -4896, 5055};
1700 
1701     TEST_ASSERT_INT16_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
1702     TEST_ASSERT_INT16_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 3, "Custom Message.");
1703 }
1704 
testInt16ArrayNotWithinDelta(void)1705 void testInt16ArrayNotWithinDelta(void)
1706 {
1707     UNITY_INT16 expected[] = {5000, -4995, 5005};
1708     UNITY_INT16 actualBigDelta[] = {5101, -4896, 5055};
1709 
1710     EXPECT_ABORT_BEGIN
1711     TEST_ASSERT_UINT16_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
1712     VERIFY_FAILS_END
1713 }
1714 
testInt16ArrayNotWithinDeltaAndMessage(void)1715 void testInt16ArrayNotWithinDeltaAndMessage(void)
1716 {
1717     UNITY_INT16 expected[] = {5000, -4995, 5005};
1718     UNITY_INT16 actualBigDelta[] = {5101, -4896, 5055};
1719 
1720     EXPECT_ABORT_BEGIN
1721     TEST_ASSERT_INT16_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
1722     VERIFY_FAILS_END
1723 }
1724 
testInt16ArrayWithinDeltaPointless(void)1725 void testInt16ArrayWithinDeltaPointless(void)
1726 {
1727     UNITY_INT16 expected[] = {5000, -4995, 5005};
1728     UNITY_INT16 actualBigDelta[] = {5101, -4896, 5055};
1729 
1730     EXPECT_ABORT_BEGIN
1731     TEST_ASSERT_INT16_ARRAY_WITHIN(110, expected, actualBigDelta, 0);
1732     VERIFY_FAILS_END
1733 }
1734 
testInt16ArrayWithinDeltaPointlessAndMessage(void)1735 void testInt16ArrayWithinDeltaPointlessAndMessage(void)
1736 {
1737     UNITY_INT16 expected[] = {5000, -4995, 5005};
1738     UNITY_INT16 actualBigDelta[] = {5101, -4896, 5055};
1739 
1740     EXPECT_ABORT_BEGIN
1741     TEST_ASSERT_INT16_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 0, "Custom Message.");
1742     VERIFY_FAILS_END
1743 }
1744 
testInt16ArrayWithinDeltaExpectedNull(void)1745 void testInt16ArrayWithinDeltaExpectedNull(void)
1746 {
1747     UNITY_INT16 actualBigDelta[] = {5101, -4896, 5055};
1748 
1749     EXPECT_ABORT_BEGIN
1750     TEST_ASSERT_INT16_ARRAY_WITHIN(110, NULL, actualBigDelta, 3);
1751     VERIFY_FAILS_END
1752 }
1753 
testInt16ArrayWithinDeltaExpectedNullAndMessage(void)1754 void testInt16ArrayWithinDeltaExpectedNullAndMessage(void)
1755 {
1756     UNITY_INT16 actualBigDelta[] = {5101, -4896, 5055};
1757 
1758     EXPECT_ABORT_BEGIN
1759     TEST_ASSERT_INT16_ARRAY_WITHIN_MESSAGE(110, NULL, actualBigDelta, 3, "Custom Message.");
1760     VERIFY_FAILS_END
1761 }
1762 
testInt16ArrayWithinDeltaActualNull(void)1763 void testInt16ArrayWithinDeltaActualNull(void)
1764 {
1765     UNITY_INT16 expected[] = {5000, -4995, 5005};
1766 
1767     EXPECT_ABORT_BEGIN
1768     TEST_ASSERT_INT16_ARRAY_WITHIN(110, expected, NULL, 3);
1769     VERIFY_FAILS_END
1770 }
1771 
testInt16ArrayWithinDeltaActualNullAndMessage(void)1772 void testInt16ArrayWithinDeltaActualNullAndMessage(void)
1773 {
1774     UNITY_INT16 expected[] = {5000, -4995, 5005};
1775 
1776     EXPECT_ABORT_BEGIN
1777     TEST_ASSERT_INT16_ARRAY_WITHIN_MESSAGE(110, expected, NULL, 3, "Custom Message.");
1778     VERIFY_FAILS_END
1779 }
1780 
testInt16ArrayWithinDeltaSamePointer(void)1781 void testInt16ArrayWithinDeltaSamePointer(void)
1782 {
1783     UNITY_INT16 expected[] = {5000, -4995, 5005};
1784 
1785     TEST_ASSERT_INT16_ARRAY_WITHIN(110, expected, expected, 3);
1786 }
1787 
testInt16ArrayWithinDeltaSamePointerAndMessage(void)1788 void testInt16ArrayWithinDeltaSamePointerAndMessage(void)
1789 {
1790     UNITY_INT16 expected[] = {5000, -4995, 5005};
1791 
1792     TEST_ASSERT_INT16_ARRAY_WITHIN_MESSAGE(110, expected, expected, 3, "Custom Message.");
1793 }
1794 
testInt8ArrayWithinDelta(void)1795 void testInt8ArrayWithinDelta(void)
1796 {
1797     UNITY_INT8 expected[] = {20, -95, 55};
1798     UNITY_INT8 actualSmallDelta[] = {21, -94, 55};
1799     UNITY_INT8 actualBigDelta[] = {11, -86, 45};
1800 
1801     TEST_ASSERT_INT8_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
1802     TEST_ASSERT_INT8_ARRAY_WITHIN(11, expected, actualBigDelta, 3);
1803 }
1804 
testInt8ArrayWithinDeltaAndMessage(void)1805 void testInt8ArrayWithinDeltaAndMessage(void)
1806 {
1807     UNITY_INT8 expected[] = {20, -95, 55};
1808     UNITY_INT8 actualSmallDelta[] = {21, -94, 55};
1809     UNITY_INT8 actualBigDelta[] = {11, -86, 45};
1810 
1811     TEST_ASSERT_INT8_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
1812     TEST_ASSERT_INT8_ARRAY_WITHIN_MESSAGE(11, expected, actualBigDelta, 3, "Custom Message.");
1813 }
1814 
testInt8ArrayNotWithinDelta(void)1815 void testInt8ArrayNotWithinDelta(void)
1816 {
1817     UNITY_INT8 expected[] = {20, -95, 55};
1818     UNITY_INT8 actualBigDelta[] = {11, -86, 45};
1819 
1820     EXPECT_ABORT_BEGIN
1821     TEST_ASSERT_INT8_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
1822     VERIFY_FAILS_END
1823 }
1824 
testInt8ArrayNotWithinDeltaAndMessage(void)1825 void testInt8ArrayNotWithinDeltaAndMessage(void)
1826 {
1827     UNITY_INT8 expected[] = {20, -95, 55};
1828     UNITY_INT8 actualBigDelta[] = {11, -86, 45};
1829 
1830     EXPECT_ABORT_BEGIN
1831     TEST_ASSERT_INT8_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
1832     VERIFY_FAILS_END
1833 }
1834 
testInt8ArrayWithinDeltaPointless(void)1835 void testInt8ArrayWithinDeltaPointless(void)
1836 {
1837     UNITY_INT8 expected[] = {20, -95, 55};
1838     UNITY_INT8 actualBigDelta[] = {11, -86, 45};
1839 
1840     EXPECT_ABORT_BEGIN
1841     TEST_ASSERT_INT8_ARRAY_WITHIN(11, expected, actualBigDelta, 0);
1842     VERIFY_FAILS_END
1843 }
1844 
testInt8ArrayWithinDeltaPointlessAndMessage(void)1845 void testInt8ArrayWithinDeltaPointlessAndMessage(void)
1846 {
1847     UNITY_INT8 expected[] = {20, -95, 55};
1848     UNITY_INT8 actualBigDelta[] = {11, -86, 45};
1849 
1850     EXPECT_ABORT_BEGIN
1851     TEST_ASSERT_INT8_ARRAY_WITHIN_MESSAGE(11, expected, actualBigDelta, 0, "Custom Message.");
1852     VERIFY_FAILS_END
1853 }
1854 
testInt8ArrayWithinDeltaExpectedNull(void)1855 void testInt8ArrayWithinDeltaExpectedNull(void)
1856 {
1857     UNITY_INT8 actualBigDelta[] = {11, -86, 45};
1858 
1859     EXPECT_ABORT_BEGIN
1860     TEST_ASSERT_INT8_ARRAY_WITHIN(11, NULL, actualBigDelta, 3);
1861     VERIFY_FAILS_END
1862 }
1863 
testInt8ArrayWithinDeltaExpectedNullAndMessage(void)1864 void testInt8ArrayWithinDeltaExpectedNullAndMessage(void)
1865 {
1866     UNITY_INT8 actualBigDelta[] = {11, -86, 45};
1867 
1868     EXPECT_ABORT_BEGIN
1869     TEST_ASSERT_INT8_ARRAY_WITHIN_MESSAGE(11, NULL, actualBigDelta, 3, "Custom Message.");
1870     VERIFY_FAILS_END
1871 }
1872 
testInt8ArrayWithinDeltaActualNull(void)1873 void testInt8ArrayWithinDeltaActualNull(void)
1874 {
1875     UNITY_INT8 expected[] = {20, -95, 55};
1876 
1877     EXPECT_ABORT_BEGIN
1878     TEST_ASSERT_INT8_ARRAY_WITHIN(11, expected, NULL, 3);
1879     VERIFY_FAILS_END
1880 }
1881 
testInt8ArrayWithinDeltaActualNullAndMessage(void)1882 void testInt8ArrayWithinDeltaActualNullAndMessage(void)
1883 {
1884     UNITY_INT8 expected[] = {20, -95, 55};
1885 
1886     EXPECT_ABORT_BEGIN
1887     TEST_ASSERT_INT8_ARRAY_WITHIN_MESSAGE(11, expected, NULL, 3, "Custom Message.");
1888     VERIFY_FAILS_END
1889 }
1890 
testInt8ArrayWithinDeltaSamePointer(void)1891 void testInt8ArrayWithinDeltaSamePointer(void)
1892 {
1893     UNITY_INT8 expected[] = {20, -95, 55};
1894 
1895     TEST_ASSERT_INT8_ARRAY_WITHIN(11, expected, expected, 3);
1896 }
1897 
testInt8ArrayWithinDeltaSamePointerAndMessage(void)1898 void testInt8ArrayWithinDeltaSamePointerAndMessage(void)
1899 {
1900     UNITY_INT8 expected[] = {20, -95, 55};
1901 
1902     TEST_ASSERT_INT8_ARRAY_WITHIN_MESSAGE(11, expected, expected, 3, "Custom Message.");
1903 }
1904 
1905 
1906 
1907 
1908 
testCHARArrayWithinDelta(void)1909 void testCHARArrayWithinDelta(void)
1910 {
1911     char expected[] = {20, -95, 55};
1912     char actualSmallDelta[] = {21, -94, 55};
1913     char actualBigDelta[] = {11, -86, 45};
1914 
1915     TEST_ASSERT_CHAR_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
1916     TEST_ASSERT_CHAR_ARRAY_WITHIN(11, expected, actualBigDelta, 3);
1917 }
1918 
testCHARArrayWithinDeltaAndMessage(void)1919 void testCHARArrayWithinDeltaAndMessage(void)
1920 {
1921     char expected[] = {20, -95, 55};
1922     char actualSmallDelta[] = {21, -94, 55};
1923     char actualBigDelta[] = {11, -86, 45};
1924 
1925     TEST_ASSERT_CHAR_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
1926     TEST_ASSERT_CHAR_ARRAY_WITHIN_MESSAGE(11, expected, actualBigDelta, 3, "Custom Message.");
1927 }
1928 
testCHARArrayNotWithinDelta(void)1929 void testCHARArrayNotWithinDelta(void)
1930 {
1931     char expected[] = {20, -95, 55};
1932     char actualBigDelta[] = {11, -86, 45};
1933 
1934     EXPECT_ABORT_BEGIN
1935     TEST_ASSERT_CHAR_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
1936     VERIFY_FAILS_END
1937 }
1938 
testCHARArrayNotWithinDeltaAndMessage(void)1939 void testCHARArrayNotWithinDeltaAndMessage(void)
1940 {
1941     char expected[] = {20, -95, 55};
1942     char actualBigDelta[] = {11, -86, 45};
1943 
1944     EXPECT_ABORT_BEGIN
1945     TEST_ASSERT_CHAR_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
1946     VERIFY_FAILS_END
1947 }
1948 
testCHARArrayWithinDeltaPointless(void)1949 void testCHARArrayWithinDeltaPointless(void)
1950 {
1951     char expected[] = {20, -95, 55};
1952     char actualBigDelta[] = {11, -86, 45};
1953 
1954     EXPECT_ABORT_BEGIN
1955     TEST_ASSERT_CHAR_ARRAY_WITHIN(11, expected, actualBigDelta, 0);
1956     VERIFY_FAILS_END
1957 }
1958 
testCHARArrayWithinDeltaPointlessAndMessage(void)1959 void testCHARArrayWithinDeltaPointlessAndMessage(void)
1960 {
1961     char expected[] = {20, -95, 55};
1962     char actualBigDelta[] = {11, -86, 45};
1963 
1964     EXPECT_ABORT_BEGIN
1965     TEST_ASSERT_CHAR_ARRAY_WITHIN_MESSAGE(11, expected, actualBigDelta, 0, "Custom Message.");
1966     VERIFY_FAILS_END
1967 }
1968 
testCHARArrayWithinDeltaExpectedNull(void)1969 void testCHARArrayWithinDeltaExpectedNull(void)
1970 {
1971     char actualBigDelta[] = {11, -86, 45};
1972 
1973     EXPECT_ABORT_BEGIN
1974     TEST_ASSERT_CHAR_ARRAY_WITHIN(11, NULL, actualBigDelta, 3);
1975     VERIFY_FAILS_END
1976 }
1977 
testCHARArrayWithinDeltaExpectedNullAndMessage(void)1978 void testCHARArrayWithinDeltaExpectedNullAndMessage(void)
1979 {
1980     char actualBigDelta[] = {11, -86, 45};
1981 
1982     EXPECT_ABORT_BEGIN
1983     TEST_ASSERT_CHAR_ARRAY_WITHIN_MESSAGE(11, NULL, actualBigDelta, 3, "Custom Message.");
1984     VERIFY_FAILS_END
1985 }
1986 
testCHARArrayWithinDeltaActualNull(void)1987 void testCHARArrayWithinDeltaActualNull(void)
1988 {
1989     char expected[] = {20, -95, 55};
1990 
1991     EXPECT_ABORT_BEGIN
1992     TEST_ASSERT_CHAR_ARRAY_WITHIN(11, expected, NULL, 3);
1993     VERIFY_FAILS_END
1994 }
1995 
testCHARArrayWithinDeltaActualNullAndMessage(void)1996 void testCHARArrayWithinDeltaActualNullAndMessage(void)
1997 {
1998     char expected[] = {20, -95, 55};
1999 
2000     EXPECT_ABORT_BEGIN
2001     TEST_ASSERT_CHAR_ARRAY_WITHIN_MESSAGE(11, expected, NULL, 3, "Custom Message.");
2002     VERIFY_FAILS_END
2003 }
2004 
testCHARArrayWithinDeltaSamePointer(void)2005 void testCHARArrayWithinDeltaSamePointer(void)
2006 {
2007     char expected[] = {20, -95, 55};
2008 
2009     TEST_ASSERT_CHAR_ARRAY_WITHIN(11, expected, expected, 3);
2010 }
2011 
testCHARArrayWithinDeltaSamePointerAndMessage(void)2012 void testCHARArrayWithinDeltaSamePointerAndMessage(void)
2013 {
2014     char expected[] = {20, -95, 55};
2015 
2016     TEST_ASSERT_CHAR_ARRAY_WITHIN_MESSAGE(11, expected, expected, 3, "Custom Message.");
2017 }
2018 
testUInt64ArrayWithinDelta(void)2019 void testUInt64ArrayWithinDelta(void)
2020 {
2021 #ifndef UNITY_SUPPORT_64
2022     TEST_IGNORE();
2023 #else
2024     UNITY_UINT64 expected[] = {12345000, 12344995, 12345005};
2025     UNITY_UINT64 actualSmallDelta[] = {12345001, 12344996, 12345005};
2026     UNITY_UINT64 actualBigDelta[] = {12345101, 12344896, 12345055};
2027 
2028     TEST_ASSERT_UINT64_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
2029     TEST_ASSERT_UINT64_ARRAY_WITHIN(110, expected, actualBigDelta, 3);
2030 #endif
2031 }
2032 
testUInt64ArrayWithinDeltaAndMessage(void)2033 void testUInt64ArrayWithinDeltaAndMessage(void)
2034 {
2035 #ifndef UNITY_SUPPORT_64
2036     TEST_IGNORE();
2037 #else
2038     UNITY_UINT64 expected[] = {12345000, 12344995, 12345005};
2039     UNITY_UINT64 actualSmallDelta[] = {12345001, 12344996, 12345005};
2040     UNITY_UINT64 actualBigDelta[] = {12345101, 12344896, 12345055};
2041 
2042     TEST_ASSERT_UINT64_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
2043     TEST_ASSERT_UINT64_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 3, "Custom Message.");
2044 #endif
2045 }
2046 
testUInt64ArrayNotWithinDelta(void)2047 void testUInt64ArrayNotWithinDelta(void)
2048 {
2049 #ifndef UNITY_SUPPORT_64
2050     TEST_IGNORE();
2051 #else
2052     UNITY_UINT64 expected[] = {12345000, 12344995, 12345005};
2053     UNITY_UINT64 actualBigDelta[] = {12345101, 12344896, 12345055};
2054 
2055     EXPECT_ABORT_BEGIN
2056     TEST_ASSERT_UINT64_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
2057     VERIFY_FAILS_END
2058 #endif
2059 }
2060 
testUInt64ArrayNotWithinDeltaAndMessage(void)2061 void testUInt64ArrayNotWithinDeltaAndMessage(void)
2062 {
2063 #ifndef UNITY_SUPPORT_64
2064     TEST_IGNORE();
2065 #else
2066     UNITY_UINT64 expected[] = {12345000, 12344995, 12345005};
2067     UNITY_UINT64 actualBigDelta[] = {12345101, 12344896, 12345055};
2068 
2069     EXPECT_ABORT_BEGIN
2070     TEST_ASSERT_UINT64_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
2071     VERIFY_FAILS_END
2072 #endif
2073 }
2074 
testUInt64ArrayWithinDeltaPointless(void)2075 void testUInt64ArrayWithinDeltaPointless(void)
2076 {
2077 #ifndef UNITY_SUPPORT_64
2078     TEST_IGNORE();
2079 #else
2080     UNITY_UINT64 expected[] = {12345000, 12344995, 12345005};
2081     UNITY_UINT64 actualBigDelta[] = {12345101, 12344896, 12345055};
2082 
2083     EXPECT_ABORT_BEGIN
2084     TEST_ASSERT_UINT64_ARRAY_WITHIN(110, expected, actualBigDelta, 0);
2085     VERIFY_FAILS_END
2086 #endif
2087 }
2088 
testUInt64ArrayWithinDeltaPointlessAndMessage(void)2089 void testUInt64ArrayWithinDeltaPointlessAndMessage(void)
2090 {
2091 #ifndef UNITY_SUPPORT_64
2092     TEST_IGNORE();
2093 #else
2094     UNITY_UINT64 expected[] = {12345000, 12344995, 12345005};
2095     UNITY_UINT64 actualBigDelta[] = {12345101, 12344896, 12345055};
2096 
2097     EXPECT_ABORT_BEGIN
2098     TEST_ASSERT_UINT64_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 0, "Custom Message.");
2099     VERIFY_FAILS_END
2100 #endif
2101 }
2102 
testUInt64ArrayWithinDeltaExpectedNull(void)2103 void testUInt64ArrayWithinDeltaExpectedNull(void)
2104 {
2105 #ifndef UNITY_SUPPORT_64
2106     TEST_IGNORE();
2107 #else
2108     UNITY_UINT64 actualBigDelta[] = {12345101, 12344896, 12345055};
2109 
2110     EXPECT_ABORT_BEGIN
2111     TEST_ASSERT_UINT64_ARRAY_WITHIN(110, NULL, actualBigDelta, 3);
2112     VERIFY_FAILS_END
2113 #endif
2114 }
2115 
testUInt64ArrayWithinDeltaExpectedNullAndMessage(void)2116 void testUInt64ArrayWithinDeltaExpectedNullAndMessage(void)
2117 {
2118 #ifndef UNITY_SUPPORT_64
2119     TEST_IGNORE();
2120 #else
2121     UNITY_UINT64 actualBigDelta[] = {12345101, 12344896, 12345055};
2122 
2123     EXPECT_ABORT_BEGIN
2124     TEST_ASSERT_UINT64_ARRAY_WITHIN_MESSAGE(110, NULL, actualBigDelta, 3, "Custom Message.");
2125     VERIFY_FAILS_END
2126 #endif
2127 }
2128 
testUInt64ArrayWithinDeltaActualNull(void)2129 void testUInt64ArrayWithinDeltaActualNull(void)
2130 {
2131 #ifndef UNITY_SUPPORT_64
2132     TEST_IGNORE();
2133 #else
2134     UNITY_UINT64 expected[] = {12345000, 12344995, 12345005};
2135 
2136     EXPECT_ABORT_BEGIN
2137     TEST_ASSERT_UINT64_ARRAY_WITHIN(110, expected, NULL, 3);
2138     VERIFY_FAILS_END
2139 #endif
2140 }
2141 
testUInt64ArrayWithinDeltaActualNullAndMessage(void)2142 void testUInt64ArrayWithinDeltaActualNullAndMessage(void)
2143 {
2144 #ifndef UNITY_SUPPORT_64
2145     TEST_IGNORE();
2146 #else
2147     UNITY_UINT64 expected[] = {12345000, 12344995, 12345005};
2148 
2149     EXPECT_ABORT_BEGIN
2150     TEST_ASSERT_UINT64_ARRAY_WITHIN_MESSAGE(110, expected, NULL, 3, "Custom Message.");
2151     VERIFY_FAILS_END
2152 #endif
2153 }
2154 
testUInt64ArrayWithinDeltaSamePointer(void)2155 void testUInt64ArrayWithinDeltaSamePointer(void)
2156 {
2157 #ifndef UNITY_SUPPORT_64
2158     TEST_IGNORE();
2159 #else
2160     UNITY_UINT64 expected[] = {12345000, 12344995, 12345005};
2161 
2162     TEST_ASSERT_UINT64_ARRAY_WITHIN(110, expected, expected, 3);
2163 #endif
2164 }
2165 
testUInt64ArrayWithinDeltaSamePointerAndMessage(void)2166 void testUInt64ArrayWithinDeltaSamePointerAndMessage(void)
2167 {
2168 #ifndef UNITY_SUPPORT_64
2169     TEST_IGNORE();
2170 #else
2171     UNITY_UINT64 expected[] = {12345000, 12344995, 12345005};
2172 
2173     TEST_ASSERT_UINT64_ARRAY_WITHIN_MESSAGE(110, expected, expected, 3, "Custom Message.");
2174 #endif
2175 }
2176 
testUIntArrayWithinDelta(void)2177 void testUIntArrayWithinDelta(void)
2178 {
2179     UNITY_UINT expected[] = {125000, 124995, 125005};
2180     UNITY_UINT actualSmallDelta[] = {125001, 124996, 125005};
2181     UNITY_UINT actualBigDelta[] = {125101, 124896, 125055};
2182 
2183     TEST_ASSERT_UINT_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
2184     TEST_ASSERT_UINT_ARRAY_WITHIN(110, expected, actualBigDelta, 3);
2185 }
2186 
testUIntArrayWithinDeltaAndMessage(void)2187 void testUIntArrayWithinDeltaAndMessage(void)
2188 {
2189     UNITY_UINT expected[] = {125000, 124995, 125005};
2190     UNITY_UINT actualSmallDelta[] = {125001, 124996, 125005};
2191     UNITY_UINT actualBigDelta[] = {125101, 124896, 125055};
2192 
2193     TEST_ASSERT_UINT_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
2194     TEST_ASSERT_UINT_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 3, "Custom Message.");
2195 }
2196 
testUIntArrayNotWithinDelta(void)2197 void testUIntArrayNotWithinDelta(void)
2198 {
2199     UNITY_UINT expected[] = {125000, 124995, 125005};
2200     UNITY_UINT actualBigDelta[] = {125101, 124896, 125055};
2201 
2202     EXPECT_ABORT_BEGIN
2203     TEST_ASSERT_UINT_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
2204     VERIFY_FAILS_END
2205 }
2206 
testUIntArrayNotWithinDeltaAndMessage(void)2207 void testUIntArrayNotWithinDeltaAndMessage(void)
2208 {
2209     UNITY_UINT expected[] = {125000, 124995, 125005};
2210     UNITY_UINT actualBigDelta[] = {125101, 124896, 125055};
2211 
2212     EXPECT_ABORT_BEGIN
2213     TEST_ASSERT_UINT_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
2214     VERIFY_FAILS_END
2215 }
2216 
testUIntArrayWithinDeltaPointless(void)2217 void testUIntArrayWithinDeltaPointless(void)
2218 {
2219     UNITY_UINT expected[] = {125000, 124995, 125005};
2220     UNITY_UINT actualBigDelta[] = {125101, 124896, 125055};
2221 
2222     EXPECT_ABORT_BEGIN
2223     TEST_ASSERT_UINT_ARRAY_WITHIN(110, expected, actualBigDelta, 0);
2224     VERIFY_FAILS_END
2225 }
2226 
testUIntArrayWithinDeltaPointlessAndMessage(void)2227 void testUIntArrayWithinDeltaPointlessAndMessage(void)
2228 {
2229     UNITY_UINT expected[] = {125000, 124995, 125005};
2230     UNITY_UINT actualBigDelta[] = {125101, 124896, 125055};
2231 
2232     EXPECT_ABORT_BEGIN
2233     TEST_ASSERT_UINT_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 0, "Custom Message.");
2234     VERIFY_FAILS_END
2235 }
2236 
testUIntArrayWithinDeltaExpectedNull(void)2237 void testUIntArrayWithinDeltaExpectedNull(void)
2238 {
2239     UNITY_UINT actualBigDelta[] = {125101, 124896, 125055};
2240 
2241     EXPECT_ABORT_BEGIN
2242     TEST_ASSERT_UINT_ARRAY_WITHIN(110, NULL, actualBigDelta, 3);
2243     VERIFY_FAILS_END
2244 }
2245 
testUIntArrayWithinDeltaExpectedNullAndMessage(void)2246 void testUIntArrayWithinDeltaExpectedNullAndMessage(void)
2247 {
2248     UNITY_UINT actualBigDelta[] = {125101, 124896, 125055};
2249 
2250     EXPECT_ABORT_BEGIN
2251     TEST_ASSERT_UINT_ARRAY_WITHIN_MESSAGE(110, NULL, actualBigDelta, 3, "Custom Message.");
2252     VERIFY_FAILS_END
2253 }
2254 
testUIntArrayWithinDeltaActualNull(void)2255 void testUIntArrayWithinDeltaActualNull(void)
2256 {
2257     UNITY_UINT expected[] = {125000, 124995, 125005};
2258 
2259     EXPECT_ABORT_BEGIN
2260     TEST_ASSERT_UINT_ARRAY_WITHIN(110, expected, NULL, 3);
2261     VERIFY_FAILS_END
2262 }
2263 
testUIntArrayWithinDeltaActualNullAndMessage(void)2264 void testUIntArrayWithinDeltaActualNullAndMessage(void)
2265 {
2266     UNITY_UINT expected[] = {125000, 124995, 125005};
2267 
2268     EXPECT_ABORT_BEGIN
2269     TEST_ASSERT_UINT_ARRAY_WITHIN_MESSAGE(110, expected, NULL, 3, "Custom Message.");
2270     VERIFY_FAILS_END
2271 }
2272 
testUIntArrayWithinDeltaSamePointer(void)2273 void testUIntArrayWithinDeltaSamePointer(void)
2274 {
2275     UNITY_UINT expected[] = {125000, 124995, 125005};
2276 
2277     TEST_ASSERT_UINT_ARRAY_WITHIN(110, expected, expected, 3);
2278 }
2279 
testUIntArrayWithinDeltaSamePointerAndMessage(void)2280 void testUIntArrayWithinDeltaSamePointerAndMessage(void)
2281 {
2282     UNITY_UINT expected[] = {125000, 124995, 125005};
2283 
2284     TEST_ASSERT_UINT_ARRAY_WITHIN_MESSAGE(110, expected, expected, 3, "Custom Message.");
2285 }
2286 
testUInt16ArrayWithinDelta(void)2287 void testUInt16ArrayWithinDelta(void)
2288 {
2289     UNITY_UINT16 expected[] = {5000, 4995, 5005};
2290     UNITY_UINT16 actualSmallDelta[] = {5001, 4996, 5005};
2291     UNITY_UINT16 actualBigDelta[] = {5101, 4896, 5055};
2292 
2293     TEST_ASSERT_UINT16_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
2294     TEST_ASSERT_UINT16_ARRAY_WITHIN(110, expected, actualBigDelta, 3);
2295 }
2296 
testUInt16ArrayWithinDeltaAndMessage(void)2297 void testUInt16ArrayWithinDeltaAndMessage(void)
2298 {
2299     UNITY_UINT16 expected[] = {5000, 4995, 5005};
2300     UNITY_UINT16 actualSmallDelta[] = {5001, 4996, 5005};
2301     UNITY_UINT16 actualBigDelta[] = {5101, 4896, 5055};
2302 
2303     TEST_ASSERT_UINT16_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
2304     TEST_ASSERT_UINT16_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 3, "Custom Message.");
2305 }
2306 
testUInt16ArrayNotWithinDelta(void)2307 void testUInt16ArrayNotWithinDelta(void)
2308 {
2309     UNITY_UINT16 expected[] = {5000, 4995, 5005};
2310     UNITY_UINT16 actualBigDelta[] = {5101, 4896, 5055};
2311 
2312     EXPECT_ABORT_BEGIN
2313     TEST_ASSERT_UINT16_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
2314     VERIFY_FAILS_END
2315 }
2316 
testUInt16ArrayNotWithinDeltaAndMessage(void)2317 void testUInt16ArrayNotWithinDeltaAndMessage(void)
2318 {
2319     UNITY_UINT16 expected[] = {5000, 4995, 5005};
2320     UNITY_UINT16 actualBigDelta[] = {5101, 4896, 5055};
2321 
2322     EXPECT_ABORT_BEGIN
2323     TEST_ASSERT_UINT16_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
2324     VERIFY_FAILS_END
2325 }
2326 
testUInt16ArrayWithinDeltaPointless(void)2327 void testUInt16ArrayWithinDeltaPointless(void)
2328 {
2329     UNITY_UINT16 expected[] = {5000, 4995, 5005};
2330     UNITY_UINT16 actualBigDelta[] = {5101, 4896, 5055};
2331 
2332     EXPECT_ABORT_BEGIN
2333     TEST_ASSERT_UINT16_ARRAY_WITHIN(110, expected, actualBigDelta, 0);
2334     VERIFY_FAILS_END
2335 }
2336 
testUInt16ArrayWithinDeltaPointlessAndMessage(void)2337 void testUInt16ArrayWithinDeltaPointlessAndMessage(void)
2338 {
2339     UNITY_UINT16 expected[] = {5000, 4995, 5005};
2340     UNITY_UINT16 actualBigDelta[] = {5101, 4896, 5055};
2341 
2342     EXPECT_ABORT_BEGIN
2343     TEST_ASSERT_UINT16_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 0, "Custom Message.");
2344     VERIFY_FAILS_END
2345 }
2346 
testUInt16ArrayWithinDeltaExpectedNull(void)2347 void testUInt16ArrayWithinDeltaExpectedNull(void)
2348 {
2349     UNITY_UINT16 actualBigDelta[] = {5101, 4896, 5055};
2350 
2351     EXPECT_ABORT_BEGIN
2352     TEST_ASSERT_UINT16_ARRAY_WITHIN(110, NULL, actualBigDelta, 3);
2353     VERIFY_FAILS_END
2354 }
2355 
testUInt16ArrayWithinDeltaExpectedNullAndMessage(void)2356 void testUInt16ArrayWithinDeltaExpectedNullAndMessage(void)
2357 {
2358     UNITY_UINT16 actualBigDelta[] = {5101, 4896, 5055};
2359 
2360     EXPECT_ABORT_BEGIN
2361     TEST_ASSERT_UINT16_ARRAY_WITHIN_MESSAGE(110, NULL, actualBigDelta, 3, "Custom Message.");
2362     VERIFY_FAILS_END
2363 }
2364 
testUInt16ArrayWithinDeltaActualNull(void)2365 void testUInt16ArrayWithinDeltaActualNull(void)
2366 {
2367     UNITY_UINT16 expected[] = {5000, 4995, 5005};
2368 
2369     EXPECT_ABORT_BEGIN
2370     TEST_ASSERT_UINT16_ARRAY_WITHIN(110, expected, NULL, 3);
2371     VERIFY_FAILS_END
2372 }
2373 
testUInt16ArrayWithinDeltaActualNullAndMessage(void)2374 void testUInt16ArrayWithinDeltaActualNullAndMessage(void)
2375 {
2376     UNITY_UINT16 expected[] = {5000, 4995, 5005};
2377 
2378     EXPECT_ABORT_BEGIN
2379     TEST_ASSERT_UINT16_ARRAY_WITHIN_MESSAGE(110, expected, NULL, 3, "Custom Message.");
2380     VERIFY_FAILS_END
2381 }
2382 
testUInt16ArrayWithinDeltaSamePointer(void)2383 void testUInt16ArrayWithinDeltaSamePointer(void)
2384 {
2385     UNITY_UINT16 expected[] = {5000, 4995, 5005};
2386 
2387     TEST_ASSERT_UINT16_ARRAY_WITHIN(110, expected, expected, 3);
2388 }
2389 
testUInt16ArrayWithinDeltaSamePointerAndMessage(void)2390 void testUInt16ArrayWithinDeltaSamePointerAndMessage(void)
2391 {
2392     UNITY_UINT16 expected[] = {5000, 4995, 5005};
2393 
2394     TEST_ASSERT_UINT16_ARRAY_WITHIN_MESSAGE(110, expected, expected, 3, "Custom Message.");
2395 }
2396 
testUInt8ArrayWithinDelta(void)2397 void testUInt8ArrayWithinDelta(void)
2398 {
2399     UNITY_UINT8 expected[] = {20, 95, 55};
2400     UNITY_UINT8 actualSmallDelta[] = {21, 94, 55};
2401     UNITY_UINT8 actualBigDelta[] = {11, 86, 45};
2402 
2403     TEST_ASSERT_UINT8_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
2404     TEST_ASSERT_UINT8_ARRAY_WITHIN(11, expected, actualBigDelta, 3);
2405 }
2406 
testUInt8ArrayWithinDeltaAndMessage(void)2407 void testUInt8ArrayWithinDeltaAndMessage(void)
2408 {
2409     UNITY_UINT8 expected[] = {20, 95, 55};
2410     UNITY_UINT8 actualSmallDelta[] = {21, 94, 55};
2411     UNITY_UINT8 actualBigDelta[] = {11, 86, 45};
2412 
2413     TEST_ASSERT_UINT8_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
2414     TEST_ASSERT_UINT8_ARRAY_WITHIN_MESSAGE(11, expected, actualBigDelta, 3, "Custom Message.");
2415 }
2416 
testUInt8ArrayNotWithinDelta(void)2417 void testUInt8ArrayNotWithinDelta(void)
2418 {
2419     UNITY_UINT8 expected[] = {20, 95, 55};
2420     UNITY_UINT8 actualBigDelta[] = {11, 86, 45};
2421 
2422     EXPECT_ABORT_BEGIN
2423     TEST_ASSERT_UINT8_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
2424     VERIFY_FAILS_END
2425 }
2426 
testUInt8ArrayNotWithinDeltaAndMessage(void)2427 void testUInt8ArrayNotWithinDeltaAndMessage(void)
2428 {
2429     UNITY_UINT8 expected[] = {20, 95, 55};
2430     UNITY_UINT8 actualBigDelta[] = {11, 86, 45};
2431 
2432     EXPECT_ABORT_BEGIN
2433     TEST_ASSERT_UINT8_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
2434     VERIFY_FAILS_END
2435 }
2436 
testUInt8ArrayWithinDeltaPointless(void)2437 void testUInt8ArrayWithinDeltaPointless(void)
2438 {
2439     UNITY_UINT8 expected[] = {20, 95, 55};
2440     UNITY_UINT8 actualBigDelta[] = {11, 86, 45};
2441 
2442     EXPECT_ABORT_BEGIN
2443     TEST_ASSERT_UINT8_ARRAY_WITHIN(11, expected, actualBigDelta, 0);
2444     VERIFY_FAILS_END
2445 }
2446 
testUInt8ArrayWithinDeltaPointlessAndMessage(void)2447 void testUInt8ArrayWithinDeltaPointlessAndMessage(void)
2448 {
2449     UNITY_UINT8 expected[] = {20, 95, 55};
2450     UNITY_UINT8 actualBigDelta[] = {11, 86, 45};
2451 
2452     EXPECT_ABORT_BEGIN
2453     TEST_ASSERT_UINT8_ARRAY_WITHIN_MESSAGE(11, expected, actualBigDelta, 0, "Custom Message.");
2454     VERIFY_FAILS_END
2455 }
2456 
testUInt8ArrayWithinDeltaExpectedNull(void)2457 void testUInt8ArrayWithinDeltaExpectedNull(void)
2458 {
2459     UNITY_UINT8 actualBigDelta[] = {11, 86, 45};
2460 
2461     EXPECT_ABORT_BEGIN
2462     TEST_ASSERT_UINT8_ARRAY_WITHIN(11, NULL, actualBigDelta, 3);
2463     VERIFY_FAILS_END
2464 }
2465 
testUInt8ArrayWithinDeltaExpectedNullAndMessage(void)2466 void testUInt8ArrayWithinDeltaExpectedNullAndMessage(void)
2467 {
2468     UNITY_UINT8 actualBigDelta[] = {11, 86, 45};
2469 
2470     EXPECT_ABORT_BEGIN
2471     TEST_ASSERT_UINT8_ARRAY_WITHIN_MESSAGE(11, NULL, actualBigDelta, 3, "Custom Message.");
2472     VERIFY_FAILS_END
2473 }
2474 
testUInt8ArrayWithinDeltaActualNull(void)2475 void testUInt8ArrayWithinDeltaActualNull(void)
2476 {
2477     UNITY_UINT8 expected[] = {20, 95, 55};
2478 
2479     EXPECT_ABORT_BEGIN
2480     TEST_ASSERT_UINT8_ARRAY_WITHIN(11, expected, NULL, 3);
2481     VERIFY_FAILS_END
2482 }
2483 
testUInt8ArrayWithinDeltaActualNullAndMessage(void)2484 void testUInt8ArrayWithinDeltaActualNullAndMessage(void)
2485 {
2486     UNITY_UINT8 expected[] = {20, 95, 55};
2487 
2488     EXPECT_ABORT_BEGIN
2489     TEST_ASSERT_UINT8_ARRAY_WITHIN_MESSAGE(11, expected, NULL, 3, "Custom Message.");
2490     VERIFY_FAILS_END
2491 }
2492 
testUInt8ArrayWithinDeltaSamePointer(void)2493 void testUInt8ArrayWithinDeltaSamePointer(void)
2494 {
2495     UNITY_UINT8 expected[] = {20, 95, 55};
2496 
2497     TEST_ASSERT_UINT8_ARRAY_WITHIN(11, expected, expected, 3);
2498 }
2499 
testUInt8ArrayWithinDeltaSamePointerAndMessage(void)2500 void testUInt8ArrayWithinDeltaSamePointerAndMessage(void)
2501 {
2502     UNITY_UINT8 expected[] = {20, 95, 55};
2503 
2504     TEST_ASSERT_UINT8_ARRAY_WITHIN_MESSAGE(11, expected, expected, 3, "Custom Message.");
2505 }
2506 
testHEX64ArrayWithinDelta(void)2507 void testHEX64ArrayWithinDelta(void)
2508 {
2509 #ifndef UNITY_SUPPORT_64
2510     TEST_IGNORE();
2511 #else
2512     UNITY_UINT64 expected[] = {0xABCD123400000000, 0xABCD112200000000, 0xABCD127700000000};
2513     UNITY_UINT64 actualSmallDelta[] = {0xABCD123500000000, 0xABCD112100000000, 0xABCD127700000000};
2514     UNITY_UINT64 actualBigDelta[] = {0xABCD126700000000, 0xABCD118800000000, 0xABCD12AC00000000};
2515 
2516     TEST_ASSERT_HEX64_ARRAY_WITHIN(0x100000000, expected, actualSmallDelta, 3);
2517     TEST_ASSERT_HEX64_ARRAY_WITHIN(0x6E00000000, expected, actualBigDelta, 3);
2518 #endif
2519 }
2520 
testHEX64ArrayWithinDeltaAndMessage(void)2521 void testHEX64ArrayWithinDeltaAndMessage(void)
2522 {
2523 #ifndef UNITY_SUPPORT_64
2524     TEST_IGNORE();
2525 #else
2526     UNITY_UINT64 expected[] = {0xABCD123400000000, 0xABCD112200000000, 0xABCD127700000000};
2527     UNITY_UINT64 actualSmallDelta[] = {0xABCD123500000000, 0xABCD112100000000, 0xABCD127700000000};
2528     UNITY_UINT64 actualBigDelta[] = {0xABCD126700000000, 0xABCD118800000000, 0xABCD12AC00000000};
2529 
2530     TEST_ASSERT_HEX64_ARRAY_WITHIN_MESSAGE(0x100000000, expected, actualSmallDelta, 3, "Custom Message.");
2531     TEST_ASSERT_HEX64_ARRAY_WITHIN_MESSAGE(0x6E00000000, expected, actualBigDelta, 3, "Custom Message.");
2532 #endif
2533 }
2534 
testHEX64ArrayNotWithinDelta(void)2535 void testHEX64ArrayNotWithinDelta(void)
2536 {
2537 #ifndef UNITY_SUPPORT_64
2538     TEST_IGNORE();
2539 #else
2540     UNITY_UINT64 expected[] = {0xABCD123400000000, 0xABCD112200000000, 0xABCD127700000000};
2541     UNITY_UINT64 actualBigDelta[] = {0xABCD126700000000, 0xABCD118800000000, 0xABCD12AC00000000};
2542 
2543     EXPECT_ABORT_BEGIN
2544     TEST_ASSERT_HEX64_ARRAY_WITHIN(0x100000000, expected, actualBigDelta, 3);
2545     VERIFY_FAILS_END
2546 #endif
2547 }
2548 
testHEX64ArrayNotWithinDeltaAndMessage(void)2549 void testHEX64ArrayNotWithinDeltaAndMessage(void)
2550 {
2551 #ifndef UNITY_SUPPORT_64
2552     TEST_IGNORE();
2553 #else
2554     UNITY_UINT64 expected[] = {0xABCD123400000000, 0xABCD112200000000, 0xABCD127700000000};
2555     UNITY_UINT64 actualBigDelta[] = {0xABCD126700000000, 0xABCD118800000000, 0xABCD12AC00000000};
2556 
2557     EXPECT_ABORT_BEGIN
2558     TEST_ASSERT_HEX64_ARRAY_WITHIN_MESSAGE(0x100000000, expected, actualBigDelta, 3, "Custom Message.");
2559     VERIFY_FAILS_END
2560 #endif
2561 }
2562 
testHEX64ArrayWithinDeltaPointless(void)2563 void testHEX64ArrayWithinDeltaPointless(void)
2564 {
2565 #ifndef UNITY_SUPPORT_64
2566     TEST_IGNORE();
2567 #else
2568     UNITY_UINT64 expected[] = {0xABCD123400000000, 0xABCD112200000000, 0xABCD127700000000};
2569     UNITY_UINT64 actualBigDelta[] = {0xABCD126700000000, 0xABCD118800000000, 0xABCD12AC00000000};
2570 
2571     EXPECT_ABORT_BEGIN
2572     TEST_ASSERT_HEX64_ARRAY_WITHIN(0x6E00000000, expected, actualBigDelta, 0);
2573     VERIFY_FAILS_END
2574 #endif
2575 }
2576 
testHEX64ArrayWithinDeltaPointlessAndMessage(void)2577 void testHEX64ArrayWithinDeltaPointlessAndMessage(void)
2578 {
2579 #ifndef UNITY_SUPPORT_64
2580     TEST_IGNORE();
2581 #else
2582     UNITY_UINT64 expected[] = {0xABCD123400000000, 0xABCD112200000000, 0xABCD127700000000};
2583     UNITY_UINT64 actualBigDelta[] = {0xABCD126700000000, 0xABCD118800000000, 0xABCD12AC00000000};
2584 
2585     EXPECT_ABORT_BEGIN
2586     TEST_ASSERT_HEX64_ARRAY_WITHIN_MESSAGE(0x6E00000000, expected, actualBigDelta, 0, "Custom Message.");
2587     VERIFY_FAILS_END
2588 #endif
2589 }
2590 
testHEX64ArrayWithinDeltaExpectedNull(void)2591 void testHEX64ArrayWithinDeltaExpectedNull(void)
2592 {
2593 #ifndef UNITY_SUPPORT_64
2594     TEST_IGNORE();
2595 #else
2596     UNITY_UINT64 actualBigDelta[] = {0xABCD126700000000, 0xABCD118800000000, 0xABCD12AC00000000};
2597 
2598     EXPECT_ABORT_BEGIN
2599     TEST_ASSERT_HEX64_ARRAY_WITHIN(0x6E00000000, NULL, actualBigDelta, 3);
2600     VERIFY_FAILS_END
2601 #endif
2602 }
2603 
testHEX64ArrayWithinDeltaExpectedNullAndMessage(void)2604 void testHEX64ArrayWithinDeltaExpectedNullAndMessage(void)
2605 {
2606 #ifndef UNITY_SUPPORT_64
2607     TEST_IGNORE();
2608 #else
2609     UNITY_UINT64 actualBigDelta[] = {0xABCD126700000000, 0xABCD118800000000, 0xABCD12AC00000000};
2610 
2611     EXPECT_ABORT_BEGIN
2612     TEST_ASSERT_HEX64_ARRAY_WITHIN_MESSAGE(0x6E00000000, NULL, actualBigDelta, 3, "Custom Message.");
2613     VERIFY_FAILS_END
2614 #endif
2615 }
2616 
testHEX64ArrayWithinDeltaActualNull(void)2617 void testHEX64ArrayWithinDeltaActualNull(void)
2618 {
2619 #ifndef UNITY_SUPPORT_64
2620     TEST_IGNORE();
2621 #else
2622     UNITY_UINT64 expected[] = {0xABCD123400000000, 0xABCD112200000000, 0xABCD127700000000};
2623 
2624     EXPECT_ABORT_BEGIN
2625     TEST_ASSERT_HEX64_ARRAY_WITHIN(0x6E00000000, expected, NULL, 3);
2626     VERIFY_FAILS_END
2627 #endif
2628 }
2629 
testHEX64ArrayWithinDeltaActualNullAndMessage(void)2630 void testHEX64ArrayWithinDeltaActualNullAndMessage(void)
2631 {
2632 #ifndef UNITY_SUPPORT_64
2633     TEST_IGNORE();
2634 #else
2635     UNITY_UINT64 expected[] = {0xABCD123400000000, 0xABCD112200000000, 0xABCD127700000000};
2636 
2637     EXPECT_ABORT_BEGIN
2638     TEST_ASSERT_HEX64_ARRAY_WITHIN_MESSAGE(0x6E00000000, expected, NULL, 3, "Custom Message.");
2639     VERIFY_FAILS_END
2640 #endif
2641 }
2642 
testHEX64ArrayWithinDeltaSamePointer(void)2643 void testHEX64ArrayWithinDeltaSamePointer(void)
2644 {
2645 #ifndef UNITY_SUPPORT_64
2646     TEST_IGNORE();
2647 #else
2648     UNITY_UINT64 expected[] = {0xABCD123400000000, 0xABCD112200000000, 0xABCD127700000000};
2649 
2650     TEST_ASSERT_HEX64_ARRAY_WITHIN(0x6E00000000, expected, expected, 3);
2651 #endif
2652 }
2653 
testHEX64ArrayWithinDeltaSamePointerAndMessage(void)2654 void testHEX64ArrayWithinDeltaSamePointerAndMessage(void)
2655 {
2656 #ifndef UNITY_SUPPORT_64
2657     TEST_IGNORE();
2658 #else
2659     UNITY_UINT64 expected[] = {0xABCD123400000000, 0xABCD112200000000, 0xABCD127700000000};
2660 
2661     TEST_ASSERT_HEX64_ARRAY_WITHIN_MESSAGE(0x6E00000000, expected, expected, 3, "Custom Message.");
2662 #endif
2663 }
2664 
testHEX32ArrayWithinDelta(void)2665 void testHEX32ArrayWithinDelta(void)
2666 {
2667     UNITY_UINT expected[] = {0xABCD1234, 0xABCD1122, 0xABCD1277};
2668     UNITY_UINT actualSmallDelta[] = {0xABCD1235, 0xABCD1121, 0xABCD1277};
2669     UNITY_UINT actualBigDelta[] = {0xABCD1267, 0xABCD1188, 0xABCD12AC};
2670 
2671     TEST_ASSERT_HEX32_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
2672     TEST_ASSERT_HEX32_ARRAY_WITHIN(110, expected, actualBigDelta, 3);
2673 }
2674 
testHEX32ArrayWithinDeltaAndMessage(void)2675 void testHEX32ArrayWithinDeltaAndMessage(void)
2676 {
2677     UNITY_UINT expected[] = {0xABCD1234, 0xABCD1122, 0xABCD1277};
2678     UNITY_UINT actualSmallDelta[] = {0xABCD1235, 0xABCD1121, 0xABCD1277};
2679     UNITY_UINT actualBigDelta[] = {0xABCD1267, 0xABCD1188, 0xABCD12AC};
2680 
2681     TEST_ASSERT_HEX32_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
2682     TEST_ASSERT_HEX32_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 3, "Custom Message.");
2683 }
2684 
testHEX32ArrayNotWithinDelta(void)2685 void testHEX32ArrayNotWithinDelta(void)
2686 {
2687     UNITY_UINT expected[] = {0xABCD1234, 0xABCD1122, 0xABCD1277};
2688     UNITY_UINT actualBigDelta[] = {0xABCD1267, 0xABCD1188, 0xABCD12AC};
2689 
2690     EXPECT_ABORT_BEGIN
2691     TEST_ASSERT_HEX32_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
2692     VERIFY_FAILS_END
2693 }
2694 
testHEX32ArrayNotWithinDeltaAndMessage(void)2695 void testHEX32ArrayNotWithinDeltaAndMessage(void)
2696 {
2697     UNITY_UINT expected[] = {0xABCD1234, 0xABCD1122, 0xABCD1277};
2698     UNITY_UINT actualBigDelta[] = {0xABCD1267, 0xABCD1188, 0xABCD12AC};
2699 
2700     EXPECT_ABORT_BEGIN
2701     TEST_ASSERT_HEX32_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
2702     VERIFY_FAILS_END
2703 }
2704 
testHEX32ArrayWithinDeltaPointless(void)2705 void testHEX32ArrayWithinDeltaPointless(void)
2706 {
2707     UNITY_UINT expected[] = {0xABCD1234, 0xABCD1122, 0xABCD1277};
2708     UNITY_UINT actualBigDelta[] = {0xABCD1267, 0xABCD1188, 0xABCD12AC};
2709 
2710     EXPECT_ABORT_BEGIN
2711     TEST_ASSERT_HEX32_ARRAY_WITHIN(110, expected, actualBigDelta, 0);
2712     VERIFY_FAILS_END
2713 }
2714 
testHEX32ArrayWithinDeltaPointlessAndMessage(void)2715 void testHEX32ArrayWithinDeltaPointlessAndMessage(void)
2716 {
2717     UNITY_UINT expected[] = {0xABCD1234, 0xABCD1122, 0xABCD1277};
2718     UNITY_UINT actualBigDelta[] = {0xABCD1267, 0xABCD1188, 0xABCD12AC};
2719 
2720     EXPECT_ABORT_BEGIN
2721     TEST_ASSERT_HEX32_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 0, "Custom Message.");
2722     VERIFY_FAILS_END
2723 }
2724 
testHEX32ArrayWithinDeltaExpectedNull(void)2725 void testHEX32ArrayWithinDeltaExpectedNull(void)
2726 {
2727     UNITY_UINT actualBigDelta[] = {0xABCD1267, 0xABCD1188, 0xABCD12AC};
2728 
2729     EXPECT_ABORT_BEGIN
2730     TEST_ASSERT_HEX32_ARRAY_WITHIN(110, NULL, actualBigDelta, 3);
2731     VERIFY_FAILS_END
2732 }
2733 
testHEX32ArrayWithinDeltaExpectedNullAndMessage(void)2734 void testHEX32ArrayWithinDeltaExpectedNullAndMessage(void)
2735 {
2736     UNITY_UINT actualBigDelta[] = {0xABCD1267, 0xABCD1188, 0xABCD12AC};
2737 
2738     EXPECT_ABORT_BEGIN
2739     TEST_ASSERT_HEX32_ARRAY_WITHIN_MESSAGE(110, NULL, actualBigDelta, 3, "Custom Message.");
2740     VERIFY_FAILS_END
2741 }
2742 
testHEX32ArrayWithinDeltaActualNull(void)2743 void testHEX32ArrayWithinDeltaActualNull(void)
2744 {
2745     UNITY_UINT expected[] = {0xABCD1234, 0xABCD1122, 0xABCD1277};
2746 
2747     EXPECT_ABORT_BEGIN
2748     TEST_ASSERT_HEX32_ARRAY_WITHIN(110, expected, NULL, 3);
2749     VERIFY_FAILS_END
2750 }
2751 
testHEX32ArrayWithinDeltaActualNullAndMessage(void)2752 void testHEX32ArrayWithinDeltaActualNullAndMessage(void)
2753 {
2754     UNITY_UINT expected[] = {0xABCD1234, 0xABCD1122, 0xABCD1277};
2755 
2756     EXPECT_ABORT_BEGIN
2757     TEST_ASSERT_HEX32_ARRAY_WITHIN_MESSAGE(110, expected, NULL, 3, "Custom Message.");
2758     VERIFY_FAILS_END
2759 }
2760 
testHEX32ArrayWithinDeltaSamePointer(void)2761 void testHEX32ArrayWithinDeltaSamePointer(void)
2762 {
2763     UNITY_UINT expected[] = {0xABCD1234, 0xABCD1122, 0xABCD1277};
2764 
2765     TEST_ASSERT_HEX32_ARRAY_WITHIN(110, expected, expected, 3);
2766 }
2767 
testHEX32ArrayWithinDeltaSamePointerAndMessage(void)2768 void testHEX32ArrayWithinDeltaSamePointerAndMessage(void)
2769 {
2770     UNITY_UINT expected[] = {0xABCD1234, 0xABCD1122, 0xABCD1277};
2771 
2772     TEST_ASSERT_HEX32_ARRAY_WITHIN_MESSAGE(110, expected, expected, 3, "Custom Message.");
2773 }
2774 
2775 
testHEX16ArrayWithinDelta(void)2776 void testHEX16ArrayWithinDelta(void)
2777 {
2778     UNITY_UINT16 expected[] = {0x1234, 0x1122, 0x1277};
2779     UNITY_UINT16 actualSmallDelta[] = {0x1235, 0x1121, 0x1277};
2780     UNITY_UINT16 actualBigDelta[] = {0x1267, 0x1188, 0x12AC};
2781 
2782     TEST_ASSERT_HEX16_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
2783     TEST_ASSERT_HEX16_ARRAY_WITHIN(110, expected, actualBigDelta, 3);
2784 }
2785 
testHEX16ArrayWithinDeltaAndMessage(void)2786 void testHEX16ArrayWithinDeltaAndMessage(void)
2787 {
2788     UNITY_UINT16 expected[] = {0x1234, 0x1122, 0x1277};
2789     UNITY_UINT16 actualSmallDelta[] = {0x1235, 0x1121, 0x1277};
2790     UNITY_UINT16 actualBigDelta[] = {0x1267, 0x1188, 0x12AC};
2791 
2792     TEST_ASSERT_HEX16_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
2793     TEST_ASSERT_HEX16_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 3, "Custom Message.");
2794 }
2795 
testHEX16ArrayNotWithinDelta(void)2796 void testHEX16ArrayNotWithinDelta(void)
2797 {
2798     UNITY_UINT16 expected[] = {0x1234, 0x1122, 0x1277};
2799     UNITY_UINT16 actualBigDelta[] = {0x1267, 0x1188, 0x12AC};
2800 
2801     EXPECT_ABORT_BEGIN
2802     TEST_ASSERT_HEX16_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
2803     VERIFY_FAILS_END
2804 }
2805 
testHEX16ArrayNotWithinDeltaAndMessage(void)2806 void testHEX16ArrayNotWithinDeltaAndMessage(void)
2807 {
2808     UNITY_UINT16 expected[] = {0x1234, 0x1122, 0x1277};
2809     UNITY_UINT16 actualBigDelta[] = {0x1267, 0x1188, 0x12AC};
2810 
2811     EXPECT_ABORT_BEGIN
2812     TEST_ASSERT_HEX16_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
2813     VERIFY_FAILS_END
2814 }
2815 
testHEX16ArrayWithinDeltaPointless(void)2816 void testHEX16ArrayWithinDeltaPointless(void)
2817 {
2818     UNITY_UINT16 expected[] = {0x1234, 0x1122, 0x1277};
2819     UNITY_UINT16 actualBigDelta[] = {0x1267, 0x1188, 0x12AC};
2820 
2821     EXPECT_ABORT_BEGIN
2822     TEST_ASSERT_HEX16_ARRAY_WITHIN(110, expected, actualBigDelta, 0);
2823     VERIFY_FAILS_END
2824 }
2825 
testHEX16ArrayWithinDeltaPointlessAndMessage(void)2826 void testHEX16ArrayWithinDeltaPointlessAndMessage(void)
2827 {
2828     UNITY_UINT16 expected[] = {0x1234, 0x1122, 0x1277};
2829     UNITY_UINT16 actualBigDelta[] = {0x1267, 0x1188, 0x12AC};
2830 
2831     EXPECT_ABORT_BEGIN
2832     TEST_ASSERT_HEX16_ARRAY_WITHIN_MESSAGE(110, expected, actualBigDelta, 0, "Custom Message.");
2833     VERIFY_FAILS_END
2834 }
2835 
testHEX16ArrayWithinDeltaExpectedNull(void)2836 void testHEX16ArrayWithinDeltaExpectedNull(void)
2837 {
2838     UNITY_UINT16 actualBigDelta[] = {0x1267, 0x1188, 0x12AC};
2839 
2840     EXPECT_ABORT_BEGIN
2841     TEST_ASSERT_HEX16_ARRAY_WITHIN(110, NULL, actualBigDelta, 3);
2842     VERIFY_FAILS_END
2843 }
2844 
testHEX16ArrayWithinDeltaExpectedNullAndMessage(void)2845 void testHEX16ArrayWithinDeltaExpectedNullAndMessage(void)
2846 {
2847     UNITY_UINT16 actualBigDelta[] = {0x1267, 0x1188, 0x12AC};
2848 
2849     EXPECT_ABORT_BEGIN
2850     TEST_ASSERT_HEX16_ARRAY_WITHIN_MESSAGE(110, NULL, actualBigDelta, 3, "Custom Message.");
2851     VERIFY_FAILS_END
2852 }
2853 
testHEX16ArrayWithinDeltaActualNull(void)2854 void testHEX16ArrayWithinDeltaActualNull(void)
2855 {
2856     UNITY_UINT16 expected[] = {0x1234, 0x1122, 0x1277};
2857 
2858     EXPECT_ABORT_BEGIN
2859     TEST_ASSERT_HEX16_ARRAY_WITHIN(110, expected, NULL, 3);
2860     VERIFY_FAILS_END
2861 }
2862 
testHEX16ArrayWithinDeltaActualNullAndMessage(void)2863 void testHEX16ArrayWithinDeltaActualNullAndMessage(void)
2864 {
2865     UNITY_UINT16 expected[] = {0x1234, 0x1122, 0x1277};
2866 
2867     EXPECT_ABORT_BEGIN
2868     TEST_ASSERT_HEX16_ARRAY_WITHIN_MESSAGE(110, expected, NULL, 3, "Custom Message.");
2869     VERIFY_FAILS_END
2870 }
2871 
testHEX16ArrayWithinDeltaSamePointer(void)2872 void testHEX16ArrayWithinDeltaSamePointer(void)
2873 {
2874     UNITY_UINT16 expected[] = {0x1234, 0x1122, 0x1277};
2875 
2876     TEST_ASSERT_HEX16_ARRAY_WITHIN(110, expected, expected, 3);
2877 }
2878 
testHEX16ArrayWithinDeltaSamePointerAndMessage(void)2879 void testHEX16ArrayWithinDeltaSamePointerAndMessage(void)
2880 {
2881     UNITY_UINT16 expected[] = {0x1234, 0x1122, 0x1277};
2882 
2883     TEST_ASSERT_HEX16_ARRAY_WITHIN_MESSAGE(110, expected, expected, 3, "Custom Message.");
2884 }
2885 
testHEX8ArrayWithinDelta(void)2886 void testHEX8ArrayWithinDelta(void)
2887 {
2888     UNITY_UINT8 expected[] = {0x34, 0x22, 0x77};
2889     UNITY_UINT8 actualSmallDelta[] = {0x35, 0x21, 0x77};
2890     UNITY_UINT8 actualBigDelta[] = {0x47, 0x48, 0x4C};
2891 
2892     TEST_ASSERT_HEX8_ARRAY_WITHIN(1, expected, actualSmallDelta, 3);
2893     TEST_ASSERT_HEX8_ARRAY_WITHIN(60, expected, actualBigDelta, 3);
2894 }
2895 
testHEX8ArrayWithinDeltaAndMessage(void)2896 void testHEX8ArrayWithinDeltaAndMessage(void)
2897 {
2898     UNITY_UINT8 expected[] = {0x34, 0x22, 0x77};
2899     UNITY_UINT8 actualSmallDelta[] = {0x35, 0x21, 0x77};
2900     UNITY_UINT8 actualBigDelta[] = {0x47, 0x48, 0x4C};
2901 
2902     TEST_ASSERT_HEX8_ARRAY_WITHIN_MESSAGE(1, expected, actualSmallDelta, 3, "Custom Message.");
2903     TEST_ASSERT_HEX8_ARRAY_WITHIN_MESSAGE(60, expected, actualBigDelta, 3, "Custom Message.");
2904 }
2905 
testHEX8ArrayNotWithinDelta(void)2906 void testHEX8ArrayNotWithinDelta(void)
2907 {
2908     UNITY_UINT8 expected[] = {0x34, 0x22, 0x77};
2909     UNITY_UINT8 actualBigDelta[] = {0x67, 0x88, 0xAC};
2910 
2911     EXPECT_ABORT_BEGIN
2912     TEST_ASSERT_HEX8_ARRAY_WITHIN(1, expected, actualBigDelta, 3);
2913     VERIFY_FAILS_END
2914 }
2915 
testHEX8ArrayNotWithinDeltaAndMessage(void)2916 void testHEX8ArrayNotWithinDeltaAndMessage(void)
2917 {
2918     UNITY_UINT8 expected[] = {0x34, 0x22, 0x77};
2919     UNITY_UINT8 actualBigDelta[] = {0x67, 0x88, 0xAC};
2920 
2921     EXPECT_ABORT_BEGIN
2922     TEST_ASSERT_HEX8_ARRAY_WITHIN_MESSAGE(1, expected, actualBigDelta, 3, "Custom Message.");
2923     VERIFY_FAILS_END
2924 }
2925 
testHEX8ArrayWithinDeltaPointless(void)2926 void testHEX8ArrayWithinDeltaPointless(void)
2927 {
2928     UNITY_UINT8 expected[] = {0x34, 0x22, 0x77};
2929     UNITY_UINT8 actualBigDelta[] = {0x67, 0x88, 0xAC};
2930 
2931     EXPECT_ABORT_BEGIN
2932     TEST_ASSERT_HEX8_ARRAY_WITHIN(60, expected, actualBigDelta, 0);
2933     VERIFY_FAILS_END
2934 }
2935 
testHEX8ArrayWithinDeltaPointlessAndMessage(void)2936 void testHEX8ArrayWithinDeltaPointlessAndMessage(void)
2937 {
2938     UNITY_UINT8 expected[] = {0x34, 0x22, 0x77};
2939     UNITY_UINT8 actualBigDelta[] = {0x67, 0x88, 0xAC};
2940 
2941     EXPECT_ABORT_BEGIN
2942     TEST_ASSERT_HEX8_ARRAY_WITHIN_MESSAGE(60, expected, actualBigDelta, 0, "Custom Message.");
2943     VERIFY_FAILS_END
2944 }
2945 
testHEX8ArrayWithinDeltaExpectedNull(void)2946 void testHEX8ArrayWithinDeltaExpectedNull(void)
2947 {
2948     UNITY_UINT8 actualBigDelta[] = {0x67, 0x88, 0xAC};
2949 
2950     EXPECT_ABORT_BEGIN
2951     TEST_ASSERT_HEX8_ARRAY_WITHIN(60, NULL, actualBigDelta, 3);
2952     VERIFY_FAILS_END
2953 }
2954 
testHEX8ArrayWithinDeltaExpectedNullAndMessage(void)2955 void testHEX8ArrayWithinDeltaExpectedNullAndMessage(void)
2956 {
2957     UNITY_UINT8 actualBigDelta[] = {0x67, 0x88, 0xAC};
2958 
2959     EXPECT_ABORT_BEGIN
2960     TEST_ASSERT_HEX8_ARRAY_WITHIN_MESSAGE(60, NULL, actualBigDelta, 3, "Custom Message.");
2961     VERIFY_FAILS_END
2962 }
2963 
testHEX8ArrayWithinDeltaActualNull(void)2964 void testHEX8ArrayWithinDeltaActualNull(void)
2965 {
2966     UNITY_UINT8 expected[] = {0x34, 0x22, 0x77};
2967 
2968     EXPECT_ABORT_BEGIN
2969     TEST_ASSERT_HEX8_ARRAY_WITHIN(60, expected, NULL, 3);
2970     VERIFY_FAILS_END
2971 }
2972 
testHEX8ArrayWithinDeltaActualNullAndMessage(void)2973 void testHEX8ArrayWithinDeltaActualNullAndMessage(void)
2974 {
2975     UNITY_UINT8 expected[] = {0x34, 0x22, 0x77};
2976 
2977     EXPECT_ABORT_BEGIN
2978     TEST_ASSERT_HEX8_ARRAY_WITHIN_MESSAGE(60, expected, NULL, 3, "Custom Message.");
2979     VERIFY_FAILS_END
2980 }
2981 
testHEX8ArrayWithinDeltaSamePointer(void)2982 void testHEX8ArrayWithinDeltaSamePointer(void)
2983 {
2984     UNITY_UINT8 expected[] = {0x34, 0x22, 0x77};
2985 
2986     TEST_ASSERT_HEX8_ARRAY_WITHIN(60, expected, expected, 3);
2987 }
2988 
testHEX8ArrayWithinDeltaSamePointerAndMessage(void)2989 void testHEX8ArrayWithinDeltaSamePointerAndMessage(void)
2990 {
2991     UNITY_UINT8 expected[] = {0x34, 0x22, 0x77};
2992 
2993     TEST_ASSERT_HEX8_ARRAY_WITHIN_MESSAGE(60, expected, expected, 3, "Custom Message.");
2994 }
2995 
2996 /*-----------------*/
2997 
testGreaterThan(void)2998 void testGreaterThan(void)
2999 {
3000     UNITY_INT v0, v1;
3001     UNITY_INT *p0, *p1;
3002 
3003     v0 = 0;
3004     v1 = 1;
3005     p0 = &v0;
3006     p1 = &v1;
3007 
3008     TEST_ASSERT_GREATER_THAN(v0, v1);
3009     TEST_ASSERT_GREATER_THAN(*p0, v1);
3010     TEST_ASSERT_GREATER_THAN(v0, *p1);
3011     TEST_ASSERT_GREATER_THAN(*p0, *p1);
3012 }
3013 
testNotGreaterThan(void)3014 void testNotGreaterThan(void)
3015 {
3016     EXPECT_ABORT_BEGIN
3017     TEST_ASSERT_GREATER_THAN(0, -1);
3018     VERIFY_FAILS_END
3019 }
3020 
testGreaterThanINT(void)3021 void testGreaterThanINT(void)
3022 {
3023     UNITY_INT v0, v1;
3024     UNITY_INT *p0, *p1;
3025 
3026     v0 = 302;
3027     v1 = 3334;
3028     p0 = &v0;
3029     p1 = &v1;
3030 
3031     TEST_ASSERT_GREATER_THAN_INT(v0, v1);
3032     TEST_ASSERT_GREATER_THAN_INT(*p0, v1);
3033     TEST_ASSERT_GREATER_THAN_INT(v0, *p1);
3034     TEST_ASSERT_GREATER_THAN_INT(*p0, *p1);
3035 }
3036 
testNotGreaterThanINT(void)3037 void testNotGreaterThanINT(void)
3038 {
3039     EXPECT_ABORT_BEGIN
3040     TEST_ASSERT_GREATER_THAN_INT(3334, 302);
3041     VERIFY_FAILS_END
3042 }
3043 
testGreaterThanINT8(void)3044 void testGreaterThanINT8(void)
3045 {
3046     UNITY_INT8 v0, v1;
3047     UNITY_INT8 *p0, *p1;
3048 
3049     v0 = -128;
3050     v1 = 127;
3051     p0 = &v0;
3052     p1 = &v1;
3053 
3054     TEST_ASSERT_GREATER_THAN_INT8(v0, v1);
3055     TEST_ASSERT_GREATER_THAN_INT8(*p0, v1);
3056     TEST_ASSERT_GREATER_THAN_INT8(v0, *p1);
3057     TEST_ASSERT_GREATER_THAN_INT8(*p0, *p1);
3058 }
3059 
testNotGreaterThanINT8(void)3060 void testNotGreaterThanINT8(void)
3061 {
3062     EXPECT_ABORT_BEGIN
3063     TEST_ASSERT_GREATER_THAN_INT8(127, -128);
3064     VERIFY_FAILS_END
3065 }
3066 
testGreaterThanCHAR(void)3067 void testGreaterThanCHAR(void)
3068 {
3069     char v0, v1;
3070     char *p0, *p1;
3071 
3072     v0 = -128;
3073     v1 = 127;
3074     p0 = &v0;
3075     p1 = &v1;
3076 
3077     TEST_ASSERT_GREATER_THAN_CHAR(v0, v1);
3078     TEST_ASSERT_GREATER_THAN_CHAR(*p0, v1);
3079     TEST_ASSERT_GREATER_THAN_CHAR(v0, *p1);
3080     TEST_ASSERT_GREATER_THAN_CHAR(*p0, *p1);
3081 }
3082 
testNotGreaterThanCHAR(void)3083 void testNotGreaterThanCHAR(void)
3084 {
3085     EXPECT_ABORT_BEGIN
3086     TEST_ASSERT_GREATER_THAN_CHAR(127, -128);
3087     VERIFY_FAILS_END
3088 }
3089 
testGreaterThanINT16(void)3090 void testGreaterThanINT16(void)
3091 {
3092     UNITY_INT16 v0, v1;
3093     UNITY_INT16 *p0, *p1;
3094 
3095     v0 = -32768;
3096     v1 = 32767;
3097     p0 = &v0;
3098     p1 = &v1;
3099 
3100     TEST_ASSERT_GREATER_THAN_INT16(v0, v1);
3101     TEST_ASSERT_GREATER_THAN_INT16(*p0, v1);
3102     TEST_ASSERT_GREATER_THAN_INT16(v0, *p1);
3103     TEST_ASSERT_GREATER_THAN_INT16(*p0, *p1);
3104 }
3105 
testNotGreaterThanINT16(void)3106 void testNotGreaterThanINT16(void)
3107 {
3108     EXPECT_ABORT_BEGIN
3109     TEST_ASSERT_GREATER_THAN_INT16(32768, -32768);
3110     VERIFY_FAILS_END
3111 }
3112 
testGreaterThanINT32(void)3113 void testGreaterThanINT32(void)
3114 {
3115     UNITY_INT32 v0, v1;
3116     UNITY_INT32 *p0, *p1;
3117 
3118     v0 = -214783648;
3119     v1 = 214783647;
3120     p0 = &v0;
3121     p1 = &v1;
3122 
3123     TEST_ASSERT_GREATER_THAN_INT32(v0, v1);
3124     TEST_ASSERT_GREATER_THAN_INT32(*p0, v1);
3125     TEST_ASSERT_GREATER_THAN_INT32(v0, *p1);
3126     TEST_ASSERT_GREATER_THAN_INT32(*p0, *p1);
3127 }
3128 
testNotGreaterThanINT32(void)3129 void testNotGreaterThanINT32(void)
3130 {
3131     EXPECT_ABORT_BEGIN
3132     TEST_ASSERT_GREATER_THAN_INT32(214783647, -214783648);
3133     VERIFY_FAILS_END
3134 }
3135 
testGreaterThanUINT(void)3136 void testGreaterThanUINT(void)
3137 {
3138     UNITY_UINT v0, v1;
3139     UNITY_UINT *p0, *p1;
3140 
3141     v0 = 0;
3142     v1 = 1;
3143     p0 = &v0;
3144     p1 = &v1;
3145 
3146     TEST_ASSERT_GREATER_THAN_UINT(v0, v1);
3147     TEST_ASSERT_GREATER_THAN_UINT(*p0, v1);
3148     TEST_ASSERT_GREATER_THAN_UINT(v0, *p1);
3149     TEST_ASSERT_GREATER_THAN_UINT(*p0, *p1);
3150 }
3151 
testNotGreaterThanUINT(void)3152 void testNotGreaterThanUINT(void)
3153 {
3154     EXPECT_ABORT_BEGIN
3155     TEST_ASSERT_GREATER_THAN_UINT(1, 0);
3156     VERIFY_FAILS_END
3157 }
3158 
testGreaterThanUINT8(void)3159 void testGreaterThanUINT8(void)
3160 {
3161     UNITY_UINT8 v0, v1;
3162     UNITY_UINT8 *p0, *p1;
3163 
3164     v0 = 0;
3165     v1 = 255;
3166     p0 = &v0;
3167     p1 = &v1;
3168 
3169     TEST_ASSERT_GREATER_THAN_UINT8(v0, v1);
3170     TEST_ASSERT_GREATER_THAN_UINT8(*p0, v1);
3171     TEST_ASSERT_GREATER_THAN_UINT8(v0, *p1);
3172     TEST_ASSERT_GREATER_THAN_UINT8(*p0, *p1);
3173 }
3174 
testNotGreaterThanUINT8(void)3175 void testNotGreaterThanUINT8(void)
3176 {
3177     EXPECT_ABORT_BEGIN
3178     TEST_ASSERT_GREATER_THAN_UINT8(255, 0);
3179     VERIFY_FAILS_END
3180 }
3181 
testGreaterThanUINT16(void)3182 void testGreaterThanUINT16(void)
3183 {
3184     UNITY_UINT16 v0, v1;
3185     UNITY_UINT16 *p0, *p1;
3186 
3187     v0 = 0;
3188     v1 = 65535;
3189     p0 = &v0;
3190     p1 = &v1;
3191 
3192     TEST_ASSERT_GREATER_THAN_UINT16(v0, v1);
3193     TEST_ASSERT_GREATER_THAN_UINT16(*p0, v1);
3194     TEST_ASSERT_GREATER_THAN_UINT16(v0, *p1);
3195     TEST_ASSERT_GREATER_THAN_UINT16(*p0, *p1);
3196 }
3197 
testNotGreaterThanUINT16(void)3198 void testNotGreaterThanUINT16(void)
3199 {
3200     EXPECT_ABORT_BEGIN
3201     TEST_ASSERT_GREATER_THAN_UINT16(65535, 0);
3202     VERIFY_FAILS_END
3203 }
3204 
testGreaterThanUINT32(void)3205 void testGreaterThanUINT32(void)
3206 {
3207     UNITY_UINT32 v0, v1;
3208     UNITY_UINT32 *p0, *p1;
3209 
3210     v0 = 0u;
3211     v1 = 4294967295u;
3212     p0 = &v0;
3213     p1 = &v1;
3214 
3215     TEST_ASSERT_GREATER_THAN_UINT32(v0, v1);
3216     TEST_ASSERT_GREATER_THAN_UINT32(*p0, v1);
3217     TEST_ASSERT_GREATER_THAN_UINT32(v0, *p1);
3218     TEST_ASSERT_GREATER_THAN_UINT32(*p0, *p1);
3219 }
3220 
testNotGreaterThanUINT32(void)3221 void testNotGreaterThanUINT32(void)
3222 {
3223     EXPECT_ABORT_BEGIN
3224     TEST_ASSERT_GREATER_THAN_UINT32(4294967295u, 0);
3225     VERIFY_FAILS_END
3226 }
3227 
testGreaterThanHEX8(void)3228 void testGreaterThanHEX8(void)
3229 {
3230     UNITY_UINT8 v0, v1;
3231     UNITY_UINT8 *p0, *p1;
3232 
3233     v0 = 0x00;
3234     v1 = 0xFF;
3235     p0 = &v0;
3236     p1 = &v1;
3237 
3238     TEST_ASSERT_GREATER_THAN_HEX8(v0, v1);
3239     TEST_ASSERT_GREATER_THAN_HEX8(*p0, v1);
3240     TEST_ASSERT_GREATER_THAN_HEX8(v0, *p1);
3241     TEST_ASSERT_GREATER_THAN_HEX8(*p0, *p1);
3242 }
3243 
testNotGreaterThanHEX8(void)3244 void testNotGreaterThanHEX8(void)
3245 {
3246     EXPECT_ABORT_BEGIN
3247     TEST_ASSERT_GREATER_THAN_HEX8(0xFF, 0x00);
3248     VERIFY_FAILS_END
3249 }
3250 
testGreaterThanHEX16(void)3251 void testGreaterThanHEX16(void)
3252 {
3253     UNITY_UINT16 v0, v1;
3254     UNITY_UINT16 *p0, *p1;
3255 
3256     v0 = 0x0000;
3257     v1 = 0xFFFF;
3258     p0 = &v0;
3259     p1 = &v1;
3260 
3261     TEST_ASSERT_GREATER_THAN_HEX16(v0, v1);
3262     TEST_ASSERT_GREATER_THAN_HEX16(*p0, v1);
3263     TEST_ASSERT_GREATER_THAN_HEX16(v0, *p1);
3264     TEST_ASSERT_GREATER_THAN_HEX16(*p0, *p1);
3265 }
3266 
testNotGreaterThanHEX16(void)3267 void testNotGreaterThanHEX16(void)
3268 {
3269     EXPECT_ABORT_BEGIN
3270     TEST_ASSERT_GREATER_THAN_HEX16(0xFFFF, 0x00);
3271     VERIFY_FAILS_END
3272 }
3273 
testGreaterThanHEX32(void)3274 void testGreaterThanHEX32(void)
3275 {
3276     UNITY_UINT32 v0, v1;
3277     UNITY_UINT32 *p0, *p1;
3278 
3279     v0 = 0x00000000;
3280     v1 = 0xFFFFFFFF;
3281     p0 = &v0;
3282     p1 = &v1;
3283 
3284     TEST_ASSERT_GREATER_THAN_HEX32(v0, v1);
3285     TEST_ASSERT_GREATER_THAN_HEX32(*p0, v1);
3286     TEST_ASSERT_GREATER_THAN_HEX32(v0, *p1);
3287     TEST_ASSERT_GREATER_THAN_HEX32(*p0, *p1);
3288 }
3289 
testNotGreaterThanHEX32(void)3290 void testNotGreaterThanHEX32(void)
3291 {
3292     EXPECT_ABORT_BEGIN
3293     TEST_ASSERT_GREATER_THAN_HEX32(0xFFFFFFFF, 0x00);
3294     VERIFY_FAILS_END
3295 }
3296 
testGreaterOrEqual(void)3297 void testGreaterOrEqual(void)
3298 {
3299     UNITY_INT v0, v1, v2;
3300     UNITY_INT *p0, *p1, *p2;
3301 
3302     v0 = 0;
3303     v1 = 1;
3304     v2 = 0;
3305     p0 = &v0;
3306     p1 = &v1;
3307     p2 = &v2;
3308 
3309     TEST_ASSERT_GREATER_OR_EQUAL(v0, v1);
3310     TEST_ASSERT_GREATER_OR_EQUAL(*p0, v1);
3311     TEST_ASSERT_GREATER_OR_EQUAL(v0, *p1);
3312     TEST_ASSERT_GREATER_OR_EQUAL(*p0, *p1);
3313     TEST_ASSERT_GREATER_OR_EQUAL(v0, v2);
3314     TEST_ASSERT_GREATER_OR_EQUAL(*p0, v2);
3315     TEST_ASSERT_GREATER_OR_EQUAL(v0, *p2);
3316     TEST_ASSERT_GREATER_OR_EQUAL(*p0, *p2);
3317 }
3318 
testNotGreaterOrEqual(void)3319 void testNotGreaterOrEqual(void)
3320 {
3321     EXPECT_ABORT_BEGIN
3322     TEST_ASSERT_GREATER_OR_EQUAL(0, -1);
3323     VERIFY_FAILS_END
3324 }
3325 
testGreaterOrEqualINT(void)3326 void testGreaterOrEqualINT(void)
3327 {
3328     UNITY_INT v0, v1, v2;
3329     UNITY_INT *p0, *p1, *p2;
3330 
3331     v0 = 302;
3332     v1 = 3334;
3333     v2 = 302;
3334     p0 = &v0;
3335     p1 = &v1;
3336     p2 = &v2;
3337 
3338     TEST_ASSERT_GREATER_OR_EQUAL_INT(v0, v1);
3339     TEST_ASSERT_GREATER_OR_EQUAL_INT(*p0, v1);
3340     TEST_ASSERT_GREATER_OR_EQUAL_INT(v0, *p1);
3341     TEST_ASSERT_GREATER_OR_EQUAL_INT(*p0, *p1);
3342     TEST_ASSERT_GREATER_OR_EQUAL_INT(v0, v2);
3343     TEST_ASSERT_GREATER_OR_EQUAL_INT(*p0, v2);
3344     TEST_ASSERT_GREATER_OR_EQUAL_INT(v0, *p2);
3345     TEST_ASSERT_GREATER_OR_EQUAL_INT(*p0, *p2);
3346 }
3347 
testNotGreaterOrEqualINT(void)3348 void testNotGreaterOrEqualINT(void)
3349 {
3350     EXPECT_ABORT_BEGIN
3351     TEST_ASSERT_GREATER_OR_EQUAL_INT(3334, 302);
3352     VERIFY_FAILS_END
3353 }
3354 
testGreaterOrEqualINT8(void)3355 void testGreaterOrEqualINT8(void)
3356 {
3357     UNITY_INT8 v0, v1, v2;
3358     UNITY_INT8 *p0, *p1, *p2;
3359 
3360     v0 = -128;
3361     v1 = 127;
3362     v2 = -128;
3363     p0 = &v0;
3364     p1 = &v1;
3365     p2 = &v2;
3366 
3367     TEST_ASSERT_GREATER_OR_EQUAL_INT8(v0, v1);
3368     TEST_ASSERT_GREATER_OR_EQUAL_INT8(*p0, v1);
3369     TEST_ASSERT_GREATER_OR_EQUAL_INT8(v0, *p1);
3370     TEST_ASSERT_GREATER_OR_EQUAL_INT8(*p0, *p1);
3371     TEST_ASSERT_GREATER_OR_EQUAL_INT8(v0, v2);
3372     TEST_ASSERT_GREATER_OR_EQUAL_INT8(*p0, v2);
3373     TEST_ASSERT_GREATER_OR_EQUAL_INT8(v0, *p2);
3374     TEST_ASSERT_GREATER_OR_EQUAL_INT8(*p0, *p2);
3375 }
3376 
testNotGreaterOrEqualINT8(void)3377 void testNotGreaterOrEqualINT8(void)
3378 {
3379     EXPECT_ABORT_BEGIN
3380     TEST_ASSERT_GREATER_OR_EQUAL_INT8(127, -128);
3381     VERIFY_FAILS_END
3382 }
3383 
testGreaterOrEqualCHAR(void)3384 void testGreaterOrEqualCHAR(void)
3385 {
3386     char v0, v1, v2;
3387     char *p0, *p1, *p2;
3388 
3389     v0 = -128;
3390     v1 = 127;
3391     v2 = -128;
3392     p0 = &v0;
3393     p1 = &v1;
3394     p2 = &v2;
3395 
3396     TEST_ASSERT_GREATER_OR_EQUAL_CHAR(v0, v1);
3397     TEST_ASSERT_GREATER_OR_EQUAL_CHAR(*p0, v1);
3398     TEST_ASSERT_GREATER_OR_EQUAL_CHAR(v0, *p1);
3399     TEST_ASSERT_GREATER_OR_EQUAL_CHAR(*p0, *p1);
3400     TEST_ASSERT_GREATER_OR_EQUAL_CHAR(v0, v2);
3401     TEST_ASSERT_GREATER_OR_EQUAL_CHAR(*p0, v2);
3402     TEST_ASSERT_GREATER_OR_EQUAL_CHAR(v0, *p2);
3403     TEST_ASSERT_GREATER_OR_EQUAL_CHAR(*p0, *p2);
3404 }
3405 
testNotGreaterOrEqualCHAR(void)3406 void testNotGreaterOrEqualCHAR(void)
3407 {
3408     EXPECT_ABORT_BEGIN
3409     TEST_ASSERT_GREATER_OR_EQUAL_CHAR(127, -128);
3410     VERIFY_FAILS_END
3411 }
3412 
testGreaterOrEqualINT16(void)3413 void testGreaterOrEqualINT16(void)
3414 {
3415     UNITY_INT16 v0, v1, v2;
3416     UNITY_INT16 *p0, *p1, *p2;
3417 
3418     v0 = -32768;
3419     v1 = 32767;
3420     v2 = -32768;
3421     p0 = &v0;
3422     p1 = &v1;
3423     p2 = &v2;
3424 
3425     TEST_ASSERT_GREATER_OR_EQUAL_INT16(v0, v1);
3426     TEST_ASSERT_GREATER_OR_EQUAL_INT16(*p0, v1);
3427     TEST_ASSERT_GREATER_OR_EQUAL_INT16(v0, *p1);
3428     TEST_ASSERT_GREATER_OR_EQUAL_INT16(*p0, *p1);
3429     TEST_ASSERT_GREATER_OR_EQUAL_INT16(v0, v2);
3430     TEST_ASSERT_GREATER_OR_EQUAL_INT16(*p0, v2);
3431     TEST_ASSERT_GREATER_OR_EQUAL_INT16(v0, *p2);
3432     TEST_ASSERT_GREATER_OR_EQUAL_INT16(*p0, *p2);
3433 }
3434 
testNotGreaterOrEqualINT16(void)3435 void testNotGreaterOrEqualINT16(void)
3436 {
3437     EXPECT_ABORT_BEGIN
3438     TEST_ASSERT_GREATER_OR_EQUAL_INT16(32767, -32768);
3439     VERIFY_FAILS_END
3440 }
3441 
testGreaterOrEqualINT32(void)3442 void testGreaterOrEqualINT32(void)
3443 {
3444     UNITY_INT32 v0, v1, v2;
3445     UNITY_INT32 *p0, *p1, *p2;
3446 
3447     v0 = -214783648;
3448     v1 = 214783647;
3449     v2 = -214783648;
3450     p0 = &v0;
3451     p1 = &v1;
3452     p2 = &v2;
3453 
3454     TEST_ASSERT_GREATER_OR_EQUAL_INT32(v0, v1);
3455     TEST_ASSERT_GREATER_OR_EQUAL_INT32(*p0, v1);
3456     TEST_ASSERT_GREATER_OR_EQUAL_INT32(v0, *p1);
3457     TEST_ASSERT_GREATER_OR_EQUAL_INT32(*p0, *p1);
3458     TEST_ASSERT_GREATER_OR_EQUAL_INT32(v0, v2);
3459     TEST_ASSERT_GREATER_OR_EQUAL_INT32(*p0, v2);
3460     TEST_ASSERT_GREATER_OR_EQUAL_INT32(v0, *p2);
3461     TEST_ASSERT_GREATER_OR_EQUAL_INT32(*p0, *p2);
3462 }
3463 
testNotGreaterOrEqualINT32(void)3464 void testNotGreaterOrEqualINT32(void)
3465 {
3466     EXPECT_ABORT_BEGIN
3467     TEST_ASSERT_GREATER_OR_EQUAL_INT32(214783647, -214783648);
3468     VERIFY_FAILS_END
3469 }
3470 
testGreaterOrEqualUINT(void)3471 void testGreaterOrEqualUINT(void)
3472 {
3473     UNITY_UINT v0, v1, v2;
3474     UNITY_UINT *p0, *p1, *p2;
3475 
3476     v0 = 0;
3477     v1 = 1;
3478     v2 = 0;
3479     p0 = &v0;
3480     p1 = &v1;
3481     p2 = &v2;
3482 
3483     TEST_ASSERT_GREATER_OR_EQUAL_UINT(v0, v1);
3484     TEST_ASSERT_GREATER_OR_EQUAL_UINT(*p0, v1);
3485     TEST_ASSERT_GREATER_OR_EQUAL_UINT(v0, *p1);
3486     TEST_ASSERT_GREATER_OR_EQUAL_UINT(*p0, *p1);
3487     TEST_ASSERT_GREATER_OR_EQUAL_UINT(v0, v2);
3488     TEST_ASSERT_GREATER_OR_EQUAL_UINT(*p0, v2);
3489     TEST_ASSERT_GREATER_OR_EQUAL_UINT(v0, *p2);
3490     TEST_ASSERT_GREATER_OR_EQUAL_UINT(*p0, *p2);
3491 }
3492 
testNotGreaterOrEqualUINT(void)3493 void testNotGreaterOrEqualUINT(void)
3494 {
3495     EXPECT_ABORT_BEGIN
3496     TEST_ASSERT_GREATER_OR_EQUAL_UINT(1, 0);
3497     VERIFY_FAILS_END
3498 }
3499 
testGreaterOrEqualUINT8(void)3500 void testGreaterOrEqualUINT8(void)
3501 {
3502     UNITY_UINT8 v0, v1, v2;
3503     UNITY_UINT8 *p0, *p1, *p2;
3504 
3505     v0 = 0;
3506     v1 = 255;
3507     v2 = 0;
3508     p0 = &v0;
3509     p1 = &v1;
3510     p2 = &v2;
3511 
3512     TEST_ASSERT_GREATER_OR_EQUAL_UINT8(v0, v1);
3513     TEST_ASSERT_GREATER_OR_EQUAL_UINT8(*p0, v1);
3514     TEST_ASSERT_GREATER_OR_EQUAL_UINT8(v0, *p1);
3515     TEST_ASSERT_GREATER_OR_EQUAL_UINT8(*p0, *p1);
3516     TEST_ASSERT_GREATER_OR_EQUAL_UINT8(v0, v2);
3517     TEST_ASSERT_GREATER_OR_EQUAL_UINT8(*p0, v2);
3518     TEST_ASSERT_GREATER_OR_EQUAL_UINT8(v0, *p2);
3519     TEST_ASSERT_GREATER_OR_EQUAL_UINT8(*p0, *p2);
3520 }
3521 
testNotGreaterOrEqualUINT8(void)3522 void testNotGreaterOrEqualUINT8(void)
3523 {
3524     EXPECT_ABORT_BEGIN
3525     TEST_ASSERT_GREATER_OR_EQUAL_UINT8(255, 0);
3526     VERIFY_FAILS_END
3527 }
3528 
testGreaterOrEqualUINT16(void)3529 void testGreaterOrEqualUINT16(void)
3530 {
3531     UNITY_UINT16 v0, v1, v2;
3532     UNITY_UINT16 *p0, *p1, *p2;
3533 
3534     v0 = 0;
3535     v1 = 65535;
3536     v2 = 0;
3537     p0 = &v0;
3538     p1 = &v1;
3539     p2 = &v2;
3540 
3541     TEST_ASSERT_GREATER_OR_EQUAL_UINT16(v0, v1);
3542     TEST_ASSERT_GREATER_OR_EQUAL_UINT16(*p0, v1);
3543     TEST_ASSERT_GREATER_OR_EQUAL_UINT16(v0, *p1);
3544     TEST_ASSERT_GREATER_OR_EQUAL_UINT16(*p0, *p1);
3545     TEST_ASSERT_GREATER_OR_EQUAL_UINT16(v0, v2);
3546     TEST_ASSERT_GREATER_OR_EQUAL_UINT16(*p0, v2);
3547     TEST_ASSERT_GREATER_OR_EQUAL_UINT16(v0, *p2);
3548     TEST_ASSERT_GREATER_OR_EQUAL_UINT16(*p0, *p2);
3549 }
3550 
testNotGreaterOrEqualUINT16(void)3551 void testNotGreaterOrEqualUINT16(void)
3552 {
3553     EXPECT_ABORT_BEGIN
3554     TEST_ASSERT_GREATER_OR_EQUAL_UINT16(65535, 0);
3555     VERIFY_FAILS_END
3556 }
3557 
testGreaterOrEqualUINT32(void)3558 void testGreaterOrEqualUINT32(void)
3559 {
3560     UNITY_UINT32 v0, v1, v2;
3561     UNITY_UINT32 *p0, *p1, *p2;
3562 
3563     v0 = 0;
3564     v1 = 4294967295u;
3565     v2 = 0;
3566     p0 = &v0;
3567     p1 = &v1;
3568     p2 = &v2;
3569 
3570     TEST_ASSERT_GREATER_OR_EQUAL_UINT32(v0, v1);
3571     TEST_ASSERT_GREATER_OR_EQUAL_UINT32(*p0, v1);
3572     TEST_ASSERT_GREATER_OR_EQUAL_UINT32(v0, *p1);
3573     TEST_ASSERT_GREATER_OR_EQUAL_UINT32(*p0, *p1);
3574     TEST_ASSERT_GREATER_OR_EQUAL_UINT32(v0, v2);
3575     TEST_ASSERT_GREATER_OR_EQUAL_UINT32(*p0, v2);
3576     TEST_ASSERT_GREATER_OR_EQUAL_UINT32(v0, *p2);
3577     TEST_ASSERT_GREATER_OR_EQUAL_UINT32(*p0, *p2);
3578 }
3579 
testNotGreaterOrEqualUINT32(void)3580 void testNotGreaterOrEqualUINT32(void)
3581 {
3582     EXPECT_ABORT_BEGIN
3583     TEST_ASSERT_GREATER_OR_EQUAL_UINT32(4294967295u, 0);
3584     VERIFY_FAILS_END
3585 }
3586 
testGreaterOrEqualHEX8(void)3587 void testGreaterOrEqualHEX8(void)
3588 {
3589     UNITY_UINT8 v0, v1, v2;
3590     UNITY_UINT8 *p0, *p1, *p2;
3591 
3592     v0 = 0x00;
3593     v1 = 0xFF;
3594     v2 = 0x00;
3595     p0 = &v0;
3596     p1 = &v1;
3597     p2 = &v2;
3598 
3599     TEST_ASSERT_GREATER_OR_EQUAL_HEX8(v0, v1);
3600     TEST_ASSERT_GREATER_OR_EQUAL_HEX8(*p0, v1);
3601     TEST_ASSERT_GREATER_OR_EQUAL_HEX8(v0, *p1);
3602     TEST_ASSERT_GREATER_OR_EQUAL_HEX8(*p0, *p1);
3603     TEST_ASSERT_GREATER_OR_EQUAL_HEX8(v0, v2);
3604     TEST_ASSERT_GREATER_OR_EQUAL_HEX8(*p0, v2);
3605     TEST_ASSERT_GREATER_OR_EQUAL_HEX8(v0, *p2);
3606     TEST_ASSERT_GREATER_OR_EQUAL_HEX8(*p0, *p2);
3607 }
3608 
testNotGreaterOrEqualHEX8(void)3609 void testNotGreaterOrEqualHEX8(void)
3610 {
3611     EXPECT_ABORT_BEGIN
3612     TEST_ASSERT_GREATER_OR_EQUAL_HEX8(0xFF, 0x00);
3613     VERIFY_FAILS_END
3614 }
3615 
testGreaterOrEqualHEX16(void)3616 void testGreaterOrEqualHEX16(void)
3617 {
3618     UNITY_UINT16 v0, v1, v2;
3619     UNITY_UINT16 *p0, *p1, *p2;
3620 
3621     v0 = 0x0000;
3622     v1 = 0xFFFF;
3623     v2 = 0x0000;
3624     p0 = &v0;
3625     p1 = &v1;
3626     p2 = &v2;
3627 
3628     TEST_ASSERT_GREATER_OR_EQUAL_HEX16(v0, v1);
3629     TEST_ASSERT_GREATER_OR_EQUAL_HEX16(*p0, v1);
3630     TEST_ASSERT_GREATER_OR_EQUAL_HEX16(v0, *p1);
3631     TEST_ASSERT_GREATER_OR_EQUAL_HEX16(*p0, *p1);
3632     TEST_ASSERT_GREATER_OR_EQUAL_HEX16(v0, v2);
3633     TEST_ASSERT_GREATER_OR_EQUAL_HEX16(*p0, v2);
3634     TEST_ASSERT_GREATER_OR_EQUAL_HEX16(v0, *p2);
3635     TEST_ASSERT_GREATER_OR_EQUAL_HEX16(*p0, *p2);
3636 }
3637 
testNotGreaterOrEqualHEX16(void)3638 void testNotGreaterOrEqualHEX16(void)
3639 {
3640     EXPECT_ABORT_BEGIN
3641     TEST_ASSERT_GREATER_OR_EQUAL_HEX16(0xFFFF, 0x00);
3642     VERIFY_FAILS_END
3643 }
3644 
testGreaterOrEqualHEX32(void)3645 void testGreaterOrEqualHEX32(void)
3646 {
3647     UNITY_UINT32 v0, v1, v2;
3648     UNITY_UINT32 *p0, *p1, *p2;
3649 
3650     v0 = 0x00000000;
3651     v1 = 0xFFFFFFFF;
3652     v2 = 0x00000000;
3653     p0 = &v0;
3654     p1 = &v1;
3655     p2 = &v2;
3656 
3657     TEST_ASSERT_GREATER_OR_EQUAL_HEX32(v0, v1);
3658     TEST_ASSERT_GREATER_OR_EQUAL_HEX32(*p0, v1);
3659     TEST_ASSERT_GREATER_OR_EQUAL_HEX32(v0, *p1);
3660     TEST_ASSERT_GREATER_OR_EQUAL_HEX32(*p0, *p1);
3661     TEST_ASSERT_GREATER_OR_EQUAL_HEX32(v0, v2);
3662     TEST_ASSERT_GREATER_OR_EQUAL_HEX32(*p0, v2);
3663     TEST_ASSERT_GREATER_OR_EQUAL_HEX32(v0, *p2);
3664     TEST_ASSERT_GREATER_OR_EQUAL_HEX32(*p0, *p2);
3665 }
3666 
testNotGreaterOrEqualHEX32(void)3667 void testNotGreaterOrEqualHEX32(void)
3668 {
3669     EXPECT_ABORT_BEGIN
3670     TEST_ASSERT_GREATER_OR_EQUAL_HEX32(0xFFFFFFFF, 0x00);
3671     VERIFY_FAILS_END
3672 }
3673 
3674 /*-----------------*/
3675 
testLessThan(void)3676 void testLessThan(void)
3677 {
3678     UNITY_INT v0, v1;
3679     UNITY_INT *p0, *p1;
3680 
3681     v0 = 0;
3682     v1 = -1;
3683     p0 = &v0;
3684     p1 = &v1;
3685 
3686     TEST_ASSERT_LESS_THAN(v0, v1);
3687     TEST_ASSERT_LESS_THAN(*p0, v1);
3688     TEST_ASSERT_LESS_THAN(v0, *p1);
3689     TEST_ASSERT_LESS_THAN(*p0, *p1);
3690 }
3691 
testNotLessThan(void)3692 void testNotLessThan(void)
3693 {
3694     EXPECT_ABORT_BEGIN
3695     TEST_ASSERT_LESS_THAN(0, 1);
3696     VERIFY_FAILS_END
3697 }
3698 
testLessThanINT(void)3699 void testLessThanINT(void)
3700 {
3701     UNITY_INT v0, v1;
3702     UNITY_INT *p0, *p1;
3703 
3704     v0 = 3334;
3705     v1 = 302;
3706     p0 = &v0;
3707     p1 = &v1;
3708 
3709     TEST_ASSERT_LESS_THAN_INT(v0, v1);
3710     TEST_ASSERT_LESS_THAN_INT(*p0, v1);
3711     TEST_ASSERT_LESS_THAN_INT(v0, *p1);
3712     TEST_ASSERT_LESS_THAN_INT(*p0, *p1);
3713 }
3714 
testNotLessThanINT(void)3715 void testNotLessThanINT(void)
3716 {
3717     EXPECT_ABORT_BEGIN
3718     TEST_ASSERT_LESS_THAN_INT(302, 3334);
3719     VERIFY_FAILS_END
3720 }
3721 
testLessThanINT8(void)3722 void testLessThanINT8(void)
3723 {
3724     UNITY_INT8 v0, v1;
3725     UNITY_INT8 *p0, *p1;
3726 
3727     v0 = 127;
3728     v1 = -128;
3729     p0 = &v0;
3730     p1 = &v1;
3731 
3732     TEST_ASSERT_LESS_THAN_INT8(v0, v1);
3733     TEST_ASSERT_LESS_THAN_INT8(*p0, v1);
3734     TEST_ASSERT_LESS_THAN_INT8(v0, *p1);
3735     TEST_ASSERT_LESS_THAN_INT8(*p0, *p1);
3736 }
3737 
testNotLessThanINT8(void)3738 void testNotLessThanINT8(void)
3739 {
3740     EXPECT_ABORT_BEGIN
3741     TEST_ASSERT_LESS_THAN_INT8(-128, 127);
3742     VERIFY_FAILS_END
3743 }
3744 
testLessThanCHAR(void)3745 void testLessThanCHAR(void)
3746 {
3747     char v0, v1;
3748     char *p0, *p1;
3749 
3750     v0 = 127;
3751     v1 = -128;
3752     p0 = &v0;
3753     p1 = &v1;
3754 
3755     TEST_ASSERT_LESS_THAN_CHAR(v0, v1);
3756     TEST_ASSERT_LESS_THAN_CHAR(*p0, v1);
3757     TEST_ASSERT_LESS_THAN_CHAR(v0, *p1);
3758     TEST_ASSERT_LESS_THAN_CHAR(*p0, *p1);
3759 }
3760 
testNotLessThanCHAR(void)3761 void testNotLessThanCHAR(void)
3762 {
3763     EXPECT_ABORT_BEGIN
3764     TEST_ASSERT_LESS_THAN_CHAR(-128, 127);
3765     VERIFY_FAILS_END
3766 }
3767 
testLessThanINT16(void)3768 void testLessThanINT16(void)
3769 {
3770     UNITY_INT16 v0, v1;
3771     UNITY_INT16 *p0, *p1;
3772 
3773     v0 = 32767;
3774     v1 = -32768;
3775     p0 = &v0;
3776     p1 = &v1;
3777 
3778     TEST_ASSERT_LESS_THAN_INT16(v0, v1);
3779     TEST_ASSERT_LESS_THAN_INT16(*p0, v1);
3780     TEST_ASSERT_LESS_THAN_INT16(v0, *p1);
3781     TEST_ASSERT_LESS_THAN_INT16(*p0, *p1);
3782 }
3783 
testNotLessThanINT16(void)3784 void testNotLessThanINT16(void)
3785 {
3786     EXPECT_ABORT_BEGIN
3787     TEST_ASSERT_LESS_THAN_INT16(-32768, 32767);
3788     VERIFY_FAILS_END
3789 }
3790 
testLessThanINT32(void)3791 void testLessThanINT32(void)
3792 {
3793     UNITY_INT32 v0, v1;
3794     UNITY_INT32 *p0, *p1;
3795 
3796     v0 = 214783647;
3797     v1 = -214783648;
3798     p0 = &v0;
3799     p1 = &v1;
3800 
3801     TEST_ASSERT_LESS_THAN_INT32(v0, v1);
3802     TEST_ASSERT_LESS_THAN_INT32(*p0, v1);
3803     TEST_ASSERT_LESS_THAN_INT32(v0, *p1);
3804     TEST_ASSERT_LESS_THAN_INT32(*p0, *p1);
3805 }
3806 
testNotLessThanINT32(void)3807 void testNotLessThanINT32(void)
3808 {
3809     EXPECT_ABORT_BEGIN
3810     TEST_ASSERT_LESS_THAN_INT32(-214783648, 214783647);
3811     VERIFY_FAILS_END
3812 }
3813 
testLessThanUINT(void)3814 void testLessThanUINT(void)
3815 {
3816     UNITY_UINT v0, v1;
3817     UNITY_UINT *p0, *p1;
3818 
3819     v0 = 1;
3820     v1 = 0;
3821     p0 = &v0;
3822     p1 = &v1;
3823 
3824     TEST_ASSERT_LESS_THAN_UINT(v0, v1);
3825     TEST_ASSERT_LESS_THAN_UINT(*p0, v1);
3826     TEST_ASSERT_LESS_THAN_UINT(v0, *p1);
3827     TEST_ASSERT_LESS_THAN_UINT(*p0, *p1);
3828 }
3829 
testNotLessThanUINT(void)3830 void testNotLessThanUINT(void)
3831 {
3832     EXPECT_ABORT_BEGIN
3833     TEST_ASSERT_LESS_THAN_UINT(0, 1);
3834     VERIFY_FAILS_END
3835 }
3836 
testLessThanUINT8(void)3837 void testLessThanUINT8(void)
3838 {
3839     UNITY_UINT8 v0, v1;
3840     UNITY_UINT8 *p0, *p1;
3841 
3842     v0 = 255;
3843     v1 = 0;
3844     p0 = &v0;
3845     p1 = &v1;
3846 
3847     TEST_ASSERT_LESS_THAN_UINT8(v0, v1);
3848     TEST_ASSERT_LESS_THAN_UINT8(*p0, v1);
3849     TEST_ASSERT_LESS_THAN_UINT8(v0, *p1);
3850     TEST_ASSERT_LESS_THAN_UINT8(*p0, *p1);
3851 }
3852 
testNotLessThanUINT8(void)3853 void testNotLessThanUINT8(void)
3854 {
3855     EXPECT_ABORT_BEGIN
3856     TEST_ASSERT_LESS_THAN_UINT8(0, 255);
3857     VERIFY_FAILS_END
3858 }
3859 
testLessThanUINT16(void)3860 void testLessThanUINT16(void)
3861 {
3862     UNITY_UINT16 v0, v1;
3863     UNITY_UINT16 *p0, *p1;
3864 
3865     v0 = 65535;
3866     v1 = 0;
3867     p0 = &v0;
3868     p1 = &v1;
3869 
3870     TEST_ASSERT_LESS_THAN_UINT16(v0, v1);
3871     TEST_ASSERT_LESS_THAN_UINT16(*p0, v1);
3872     TEST_ASSERT_LESS_THAN_UINT16(v0, *p1);
3873     TEST_ASSERT_LESS_THAN_UINT16(*p0, *p1);
3874 }
3875 
testNotLessThanUINT16(void)3876 void testNotLessThanUINT16(void)
3877 {
3878     EXPECT_ABORT_BEGIN
3879     TEST_ASSERT_LESS_THAN_UINT16(0, 65535);
3880     VERIFY_FAILS_END
3881 }
3882 
testLessThanUINT32(void)3883 void testLessThanUINT32(void)
3884 {
3885     UNITY_UINT32 v0, v1;
3886     UNITY_UINT32 *p0, *p1;
3887 
3888     v0 = 4294967295u;
3889     v1 = 0;
3890     p0 = &v0;
3891     p1 = &v1;
3892 
3893     TEST_ASSERT_LESS_THAN_UINT32(v0, v1);
3894     TEST_ASSERT_LESS_THAN_UINT32(*p0, v1);
3895     TEST_ASSERT_LESS_THAN_UINT32(v0, *p1);
3896     TEST_ASSERT_LESS_THAN_UINT32(*p0, *p1);
3897 }
3898 
testNotLessThanUINT32(void)3899 void testNotLessThanUINT32(void)
3900 {
3901     EXPECT_ABORT_BEGIN
3902     TEST_ASSERT_LESS_THAN_UINT32(0, 4294967295u);
3903     VERIFY_FAILS_END
3904 }
3905 
testLessThanHEX8(void)3906 void testLessThanHEX8(void)
3907 {
3908     UNITY_UINT8 v0, v1;
3909     UNITY_UINT8 *p0, *p1;
3910 
3911     v0 = 0xFF;
3912     v1 = 0x00;
3913     p0 = &v0;
3914     p1 = &v1;
3915 
3916     TEST_ASSERT_LESS_THAN_HEX8(v0, v1);
3917     TEST_ASSERT_LESS_THAN_HEX8(*p0, v1);
3918     TEST_ASSERT_LESS_THAN_HEX8(v0, *p1);
3919     TEST_ASSERT_LESS_THAN_HEX8(*p0, *p1);
3920 }
3921 
testNotLessThanHEX8(void)3922 void testNotLessThanHEX8(void)
3923 {
3924     EXPECT_ABORT_BEGIN
3925     TEST_ASSERT_LESS_THAN_HEX8(0x00, 0xFF);
3926     VERIFY_FAILS_END
3927 }
3928 
testLessThanHEX16(void)3929 void testLessThanHEX16(void)
3930 {
3931     UNITY_UINT16 v0, v1;
3932     UNITY_UINT16 *p0, *p1;
3933 
3934     v0 = 0xFFFF;
3935     v1 = 0x0000;
3936     p0 = &v0;
3937     p1 = &v1;
3938 
3939     TEST_ASSERT_LESS_THAN_HEX16(v0, v1);
3940     TEST_ASSERT_LESS_THAN_HEX16(*p0, v1);
3941     TEST_ASSERT_LESS_THAN_HEX16(v0, *p1);
3942     TEST_ASSERT_LESS_THAN_HEX16(*p0, *p1);
3943 }
3944 
testNotLessThanHEX16(void)3945 void testNotLessThanHEX16(void)
3946 {
3947     EXPECT_ABORT_BEGIN
3948     TEST_ASSERT_LESS_THAN_HEX16(0x0000, 0xFFFF);
3949     VERIFY_FAILS_END
3950 }
3951 
testLessThanHEX32(void)3952 void testLessThanHEX32(void)
3953 {
3954     UNITY_UINT32 v0, v1;
3955     UNITY_UINT32 *p0, *p1;
3956 
3957     v0 = 0xFFFFFFFF;
3958     v1 = 0x00000000;
3959     p0 = &v0;
3960     p1 = &v1;
3961 
3962     TEST_ASSERT_LESS_THAN_HEX32(v0, v1);
3963     TEST_ASSERT_LESS_THAN_HEX32(*p0, v1);
3964     TEST_ASSERT_LESS_THAN_HEX32(v0, *p1);
3965     TEST_ASSERT_LESS_THAN_HEX32(*p0, *p1);
3966 }
3967 
testNotLessThanHEX32(void)3968 void testNotLessThanHEX32(void)
3969 {
3970     EXPECT_ABORT_BEGIN
3971     TEST_ASSERT_LESS_THAN_HEX32(0x00000000, 0xFFFFFFFF);
3972     VERIFY_FAILS_END
3973 }
3974 
testLessOrEqual(void)3975 void testLessOrEqual(void)
3976 {
3977     UNITY_INT v0, v1, v2;
3978     UNITY_INT *p0, *p1, *p2;
3979 
3980     v0 = 0;
3981     v1 = -1;
3982     v2 = 0;
3983     p0 = &v0;
3984     p1 = &v1;
3985     p2 = &v2;
3986 
3987     TEST_ASSERT_LESS_OR_EQUAL(v0, v1);
3988     TEST_ASSERT_LESS_OR_EQUAL(*p0, v1);
3989     TEST_ASSERT_LESS_OR_EQUAL(v0, *p1);
3990     TEST_ASSERT_LESS_OR_EQUAL(*p0, *p1);
3991     TEST_ASSERT_LESS_OR_EQUAL(v0, v2);
3992     TEST_ASSERT_LESS_OR_EQUAL(*p0, v2);
3993     TEST_ASSERT_LESS_OR_EQUAL(v0, *p2);
3994     TEST_ASSERT_LESS_OR_EQUAL(*p0, *p2);
3995 }
3996 
testNotLessOrEqual(void)3997 void testNotLessOrEqual(void)
3998 {
3999     EXPECT_ABORT_BEGIN
4000     TEST_ASSERT_LESS_OR_EQUAL(0, 1);
4001     VERIFY_FAILS_END
4002 }
4003 
testLessOrEqualINT(void)4004 void testLessOrEqualINT(void)
4005 {
4006     UNITY_INT v0, v1, v2;
4007     UNITY_INT *p0, *p1, *p2;
4008 
4009     v0 = 3334;
4010     v1 = 302;
4011     v2 = 3334;
4012     p0 = &v0;
4013     p1 = &v1;
4014     p2 = &v2;
4015 
4016     TEST_ASSERT_LESS_OR_EQUAL_INT(v0, v1);
4017     TEST_ASSERT_LESS_OR_EQUAL_INT(*p0, v1);
4018     TEST_ASSERT_LESS_OR_EQUAL_INT(v0, *p1);
4019     TEST_ASSERT_LESS_OR_EQUAL_INT(*p0, *p1);
4020     TEST_ASSERT_LESS_OR_EQUAL_INT(v0, v2);
4021     TEST_ASSERT_LESS_OR_EQUAL_INT(*p0, v2);
4022     TEST_ASSERT_LESS_OR_EQUAL_INT(v0, *p2);
4023     TEST_ASSERT_LESS_OR_EQUAL_INT(*p0, *p2);
4024 }
4025 
testNotLessOrEqualINT(void)4026 void testNotLessOrEqualINT(void)
4027 {
4028     EXPECT_ABORT_BEGIN
4029     TEST_ASSERT_LESS_OR_EQUAL_INT(302, 3334);
4030     VERIFY_FAILS_END
4031 }
4032 
testLessOrEqualINT8(void)4033 void testLessOrEqualINT8(void)
4034 {
4035     UNITY_INT8 v0, v1, v2;
4036     UNITY_INT8 *p0, *p1, *p2;
4037 
4038     v0 = 127;
4039     v1 = -128;
4040     v2 = 127;
4041     p0 = &v0;
4042     p1 = &v1;
4043     p2 = &v2;
4044 
4045     TEST_ASSERT_LESS_OR_EQUAL_INT8(v0, v1);
4046     TEST_ASSERT_LESS_OR_EQUAL_INT8(*p0, v1);
4047     TEST_ASSERT_LESS_OR_EQUAL_INT8(v0, *p1);
4048     TEST_ASSERT_LESS_OR_EQUAL_INT8(*p0, *p1);
4049     TEST_ASSERT_LESS_OR_EQUAL_INT8(v0, v2);
4050     TEST_ASSERT_LESS_OR_EQUAL_INT8(*p0, v2);
4051     TEST_ASSERT_LESS_OR_EQUAL_INT8(v0, *p2);
4052     TEST_ASSERT_LESS_OR_EQUAL_INT8(*p0, *p2);
4053 }
4054 
testNotLessOrEqualINT8(void)4055 void testNotLessOrEqualINT8(void)
4056 {
4057     EXPECT_ABORT_BEGIN
4058     TEST_ASSERT_LESS_OR_EQUAL_INT8(-128, 127);
4059     VERIFY_FAILS_END
4060 }
4061 
testLessOrEqualCHAR(void)4062 void testLessOrEqualCHAR(void)
4063 {
4064     char v0, v1, v2;
4065     char *p0, *p1, *p2;
4066 
4067     v0 = 127;
4068     v1 = -128;
4069     v2 = 127;
4070     p0 = &v0;
4071     p1 = &v1;
4072     p2 = &v2;
4073 
4074     TEST_ASSERT_LESS_OR_EQUAL_CHAR(v0, v1);
4075     TEST_ASSERT_LESS_OR_EQUAL_CHAR(*p0, v1);
4076     TEST_ASSERT_LESS_OR_EQUAL_CHAR(v0, *p1);
4077     TEST_ASSERT_LESS_OR_EQUAL_CHAR(*p0, *p1);
4078     TEST_ASSERT_LESS_OR_EQUAL_CHAR(v0, v2);
4079     TEST_ASSERT_LESS_OR_EQUAL_CHAR(*p0, v2);
4080     TEST_ASSERT_LESS_OR_EQUAL_CHAR(v0, *p2);
4081     TEST_ASSERT_LESS_OR_EQUAL_CHAR(*p0, *p2);
4082 }
4083 
testNotLessOrEqualCHAR(void)4084 void testNotLessOrEqualCHAR(void)
4085 {
4086     EXPECT_ABORT_BEGIN
4087     TEST_ASSERT_LESS_OR_EQUAL_CHAR(-128, 127);
4088     VERIFY_FAILS_END
4089 }
4090 
testLessOrEqualINT16(void)4091 void testLessOrEqualINT16(void)
4092 {
4093     UNITY_INT16 v0, v1, v2;
4094     UNITY_INT16 *p0, *p1, *p2;
4095 
4096     v0 = 32767;
4097     v1 = -32768;
4098     v2 = 32767;
4099     p0 = &v0;
4100     p1 = &v1;
4101     p2 = &v2;
4102 
4103     TEST_ASSERT_LESS_OR_EQUAL_INT16(v0, v1);
4104     TEST_ASSERT_LESS_OR_EQUAL_INT16(*p0, v1);
4105     TEST_ASSERT_LESS_OR_EQUAL_INT16(v0, *p1);
4106     TEST_ASSERT_LESS_OR_EQUAL_INT16(*p0, *p1);
4107     TEST_ASSERT_LESS_OR_EQUAL_INT16(v0, v2);
4108     TEST_ASSERT_LESS_OR_EQUAL_INT16(*p0, v2);
4109     TEST_ASSERT_LESS_OR_EQUAL_INT16(v0, *p2);
4110     TEST_ASSERT_LESS_OR_EQUAL_INT16(*p0, *p2);
4111 }
4112 
testNotLessOrEqualINT16(void)4113 void testNotLessOrEqualINT16(void)
4114 {
4115     EXPECT_ABORT_BEGIN
4116     TEST_ASSERT_LESS_OR_EQUAL_INT16(-32768, 32767);
4117     VERIFY_FAILS_END
4118 }
4119 
testLessOrEqualINT32(void)4120 void testLessOrEqualINT32(void)
4121 {
4122     UNITY_INT32 v0, v1, v2;
4123     UNITY_INT32 *p0, *p1, *p2;
4124 
4125     v0 = 214783647;
4126     v1 = -214783648;
4127     v2 = 214783647;
4128     p0 = &v0;
4129     p1 = &v1;
4130     p2 = &v2;
4131 
4132     TEST_ASSERT_LESS_OR_EQUAL_INT32(v0, v1);
4133     TEST_ASSERT_LESS_OR_EQUAL_INT32(*p0, v1);
4134     TEST_ASSERT_LESS_OR_EQUAL_INT32(v0, *p1);
4135     TEST_ASSERT_LESS_OR_EQUAL_INT32(*p0, *p1);
4136     TEST_ASSERT_LESS_OR_EQUAL_INT32(v0, v2);
4137     TEST_ASSERT_LESS_OR_EQUAL_INT32(*p0, v2);
4138     TEST_ASSERT_LESS_OR_EQUAL_INT32(v0, *p2);
4139     TEST_ASSERT_LESS_OR_EQUAL_INT32(*p0, *p2);
4140 }
4141 
testNotLessOrEqualINT32(void)4142 void testNotLessOrEqualINT32(void)
4143 {
4144     EXPECT_ABORT_BEGIN
4145     TEST_ASSERT_LESS_OR_EQUAL_INT32(-214783648, 214783647);
4146     VERIFY_FAILS_END
4147 }
4148 
testLessOrEqualUINT(void)4149 void testLessOrEqualUINT(void)
4150 {
4151     UNITY_UINT v0, v1, v2;
4152     UNITY_UINT *p0, *p1, *p2;
4153 
4154     v0 = 1;
4155     v1 = 0;
4156     v2 = 1;
4157     p0 = &v0;
4158     p1 = &v1;
4159     p2 = &v2;
4160 
4161     TEST_ASSERT_LESS_OR_EQUAL_UINT(v0, v1);
4162     TEST_ASSERT_LESS_OR_EQUAL_UINT(*p0, v1);
4163     TEST_ASSERT_LESS_OR_EQUAL_UINT(v0, *p1);
4164     TEST_ASSERT_LESS_OR_EQUAL_UINT(*p0, *p1);
4165     TEST_ASSERT_LESS_OR_EQUAL_UINT(v0, v2);
4166     TEST_ASSERT_LESS_OR_EQUAL_UINT(*p0, v2);
4167     TEST_ASSERT_LESS_OR_EQUAL_UINT(v0, *p2);
4168     TEST_ASSERT_LESS_OR_EQUAL_UINT(*p0, *p2);
4169 }
4170 
testNotLessOrEqualUINT(void)4171 void testNotLessOrEqualUINT(void)
4172 {
4173     EXPECT_ABORT_BEGIN
4174     TEST_ASSERT_LESS_OR_EQUAL_UINT(0, 1);
4175     VERIFY_FAILS_END
4176 }
4177 
testLessOrEqualUINT8(void)4178 void testLessOrEqualUINT8(void)
4179 {
4180     UNITY_UINT8 v0, v1, v2;
4181     UNITY_UINT8 *p0, *p1, *p2;
4182 
4183     v0 = 255;
4184     v1 = 0;
4185     v2 = 255;
4186     p0 = &v0;
4187     p1 = &v1;
4188     p2 = &v2;
4189 
4190     TEST_ASSERT_LESS_OR_EQUAL_UINT8(v0, v1);
4191     TEST_ASSERT_LESS_OR_EQUAL_UINT8(*p0, v1);
4192     TEST_ASSERT_LESS_OR_EQUAL_UINT8(v0, *p1);
4193     TEST_ASSERT_LESS_OR_EQUAL_UINT8(*p0, *p1);
4194     TEST_ASSERT_LESS_OR_EQUAL_UINT8(v0, v2);
4195     TEST_ASSERT_LESS_OR_EQUAL_UINT8(*p0, v2);
4196     TEST_ASSERT_LESS_OR_EQUAL_UINT8(v0, *p2);
4197     TEST_ASSERT_LESS_OR_EQUAL_UINT8(*p0, *p2);
4198 }
4199 
testNotLessOrEqualUINT8(void)4200 void testNotLessOrEqualUINT8(void)
4201 {
4202     EXPECT_ABORT_BEGIN
4203     TEST_ASSERT_LESS_OR_EQUAL_UINT8(0, 255);
4204     VERIFY_FAILS_END
4205 }
4206 
testLessOrEqualUINT16(void)4207 void testLessOrEqualUINT16(void)
4208 {
4209     UNITY_UINT16 v0, v1, v2;
4210     UNITY_UINT16 *p0, *p1, *p2;
4211 
4212     v0 = 65535;
4213     v1 = 0;
4214     v2 = 65535;
4215     p0 = &v0;
4216     p1 = &v1;
4217     p2 = &v2;
4218 
4219     TEST_ASSERT_LESS_OR_EQUAL_UINT16(v0, v1);
4220     TEST_ASSERT_LESS_OR_EQUAL_UINT16(*p0, v1);
4221     TEST_ASSERT_LESS_OR_EQUAL_UINT16(v0, *p1);
4222     TEST_ASSERT_LESS_OR_EQUAL_UINT16(*p0, *p1);
4223     TEST_ASSERT_LESS_OR_EQUAL_UINT16(v0, v2);
4224     TEST_ASSERT_LESS_OR_EQUAL_UINT16(*p0, v2);
4225     TEST_ASSERT_LESS_OR_EQUAL_UINT16(v0, *p2);
4226     TEST_ASSERT_LESS_OR_EQUAL_UINT16(*p0, *p2);
4227 }
4228 
testNotLessOrEqualUINT16(void)4229 void testNotLessOrEqualUINT16(void)
4230 {
4231     EXPECT_ABORT_BEGIN
4232     TEST_ASSERT_LESS_OR_EQUAL_UINT16(0, 65535);
4233     VERIFY_FAILS_END
4234 }
4235 
testLessOrEqualUINT32(void)4236 void testLessOrEqualUINT32(void)
4237 {
4238     UNITY_UINT32 v0, v1, v2;
4239     UNITY_UINT32 *p0, *p1, *p2;
4240 
4241     v0 = 4294967295u;
4242     v1 = 0;
4243     v2 = 4294967295u;
4244     p0 = &v0;
4245     p1 = &v1;
4246     p2 = &v2;
4247 
4248     TEST_ASSERT_LESS_OR_EQUAL_UINT32(v0, v1);
4249     TEST_ASSERT_LESS_OR_EQUAL_UINT32(*p0, v1);
4250     TEST_ASSERT_LESS_OR_EQUAL_UINT32(v0, *p1);
4251     TEST_ASSERT_LESS_OR_EQUAL_UINT32(*p0, *p1);
4252     TEST_ASSERT_LESS_OR_EQUAL_UINT32(v0, v2);
4253     TEST_ASSERT_LESS_OR_EQUAL_UINT32(*p0, v2);
4254     TEST_ASSERT_LESS_OR_EQUAL_UINT32(v0, *p2);
4255     TEST_ASSERT_LESS_OR_EQUAL_UINT32(*p0, *p2);
4256 }
4257 
testNotLessOrEqualUINT32(void)4258 void testNotLessOrEqualUINT32(void)
4259 {
4260     EXPECT_ABORT_BEGIN
4261     TEST_ASSERT_LESS_OR_EQUAL_UINT32(0, 4294967295u);
4262     VERIFY_FAILS_END
4263 }
4264 
testLessOrEqualHEX8(void)4265 void testLessOrEqualHEX8(void)
4266 {
4267     UNITY_UINT8 v0, v1, v2;
4268     UNITY_UINT8 *p0, *p1, *p2;
4269 
4270     v0 = 0xFF;
4271     v1 = 0x00;
4272     v2 = 0xFF;
4273     p0 = &v0;
4274     p1 = &v1;
4275     p2 = &v2;
4276 
4277     TEST_ASSERT_LESS_OR_EQUAL_HEX8(v0, v1);
4278     TEST_ASSERT_LESS_OR_EQUAL_HEX8(*p0, v1);
4279     TEST_ASSERT_LESS_OR_EQUAL_HEX8(v0, *p1);
4280     TEST_ASSERT_LESS_OR_EQUAL_HEX8(*p0, *p1);
4281     TEST_ASSERT_LESS_OR_EQUAL_HEX8(v0, v2);
4282     TEST_ASSERT_LESS_OR_EQUAL_HEX8(*p0, v2);
4283     TEST_ASSERT_LESS_OR_EQUAL_HEX8(v0, *p2);
4284     TEST_ASSERT_LESS_OR_EQUAL_HEX8(*p0, *p2);
4285 }
4286 
testNotLessOrEqualHEX8(void)4287 void testNotLessOrEqualHEX8(void)
4288 {
4289     EXPECT_ABORT_BEGIN
4290     TEST_ASSERT_LESS_OR_EQUAL_HEX8(0x00, 0xFF);
4291     VERIFY_FAILS_END
4292 }
4293 
testLessOrEqualHEX16(void)4294 void testLessOrEqualHEX16(void)
4295 {
4296     UNITY_UINT16 v0, v1, v2;
4297     UNITY_UINT16 *p0, *p1, *p2;
4298 
4299     v0 = 0xFFFF;
4300     v1 = 0x0000;
4301     v2 = 0xFFFF;
4302     p0 = &v0;
4303     p1 = &v1;
4304     p2 = &v2;
4305 
4306     TEST_ASSERT_LESS_OR_EQUAL_HEX16(v0, v1);
4307     TEST_ASSERT_LESS_OR_EQUAL_HEX16(*p0, v1);
4308     TEST_ASSERT_LESS_OR_EQUAL_HEX16(v0, *p1);
4309     TEST_ASSERT_LESS_OR_EQUAL_HEX16(*p0, *p1);
4310     TEST_ASSERT_LESS_OR_EQUAL_HEX16(v0, v2);
4311     TEST_ASSERT_LESS_OR_EQUAL_HEX16(*p0, v2);
4312     TEST_ASSERT_LESS_OR_EQUAL_HEX16(v0, *p2);
4313     TEST_ASSERT_LESS_OR_EQUAL_HEX16(*p0, *p2);
4314 }
4315 
testNotLessOrEqualHEX16(void)4316 void testNotLessOrEqualHEX16(void)
4317 {
4318     EXPECT_ABORT_BEGIN
4319     TEST_ASSERT_LESS_OR_EQUAL_HEX16(0x0000, 0xFFFF);
4320     VERIFY_FAILS_END
4321 }
4322 
testLessOrEqualHEX32(void)4323 void testLessOrEqualHEX32(void)
4324 {
4325     UNITY_UINT32 v0, v1, v2;
4326     UNITY_UINT32 *p0, *p1, *p2;
4327 
4328     v0 = 0xFFFFFFFF;
4329     v1 = 0x00000000;
4330     v2 = 0xFFFFFFFF;
4331     p0 = &v0;
4332     p1 = &v1;
4333     p2 = &v2;
4334 
4335     TEST_ASSERT_LESS_OR_EQUAL_HEX32(v0, v1);
4336     TEST_ASSERT_LESS_OR_EQUAL_HEX32(*p0, v1);
4337     TEST_ASSERT_LESS_OR_EQUAL_HEX32(v0, *p1);
4338     TEST_ASSERT_LESS_OR_EQUAL_HEX32(*p0, *p1);
4339     TEST_ASSERT_LESS_OR_EQUAL_HEX32(v0, v2);
4340     TEST_ASSERT_LESS_OR_EQUAL_HEX32(*p0, v2);
4341     TEST_ASSERT_LESS_OR_EQUAL_HEX32(v0, *p2);
4342     TEST_ASSERT_LESS_OR_EQUAL_HEX32(*p0, *p2);
4343 }
4344 
testNotLessOrEqualHEX32(void)4345 void testNotLessOrEqualHEX32(void)
4346 {
4347     EXPECT_ABORT_BEGIN
4348     TEST_ASSERT_LESS_OR_EQUAL_HEX32(0x00000000, 0xFFFFFFFF);
4349     VERIFY_FAILS_END
4350 }
4351 
4352 /*-----------------*/
4353 
testEqualStrings(void)4354 void testEqualStrings(void)
4355 {
4356     const char *testString = "foo";
4357 
4358     TEST_ASSERT_EQUAL_STRING(testString, testString);
4359     TEST_ASSERT_EQUAL_STRING_MESSAGE("foo", "foo", "foo isn't foo");
4360     TEST_ASSERT_EQUAL_STRING("foo", testString);
4361     TEST_ASSERT_EQUAL_STRING(testString, "foo");
4362     TEST_ASSERT_EQUAL_STRING("", "");
4363 }
4364 
testEqualStringsLen(void)4365 void testEqualStringsLen(void)
4366 {
4367     const char *testString = "foobar";
4368     TEST_ASSERT_EQUAL_STRING_LEN(testString, testString, strlen(testString));
4369     TEST_ASSERT_EQUAL_STRING_LEN_MESSAGE("foobar", "foobaz", 5, "fooba isn't fooba");
4370     TEST_ASSERT_EQUAL_STRING_LEN("foo", testString, 3);
4371     TEST_ASSERT_EQUAL_STRING_LEN(testString, "foo", 3);
4372     TEST_ASSERT_EQUAL_STRING_LEN("", "", 3);
4373 }
4374 
testEqualStringsWithCarriageReturnsAndLineFeeds(void)4375 void testEqualStringsWithCarriageReturnsAndLineFeeds(void)
4376 {
4377     const char *testString = "foo\r\nbar";
4378 
4379     TEST_ASSERT_EQUAL_STRING(testString, testString);
4380     TEST_ASSERT_EQUAL_STRING("foo\r\nbar", "foo\r\nbar");
4381     TEST_ASSERT_EQUAL_STRING("foo\r\nbar", testString);
4382     TEST_ASSERT_EQUAL_STRING(testString, "foo\r\nbar");
4383     TEST_ASSERT_EQUAL_STRING("", "");
4384 }
4385 
testNotEqualString1(void)4386 void testNotEqualString1(void)
4387 {
4388     EXPECT_ABORT_BEGIN
4389     TEST_ASSERT_EQUAL_STRING("foo", "bar");
4390     VERIFY_FAILS_END
4391 }
4392 
testNotEqualStringLen1(void)4393 void testNotEqualStringLen1(void)
4394 {
4395     EXPECT_ABORT_BEGIN
4396     TEST_ASSERT_EQUAL_STRING_LEN("foobar", "foobaz", 6);
4397     VERIFY_FAILS_END
4398 }
4399 
testNotEqualString2(void)4400 void testNotEqualString2(void)
4401 {
4402     EXPECT_ABORT_BEGIN
4403     TEST_ASSERT_EQUAL_STRING("foo", "");
4404     VERIFY_FAILS_END
4405 }
4406 
testNotEqualStringLen2(void)4407 void testNotEqualStringLen2(void)
4408 {
4409     EXPECT_ABORT_BEGIN
4410     TEST_ASSERT_EQUAL_STRING_LEN("foo", "", 3);
4411     VERIFY_FAILS_END
4412 }
4413 
testNotEqualString3(void)4414 void testNotEqualString3(void)
4415 {
4416     EXPECT_ABORT_BEGIN
4417     TEST_ASSERT_EQUAL_STRING("", "bar");
4418     VERIFY_FAILS_END
4419 }
4420 
testNotEqualStringLen3(void)4421 void testNotEqualStringLen3(void)
4422 {
4423     EXPECT_ABORT_BEGIN
4424     TEST_ASSERT_EQUAL_STRING_LEN("", "bar", 3);
4425     VERIFY_FAILS_END
4426 }
4427 
testNotEqualString4(void)4428 void testNotEqualString4(void)
4429 {
4430     EXPECT_ABORT_BEGIN
4431     TEST_ASSERT_EQUAL_STRING("bar\r", "bar\n");
4432     VERIFY_FAILS_END
4433 }
4434 
testNotEqualStringLen4(void)4435 void testNotEqualStringLen4(void)
4436 {
4437     EXPECT_ABORT_BEGIN
4438     TEST_ASSERT_EQUAL_STRING_LEN("ba\r\x16", "ba\r\n", 4);
4439     VERIFY_FAILS_END
4440 }
4441 
testNotEqualString5(void)4442 void testNotEqualString5(void)
4443 {
4444     const char str1[] = { 0x41, 0x42, 0x03, 0x00 };
4445     const char str2[] = { 0x41, 0x42, 0x04, 0x00 };
4446     EXPECT_ABORT_BEGIN
4447     TEST_ASSERT_EQUAL_STRING(str1, str2);
4448     VERIFY_FAILS_END
4449 }
4450 
testNotEqualString_ExpectedStringIsNull(void)4451 void testNotEqualString_ExpectedStringIsNull(void)
4452 {
4453     EXPECT_ABORT_BEGIN
4454     TEST_ASSERT_EQUAL_STRING(NULL, "bar");
4455     VERIFY_FAILS_END
4456 }
4457 
testNotEqualStringLen_ExpectedStringIsNull(void)4458 void testNotEqualStringLen_ExpectedStringIsNull(void)
4459 {
4460     EXPECT_ABORT_BEGIN
4461     TEST_ASSERT_EQUAL_STRING_LEN(NULL, "bar", 1);
4462     VERIFY_FAILS_END
4463 }
4464 
testNotEqualString_ActualStringIsNull(void)4465 void testNotEqualString_ActualStringIsNull(void)
4466 {
4467     EXPECT_ABORT_BEGIN
4468     TEST_ASSERT_EQUAL_STRING("foo", NULL);
4469     VERIFY_FAILS_END
4470 }
4471 
testNotEqualStringLen_ActualStringIsNull(void)4472 void testNotEqualStringLen_ActualStringIsNull(void)
4473 {
4474     EXPECT_ABORT_BEGIN
4475     TEST_ASSERT_EQUAL_STRING_LEN("foo", NULL, 1);
4476     VERIFY_FAILS_END
4477 }
4478 
testNotEqualString_ExpectedStringIsLonger(void)4479 void testNotEqualString_ExpectedStringIsLonger(void)
4480 {
4481     EXPECT_ABORT_BEGIN
4482     TEST_ASSERT_EQUAL_STRING("foo2", "foo");
4483     VERIFY_FAILS_END
4484 }
4485 
testNotEqualString_ActualStringIsLonger(void)4486 void testNotEqualString_ActualStringIsLonger(void)
4487 {
4488     EXPECT_ABORT_BEGIN
4489     TEST_ASSERT_EQUAL_STRING("foo", "foo2");
4490     VERIFY_FAILS_END
4491 }
4492 
testEqualStringArrays(void)4493 void testEqualStringArrays(void)
4494 {
4495     const char *testStrings[] = { "foo", "boo", "woo", "moo" };
4496     const char *expStrings[] = { "foo", "boo", "woo", "zoo" };
4497 
4498     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, expStrings, 3);
4499     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 3);
4500     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 2);
4501     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 1);
4502 }
4503 
testNotEqualStringArray1(void)4504 void testNotEqualStringArray1(void)
4505 {
4506     const char *testStrings[] = { "foo", "boo", "woo", "moo" };
4507     const char *expStrings[] = { "foo", "boo", "woo", "zoo" };
4508 
4509     EXPECT_ABORT_BEGIN
4510     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4);
4511     VERIFY_FAILS_END
4512 }
4513 
testNotEqualStringArray2(void)4514 void testNotEqualStringArray2(void)
4515 {
4516     const char *testStrings[] = { "zoo", "boo", "woo", "moo" };
4517     const char *expStrings[] = { "foo", "boo", "woo", "moo" };
4518 
4519     EXPECT_ABORT_BEGIN
4520     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4);
4521     VERIFY_FAILS_END
4522 }
4523 
testNotEqualStringArray3(void)4524 void testNotEqualStringArray3(void)
4525 {
4526     const char *testStrings[] = { "foo", "boo", "woo", NULL };
4527     const char *expStrings[] = { "foo", "boo", "woo", "zoo" };
4528 
4529     EXPECT_ABORT_BEGIN
4530     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4);
4531     VERIFY_FAILS_END
4532 }
4533 
testNotEqualStringArray4(void)4534 void testNotEqualStringArray4(void)
4535 {
4536     const char *testStrings[] = { "foo", "boo", "woo", "moo" };
4537     const char *expStrings[] = { "foo", NULL, "woo", "moo" };
4538 
4539     EXPECT_ABORT_BEGIN
4540     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4);
4541     VERIFY_FAILS_END
4542 }
4543 
testNotEqualStringArray5(void)4544 void testNotEqualStringArray5(void)
4545 {
4546     const char **testStrings = NULL;
4547     const char *expStrings[] = { "foo", "boo", "woo", "zoo" };
4548 
4549     EXPECT_ABORT_BEGIN
4550     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4);
4551     VERIFY_FAILS_END
4552 }
4553 
testNotEqualStringArray6(void)4554 void testNotEqualStringArray6(void)
4555 {
4556     const char *testStrings[] = { "foo", "boo", "woo", "zoo" };
4557     const char **expStrings = NULL;
4558 
4559     EXPECT_ABORT_BEGIN
4560     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4);
4561     VERIFY_FAILS_END
4562 }
4563 
testEqualStringArrayIfBothNulls(void)4564 void testEqualStringArrayIfBothNulls(void)
4565 {
4566     const char **testStrings = NULL;
4567     const char **expStrings = NULL;
4568 
4569     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4);
4570 }
4571 
testNotEqualStringArrayLengthZero(void)4572 void testNotEqualStringArrayLengthZero(void)
4573 {
4574     const char *testStrings[] = {NULL};
4575     const char **expStrings = NULL;
4576 
4577     EXPECT_ABORT_BEGIN
4578     TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 0);
4579     VERIFY_FAILS_END
4580 }
4581 
testEqualStringEachEqual(void)4582 void testEqualStringEachEqual(void)
4583 {
4584     const char *testStrings1[] = { "foo", "foo", "foo", "foo" };
4585     const char *testStrings2[] = { "boo", "boo", "boo", "zoo" };
4586     const char *testStrings3[] = { "", "", "", "" };
4587 
4588     TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings1, 4);
4589     TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings1, 1);
4590     TEST_ASSERT_EACH_EQUAL_STRING("boo", testStrings2, 3);
4591     TEST_ASSERT_EACH_EQUAL_STRING("", testStrings3, 4);
4592 }
4593 
testNotEqualStringEachEqual1(void)4594 void testNotEqualStringEachEqual1(void)
4595 {
4596     const char *testStrings[] = { "foo", "foo", "foo", "moo" };
4597 
4598     EXPECT_ABORT_BEGIN
4599     TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
4600     VERIFY_FAILS_END
4601 }
4602 
testNotEqualStringEachEqual2(void)4603 void testNotEqualStringEachEqual2(void)
4604 {
4605     const char *testStrings[] = { "boo", "foo", "foo", "foo" };
4606 
4607     EXPECT_ABORT_BEGIN
4608     TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
4609     VERIFY_FAILS_END
4610 }
4611 
testNotEqualStringEachEqual3(void)4612 void testNotEqualStringEachEqual3(void)
4613 {
4614     const char *testStrings[] = { "foo", "foo", "foo", NULL };
4615 
4616     EXPECT_ABORT_BEGIN
4617     TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
4618     VERIFY_FAILS_END
4619 }
4620 
testNotEqualStringEachEqual4(void)4621 void testNotEqualStringEachEqual4(void)
4622 {
4623     const char *testStrings[] = { "foo", "foo", "woo", "foo" };
4624 
4625     EXPECT_ABORT_BEGIN
4626     TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
4627     VERIFY_FAILS_END
4628 }
4629 
testNotEqualStringEachEqual5(void)4630 void testNotEqualStringEachEqual5(void)
4631 {
4632     EXPECT_ABORT_BEGIN
4633     TEST_ASSERT_EACH_EQUAL_STRING("foo", NULL, 1);
4634     VERIFY_FAILS_END
4635 }
4636 
testEqualMemory(void)4637 void testEqualMemory(void)
4638 {
4639     const char *testString = "whatever";
4640 
4641     TEST_ASSERT_EQUAL_MEMORY(testString, testString, 8);
4642     TEST_ASSERT_EQUAL_MEMORY("whatever", "whatever", 8);
4643     TEST_ASSERT_EQUAL_MEMORY("whatever", testString, 8);
4644     TEST_ASSERT_EQUAL_MEMORY(testString, "whatever", 8);
4645     TEST_ASSERT_EQUAL_MEMORY(testString, "whatever", 2);
4646     TEST_ASSERT_EQUAL_MEMORY(NULL, NULL, 1);
4647 }
4648 
testNotEqualMemory1(void)4649 void testNotEqualMemory1(void)
4650 {
4651     EXPECT_ABORT_BEGIN
4652     TEST_ASSERT_EQUAL_MEMORY("foo", "bar", 3);
4653     VERIFY_FAILS_END
4654 }
4655 
testNotEqualMemory2(void)4656 void testNotEqualMemory2(void)
4657 {
4658     EXPECT_ABORT_BEGIN
4659     TEST_ASSERT_EQUAL_MEMORY("fool", "food", 4);
4660     VERIFY_FAILS_END
4661 }
4662 
testNotEqualMemory3(void)4663 void testNotEqualMemory3(void)
4664 {
4665     EXPECT_ABORT_BEGIN
4666     TEST_ASSERT_EQUAL_MEMORY(NULL, "food", 4);
4667     VERIFY_FAILS_END
4668 }
4669 
testNotEqualMemory4(void)4670 void testNotEqualMemory4(void)
4671 {
4672     EXPECT_ABORT_BEGIN
4673     TEST_ASSERT_EQUAL_MEMORY("fool", NULL, 4);
4674     VERIFY_FAILS_END
4675 }
4676 
testNotEqualMemoryLengthZero(void)4677 void testNotEqualMemoryLengthZero(void)
4678 {
4679     EXPECT_ABORT_BEGIN
4680     TEST_ASSERT_EQUAL_MEMORY(NULL, NULL, 0);
4681     VERIFY_FAILS_END
4682 }
4683 
testEqualIntArrays(void)4684 void testEqualIntArrays(void)
4685 {
4686     int p0[] = {1, 8, 987, -2};
4687     int p1[] = {1, 8, 987, -2};
4688     int p2[] = {1, 8, 987, 2};
4689     int p3[] = {1, 500, 600, 700};
4690 
4691     TEST_ASSERT_EQUAL_INT_ARRAY(p0, p0, 1);
4692     TEST_ASSERT_EQUAL_INT_ARRAY(p0, p0, 4);
4693     TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4);
4694     TEST_ASSERT_EQUAL_INT_ARRAY(p0, p2, 3);
4695     TEST_ASSERT_EQUAL_INT_ARRAY(p0, p3, 1);
4696     TEST_ASSERT_EQUAL_INT_ARRAY(NULL, NULL, 1);
4697 }
4698 
testNotEqualIntArraysNullExpected(void)4699 void testNotEqualIntArraysNullExpected(void)
4700 {
4701     int* p0 = NULL;
4702     int p1[] = {1, 8, 987, 2};
4703 
4704     EXPECT_ABORT_BEGIN
4705     TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4);
4706     VERIFY_FAILS_END
4707 }
4708 
testNotEqualIntArraysNullActual(void)4709 void testNotEqualIntArraysNullActual(void)
4710 {
4711     int* p1 = NULL;
4712     int p0[] = {1, 8, 987, 2};
4713 
4714     EXPECT_ABORT_BEGIN
4715     TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4);
4716     VERIFY_FAILS_END
4717 }
4718 
testNotEqualIntArrays1(void)4719 void testNotEqualIntArrays1(void)
4720 {
4721     int p0[] = {1, 8, 987, -2};
4722     int p1[] = {1, 8, 987, 2};
4723 
4724     EXPECT_ABORT_BEGIN
4725     TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4);
4726     VERIFY_FAILS_END
4727 }
4728 
testNotEqualIntArrays2(void)4729 void testNotEqualIntArrays2(void)
4730 {
4731     int p0[] = {1, 8, 987, -2};
4732     int p1[] = {2, 8, 987, -2};
4733 
4734     EXPECT_ABORT_BEGIN
4735     TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4);
4736     VERIFY_FAILS_END
4737 }
4738 
testNotEqualIntArrays3(void)4739 void testNotEqualIntArrays3(void)
4740 {
4741     int p0[] = {1, 8, 987, -2};
4742     int p1[] = {1, 8, 986, -2};
4743 
4744     EXPECT_ABORT_BEGIN
4745     TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4);
4746     VERIFY_FAILS_END
4747 }
4748 
testNotEqualIntArraysLengthZero(void)4749 void testNotEqualIntArraysLengthZero(void)
4750 {
4751     UNITY_UINT32 p0[1] = {1};
4752     UNITY_UINT32 p1[1] = {1};
4753 
4754     EXPECT_ABORT_BEGIN
4755     TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 0);
4756     VERIFY_FAILS_END
4757 }
4758 
testEqualIntEachEqual(void)4759 void testEqualIntEachEqual(void)
4760 {
4761     int p0[] = {1, 1, 1, 1};
4762     int p1[] = {987, 987, 987, 987};
4763     int p2[] = {-2, -2, -2, -3};
4764     int p3[] = {1, 5, 600, 700};
4765 
4766     TEST_ASSERT_EACH_EQUAL_INT(1, p0, 1);
4767     TEST_ASSERT_EACH_EQUAL_INT(1, p0, 4);
4768     TEST_ASSERT_EACH_EQUAL_INT(987, p1, 4);
4769     TEST_ASSERT_EACH_EQUAL_INT(-2, p2, 3);
4770     TEST_ASSERT_EACH_EQUAL_INT(1, p3, 1);
4771 }
4772 
testNotEqualIntEachEqualNullActual(void)4773 void testNotEqualIntEachEqualNullActual(void)
4774 {
4775     int* p1 = NULL;
4776 
4777     EXPECT_ABORT_BEGIN
4778     TEST_ASSERT_EACH_EQUAL_INT(1, p1, 4);
4779     VERIFY_FAILS_END
4780 }
4781 
testNotEqualIntEachEqual1(void)4782 void testNotEqualIntEachEqual1(void)
4783 {
4784     int p0[] = {1, 1, 1, -2};
4785 
4786     EXPECT_ABORT_BEGIN
4787     TEST_ASSERT_EACH_EQUAL_INT(1, p0, 4);
4788     VERIFY_FAILS_END
4789 }
4790 
testNotEqualIntEachEqual2(void)4791 void testNotEqualIntEachEqual2(void)
4792 {
4793     int p0[] = {-5, -5, -1, -5};
4794 
4795     EXPECT_ABORT_BEGIN
4796     TEST_ASSERT_EACH_EQUAL_INT(-5, p0, 4);
4797     VERIFY_FAILS_END
4798 }
4799 
testNotEqualIntEachEqual3(void)4800 void testNotEqualIntEachEqual3(void)
4801 {
4802     int p0[] = {1, 88, 88, 88};
4803 
4804     EXPECT_ABORT_BEGIN
4805     TEST_ASSERT_EACH_EQUAL_INT(88, p0, 4);
4806     VERIFY_FAILS_END
4807 }
4808 
testNotEqualEachEqualLengthZero(void)4809 void testNotEqualEachEqualLengthZero(void)
4810 {
4811     UNITY_UINT32 p0[1] = {1};
4812 
4813     EXPECT_ABORT_BEGIN
4814     TEST_ASSERT_EACH_EQUAL_INT(0, p0, 0);
4815     VERIFY_FAILS_END
4816 }
4817 
testEqualPtrArrays(void)4818 void testEqualPtrArrays(void)
4819 {
4820     char A = 1;
4821     char B = 2;
4822     char C = 3;
4823     char* p0[] = {&A, &B, &C};
4824     char* p1[] = {&A, &B, &C, &A};
4825     char* p2[] = {&A, &B};
4826     char* p3[] = {&A};
4827 
4828     TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p0, 1);
4829     TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p0, 3);
4830     TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 3);
4831     TEST_ASSERT_EQUAL_PTR_ARRAY(p1, p2, 2);
4832     TEST_ASSERT_EQUAL_PTR_ARRAY(p3, p0, 1);
4833 }
4834 
testNotEqualPtrArraysNullExpected(void)4835 void testNotEqualPtrArraysNullExpected(void)
4836 {
4837     char A = 1;
4838     char B = 2;
4839     char** p0 = NULL;
4840     char* p1[] = {&A, &B};
4841 
4842     EXPECT_ABORT_BEGIN
4843     TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 2);
4844     VERIFY_FAILS_END
4845 }
4846 
testNotEqualPtrArraysNullActual(void)4847 void testNotEqualPtrArraysNullActual(void)
4848 {
4849     char A = 1;
4850     char B = 2;
4851     char** p0 = NULL;
4852     char* p1[] = {&A, &B};
4853 
4854     EXPECT_ABORT_BEGIN
4855     TEST_ASSERT_EQUAL_PTR_ARRAY(p1, p0, 2);
4856     VERIFY_FAILS_END
4857 }
4858 
testNotEqualPtrArrays1(void)4859 void testNotEqualPtrArrays1(void)
4860 {
4861     char A = 1;
4862     char B = 2;
4863     char C = 3;
4864     char* p0[] = {&A, &B, &C, &B};
4865     char* p1[] = {&A, &B, &C, &A};
4866 
4867     EXPECT_ABORT_BEGIN
4868     TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4);
4869     VERIFY_FAILS_END
4870 }
4871 
testNotEqualPtrArrays2(void)4872 void testNotEqualPtrArrays2(void)
4873 {
4874     char A = 1;
4875     char B = 2;
4876     char C = 3;
4877     char* p0[] = {&B, &B, &C, &A};
4878     char* p1[] = {&A, &B, &C, &A};
4879 
4880     EXPECT_ABORT_BEGIN
4881     TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4);
4882     VERIFY_FAILS_END
4883 }
4884 
testNotEqualPtrArrays3(void)4885 void testNotEqualPtrArrays3(void)
4886 {
4887     char A = 1;
4888     char B = 2;
4889     char C = 3;
4890     char* p0[] = {&A, &B, &B, &A};
4891     char* p1[] = {&A, &B, &C, &A};
4892 
4893     EXPECT_ABORT_BEGIN
4894     TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4);
4895     VERIFY_FAILS_END
4896 }
4897 
testEqualPtrEachEqual(void)4898 void testEqualPtrEachEqual(void)
4899 {
4900     char A = 1;
4901     char B = 2;
4902     char C = 3;
4903     char* p0[] = {&A, &A, &A};
4904     char* p1[] = {&A, &B, &C, &A};
4905     char* p2[] = {&B, &B};
4906     char* p3[] = {&C};
4907 
4908     TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 1);
4909     TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 3);
4910     TEST_ASSERT_EACH_EQUAL_PTR(&A, p1, 1);
4911     TEST_ASSERT_EACH_EQUAL_PTR(&B, p2, 2);
4912     TEST_ASSERT_EACH_EQUAL_PTR(&C, p3, 1);
4913 }
4914 
testNotEqualPtrEachEqualNullExpected(void)4915 void testNotEqualPtrEachEqualNullExpected(void)
4916 {
4917     char A = 1;
4918     char B = 1;
4919     char* p0[] = {&A, &B};
4920 
4921     EXPECT_ABORT_BEGIN
4922     TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 2);
4923     VERIFY_FAILS_END
4924 }
4925 
testNotEqualPtrEachEqualNullActual(void)4926 void testNotEqualPtrEachEqualNullActual(void)
4927 {
4928     char A = 1;
4929     char** p0 = NULL;
4930 
4931     EXPECT_ABORT_BEGIN
4932     TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 2);
4933     VERIFY_FAILS_END
4934 }
4935 
testNotEqualPtrEachEqual1(void)4936 void testNotEqualPtrEachEqual1(void)
4937 {
4938     char A = 1;
4939     char B = 1;
4940     char* p0[] = {&A, &A, &A, &B};
4941 
4942     EXPECT_ABORT_BEGIN
4943     TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 4);
4944     VERIFY_FAILS_END
4945 }
4946 
testNotEqualPtrEachEqual2(void)4947 void testNotEqualPtrEachEqual2(void)
4948 {
4949     char A = 1;
4950     char B = 1;
4951     char* p0[] = {&B, &B, &A, &B};
4952 
4953     EXPECT_ABORT_BEGIN
4954     TEST_ASSERT_EACH_EQUAL_PTR(&B, p0, 4);
4955     VERIFY_FAILS_END
4956 }
4957 
testNotEqualPtrEachEqual3(void)4958 void testNotEqualPtrEachEqual3(void)
4959 {
4960     char A = 1;
4961     char B = 1;
4962     char* p0[] = {&A, &B, &B, &B};
4963 
4964     EXPECT_ABORT_BEGIN
4965     TEST_ASSERT_EACH_EQUAL_PTR(&B, p0, 4);
4966     VERIFY_FAILS_END
4967 }
4968 
testEqualInt8Arrays(void)4969 void testEqualInt8Arrays(void)
4970 {
4971     UNITY_INT8 p0[] = {1, 8, 117, -2};
4972     UNITY_INT8 p1[] = {1, 8, 117, -2};
4973     UNITY_INT8 p2[] = {1, 8, 117, 2};
4974     UNITY_INT8 p3[] = {1, 50, 60, 70};
4975 
4976     TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p0, 1);
4977     TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p0, 4);
4978     TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p1, 4);
4979     TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p2, 3);
4980     TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p3, 1);
4981 }
4982 
testNotEqualInt8Arrays(void)4983 void testNotEqualInt8Arrays(void)
4984 {
4985     UNITY_INT8 p0[] = {1, 8, 36, -2};
4986     UNITY_INT8 p1[] = {1, 8, 36, 2};
4987 
4988     EXPECT_ABORT_BEGIN
4989     TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p1, 4);
4990     VERIFY_FAILS_END
4991 }
4992 
testEqualInt8EachEqual(void)4993 void testEqualInt8EachEqual(void)
4994 {
4995     UNITY_INT8 p0[] = {1, 1, 1, 1};
4996     UNITY_INT8 p1[] = {117, 117, 117, -2};
4997     UNITY_INT8 p2[] = {-1, -1, 117, 2};
4998     UNITY_INT8 p3[] = {1, 50, 60, 70};
4999 
5000     TEST_ASSERT_EACH_EQUAL_INT8(1, p0, 1);
5001     TEST_ASSERT_EACH_EQUAL_INT8(1, p0, 4);
5002     TEST_ASSERT_EACH_EQUAL_INT8(117, p1, 3);
5003     TEST_ASSERT_EACH_EQUAL_INT8(-1, p2, 2);
5004     TEST_ASSERT_EACH_EQUAL_INT8(1, p3, 1);
5005 }
5006 
testNotEqualInt8EachEqual(void)5007 void testNotEqualInt8EachEqual(void)
5008 {
5009     UNITY_INT8 p0[] = {1, 8, 36, -2};
5010 
5011     EXPECT_ABORT_BEGIN
5012     TEST_ASSERT_EACH_EQUAL_INT8(1, p0, 2);
5013     VERIFY_FAILS_END
5014 }
5015 
testEqualCHARArrays(void)5016 void testEqualCHARArrays(void)
5017 {
5018     char p0[] = {1, 8, 117, -2};
5019     char p1[] = {1, 8, 117, -2};
5020     char p2[] = {1, 8, 117, 2};
5021     char p3[] = {1, 50, 60, 70};
5022 
5023     TEST_ASSERT_EQUAL_CHAR_ARRAY(p0, p0, 1);
5024     TEST_ASSERT_EQUAL_CHAR_ARRAY(p0, p0, 4);
5025     TEST_ASSERT_EQUAL_CHAR_ARRAY(p0, p1, 4);
5026     TEST_ASSERT_EQUAL_CHAR_ARRAY(p0, p2, 3);
5027     TEST_ASSERT_EQUAL_CHAR_ARRAY(p0, p3, 1);
5028 }
5029 
testNotEqualCHARArrays(void)5030 void testNotEqualCHARArrays(void)
5031 {
5032     char p0[] = {1, 8, 36, -2};
5033     char p1[] = {1, 8, 36, 2};
5034 
5035     EXPECT_ABORT_BEGIN
5036     TEST_ASSERT_EQUAL_CHAR_ARRAY(p0, p1, 4);
5037     VERIFY_FAILS_END
5038 }
5039 
testEqualCHAREachEqual(void)5040 void testEqualCHAREachEqual(void)
5041 {
5042     char p0[] = {1, 1, 1, 1};
5043     char p1[] = {117, 117, 117, -2};
5044     char p2[] = {-1, -1, 117, 2};
5045     char p3[] = {1, 50, 60, 70};
5046 
5047     TEST_ASSERT_EACH_EQUAL_CHAR(1, p0, 1);
5048     TEST_ASSERT_EACH_EQUAL_CHAR(1, p0, 4);
5049     TEST_ASSERT_EACH_EQUAL_CHAR(117, p1, 3);
5050     TEST_ASSERT_EACH_EQUAL_CHAR(-1, p2, 2);
5051     TEST_ASSERT_EACH_EQUAL_CHAR(1, p3, 1);
5052 }
5053 
testNotEqualCHAREachEqual(void)5054 void testNotEqualCHAREachEqual(void)
5055 {
5056     char p0[] = {1, 8, 36, -2};
5057 
5058     EXPECT_ABORT_BEGIN
5059     TEST_ASSERT_EACH_EQUAL_CHAR(1, p0, 2);
5060     VERIFY_FAILS_END
5061 }
5062 
testEqualUIntArrays(void)5063 void testEqualUIntArrays(void)
5064 {
5065     unsigned int p0[] = {1, 8, 987, 65132u};
5066     unsigned int p1[] = {1, 8, 987, 65132u};
5067     unsigned int p2[] = {1, 8, 987, 2};
5068     unsigned int p3[] = {1, 500, 600, 700};
5069 
5070     TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p0, 1);
5071     TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p0, 4);
5072     TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4);
5073     TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p2, 3);
5074     TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p3, 1);
5075 }
5076 
testNotEqualUIntArrays1(void)5077 void testNotEqualUIntArrays1(void)
5078 {
5079     unsigned int p0[] = {1, 8, 987, 65132u};
5080     unsigned int p1[] = {1, 8, 987, 65131u};
5081 
5082     EXPECT_ABORT_BEGIN
5083     TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4);
5084     VERIFY_FAILS_END
5085 }
5086 
testNotEqualUIntArrays2(void)5087 void testNotEqualUIntArrays2(void)
5088 {
5089     unsigned int p0[] = {1, 8, 987, 65132u};
5090     unsigned int p1[] = {2, 8, 987, 65132u};
5091 
5092     EXPECT_ABORT_BEGIN
5093     TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4);
5094     VERIFY_FAILS_END
5095 }
5096 
testNotEqualUIntArrays3(void)5097 void testNotEqualUIntArrays3(void)
5098 {
5099     unsigned int p0[] = {1, 8, 987, 65132u};
5100     unsigned int p1[] = {1, 8, 986, 65132u};
5101 
5102     EXPECT_ABORT_BEGIN
5103     TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4);
5104     VERIFY_FAILS_END
5105 }
5106 
testEqualUIntEachEqual(void)5107 void testEqualUIntEachEqual(void)
5108 {
5109     unsigned int p0[] = {1, 1, 1, 1};
5110     unsigned int p1[] = {65132u, 65132u, 65132u, 65132u};
5111     unsigned int p2[] = {8, 8, 987, 2};
5112     unsigned int p3[] = {1, 500, 600, 700};
5113 
5114     TEST_ASSERT_EACH_EQUAL_UINT(1, p0, 1);
5115     TEST_ASSERT_EACH_EQUAL_UINT(1, p0, 4);
5116     TEST_ASSERT_EACH_EQUAL_UINT(65132u, p1, 4);
5117     TEST_ASSERT_EACH_EQUAL_UINT(8, p2, 2);
5118     TEST_ASSERT_EACH_EQUAL_UINT(1, p3, 1);
5119 }
5120 
testNotEqualUIntEachEqual1(void)5121 void testNotEqualUIntEachEqual1(void)
5122 {
5123     unsigned int p0[] = {1, 65132u, 65132u, 65132u};
5124 
5125     EXPECT_ABORT_BEGIN
5126     TEST_ASSERT_EACH_EQUAL_UINT(65132u, p0, 4);
5127     VERIFY_FAILS_END
5128 }
5129 
testNotEqualUIntEachEqual2(void)5130 void testNotEqualUIntEachEqual2(void)
5131 {
5132     unsigned int p0[] = {987, 8, 987, 987};
5133 
5134     EXPECT_ABORT_BEGIN
5135     TEST_ASSERT_EACH_EQUAL_UINT(987, p0, 4);
5136     VERIFY_FAILS_END
5137 }
5138 
testNotEqualUIntEachEqual3(void)5139 void testNotEqualUIntEachEqual3(void)
5140 {
5141     unsigned int p0[] = {1, 1, 1, 65132u};
5142 
5143     EXPECT_ABORT_BEGIN
5144     TEST_ASSERT_EACH_EQUAL_UINT(1, p0, 4);
5145     VERIFY_FAILS_END
5146 }
5147 
testEqualInt16Arrays(void)5148 void testEqualInt16Arrays(void)
5149 {
5150     UNITY_INT16 p0[] = {1, 8, 117, 3};
5151     UNITY_INT16 p1[] = {1, 8, 117, 3};
5152     UNITY_INT16 p2[] = {1, 8, 117, 2};
5153     UNITY_INT16 p3[] = {1, 50, 60, 70};
5154 
5155     TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p0, 1);
5156     TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p0, 4);
5157     TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p1, 4);
5158     TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p2, 3);
5159     TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p3, 1);
5160 }
5161 
testNotEqualInt16Arrays(void)5162 void testNotEqualInt16Arrays(void)
5163 {
5164     UNITY_INT16 p0[] = {1, 8, 127, 3};
5165     UNITY_INT16 p1[] = {1, 8, 127, 2};
5166 
5167     EXPECT_ABORT_BEGIN
5168     TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p1, 4);
5169     VERIFY_FAILS_END
5170 }
5171 
testEqualInt16EachEqual(void)5172 void testEqualInt16EachEqual(void)
5173 {
5174     UNITY_INT16 p0[] = {1, 1, 1, 1};
5175     UNITY_INT16 p1[] = {32111, 32111, 32111, 3};
5176     UNITY_INT16 p2[] = {-1, -1, -1, 2};
5177     UNITY_INT16 p3[] = {1, 50, 60, 70};
5178 
5179     TEST_ASSERT_EACH_EQUAL_INT16(1, p0, 1);
5180     TEST_ASSERT_EACH_EQUAL_INT16(1, p0, 4);
5181     TEST_ASSERT_EACH_EQUAL_INT16(32111, p1, 3);
5182     TEST_ASSERT_EACH_EQUAL_INT16(-1, p2, 3);
5183     TEST_ASSERT_EACH_EQUAL_INT16(1, p3, 1);
5184 }
5185 
testNotEqualInt16EachEqual(void)5186 void testNotEqualInt16EachEqual(void)
5187 {
5188     UNITY_INT16 p0[] = {127, 127, 127, 3};
5189 
5190     EXPECT_ABORT_BEGIN
5191     TEST_ASSERT_EACH_EQUAL_INT16(127, p0, 4);
5192     VERIFY_FAILS_END
5193 }
5194 
testEqualInt32Arrays(void)5195 void testEqualInt32Arrays(void)
5196 {
5197     UNITY_INT32 p0[] = {1, 8, 117, 3};
5198     UNITY_INT32 p1[] = {1, 8, 117, 3};
5199     UNITY_INT32 p2[] = {1, 8, 117, 2};
5200     UNITY_INT32 p3[] = {1, 50, 60, 70};
5201 
5202     TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p0, 1);
5203     TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p0, 4);
5204     TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p1, 4);
5205     TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p2, 3);
5206     TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p3, 1);
5207 }
5208 
testNotEqualInt32Arrays(void)5209 void testNotEqualInt32Arrays(void)
5210 {
5211     UNITY_INT32 p0[] = {1, 8, 127, 3};
5212     UNITY_INT32 p1[] = {1, 8, 127, 2};
5213 
5214     EXPECT_ABORT_BEGIN
5215     TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p1, 4);
5216     VERIFY_FAILS_END
5217 }
5218 
testEqualInt32EachEqual(void)5219 void testEqualInt32EachEqual(void)
5220 {
5221     UNITY_INT32 p0[] = {8, 8, 8, 8};
5222     UNITY_INT32 p1[] = {65537, 65537, 65537, 65537};
5223     UNITY_INT32 p2[] = {-3, -3, -3, 2};
5224     UNITY_INT32 p3[] = {1, 50, 60, 70};
5225 
5226     TEST_ASSERT_EACH_EQUAL_INT32(8, p0, 1);
5227     TEST_ASSERT_EACH_EQUAL_INT32(8, p0, 4);
5228     TEST_ASSERT_EACH_EQUAL_INT32(65537, p1, 4);
5229     TEST_ASSERT_EACH_EQUAL_INT32(-3, p2, 3);
5230     TEST_ASSERT_EACH_EQUAL_INT32(1, p3, 1);
5231 }
5232 
testNotEqualInt32EachEqual(void)5233 void testNotEqualInt32EachEqual(void)
5234 {
5235     UNITY_INT32 p0[] = {127, 8, 127, 127};
5236 
5237     EXPECT_ABORT_BEGIN
5238     TEST_ASSERT_EACH_EQUAL_INT32(127, p0, 4);
5239     VERIFY_FAILS_END
5240 }
5241 
testEqualUINT8Arrays(void)5242 void testEqualUINT8Arrays(void)
5243 {
5244     UNITY_UINT8 p0[] = {1, 8, 100, 127};
5245     UNITY_UINT8 p1[] = {1, 8, 100, 127};
5246     UNITY_UINT8 p2[] = {1, 8, 100, 2};
5247     UNITY_UINT8 p3[] = {1, 50, 60, 70};
5248 
5249     TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p0, 1);
5250     TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p0, 4);
5251     TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p1, 4);
5252     TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p2, 3);
5253     TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p3, 1);
5254 }
5255 
testNotEqualUINT8Arrays1(void)5256 void testNotEqualUINT8Arrays1(void)
5257 {
5258     unsigned char p0[] = {1, 8, 100, 127u};
5259     unsigned char p1[] = {1, 8, 100, 255u};
5260 
5261     EXPECT_ABORT_BEGIN
5262     TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p1, 4);
5263     VERIFY_FAILS_END
5264 }
5265 
testNotEqualUINT8Arrays2(void)5266 void testNotEqualUINT8Arrays2(void)
5267 {
5268     unsigned char p0[] = {1, 8, 100, 127u};
5269     unsigned char p1[] = {1, 8, 100, 255u};
5270 
5271     EXPECT_ABORT_BEGIN
5272     TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p1, 4);
5273     VERIFY_FAILS_END
5274 }
5275 
testNotEqualUINT8Arrays3(void)5276 void testNotEqualUINT8Arrays3(void)
5277 {
5278     unsigned char p0[] = {1, 8, 100, 127u};
5279     unsigned char p1[] = {1, 8, 100, 255u};
5280 
5281     EXPECT_ABORT_BEGIN
5282     TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p1, 4);
5283     VERIFY_FAILS_END
5284 }
5285 
5286 
testEqualUINT16Arrays(void)5287 void testEqualUINT16Arrays(void)
5288 {
5289     unsigned short p0[] = {1, 8, 987, 65132u};
5290     unsigned short p1[] = {1, 8, 987, 65132u};
5291     unsigned short p2[] = {1, 8, 987, 2};
5292     unsigned short p3[] = {1, 500, 600, 700};
5293 
5294     TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p0, 1);
5295     TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p0, 4);
5296     TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4);
5297     TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p2, 3);
5298     TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p3, 1);
5299 }
5300 
testNotEqualUINT16Arrays1(void)5301 void testNotEqualUINT16Arrays1(void)
5302 {
5303     unsigned short p0[] = {1, 8, 987, 65132u};
5304     unsigned short p1[] = {1, 8, 987, 65131u};
5305 
5306     EXPECT_ABORT_BEGIN
5307     TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4);
5308     VERIFY_FAILS_END
5309 }
5310 
testNotEqualUINT16Arrays2(void)5311 void testNotEqualUINT16Arrays2(void)
5312 {
5313     unsigned short p0[] = {1, 8, 987, 65132u};
5314     unsigned short p1[] = {2, 8, 987, 65132u};
5315 
5316     EXPECT_ABORT_BEGIN
5317     TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4);
5318     VERIFY_FAILS_END
5319 }
5320 
testNotEqualUINT16Arrays3(void)5321 void testNotEqualUINT16Arrays3(void)
5322 {
5323     unsigned short p0[] = {1, 8, 987, 65132u};
5324     unsigned short p1[] = {1, 8, 986, 65132u};
5325 
5326     EXPECT_ABORT_BEGIN
5327     TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4);
5328     VERIFY_FAILS_END
5329 }
5330 
testEqualUINT32Arrays(void)5331 void testEqualUINT32Arrays(void)
5332 {
5333     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5334     UNITY_UINT32 p1[] = {1, 8, 987, 65132u};
5335     UNITY_UINT32 p2[] = {1, 8, 987, 2};
5336     UNITY_UINT32 p3[] = {1, 500, 600, 700};
5337 
5338     TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p0, 1);
5339     TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p0, 4);
5340     TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4);
5341     TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p2, 3);
5342     TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p3, 1);
5343 }
5344 
testNotEqualUINT32Arrays1(void)5345 void testNotEqualUINT32Arrays1(void)
5346 {
5347     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5348     UNITY_UINT32 p1[] = {1, 8, 987, 65131u};
5349 
5350     EXPECT_ABORT_BEGIN
5351     TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4);
5352     VERIFY_FAILS_END
5353 }
5354 
testNotEqualUINT32Arrays2(void)5355 void testNotEqualUINT32Arrays2(void)
5356 {
5357     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5358     UNITY_UINT32 p1[] = {2, 8, 987, 65132u};
5359 
5360     EXPECT_ABORT_BEGIN
5361     TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4);
5362     VERIFY_FAILS_END
5363 }
5364 
testNotEqualUINT32Arrays3(void)5365 void testNotEqualUINT32Arrays3(void)
5366 {
5367     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5368     UNITY_UINT32 p1[] = {1, 8, 986, 65132u};
5369 
5370     EXPECT_ABORT_BEGIN
5371     TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4);
5372     VERIFY_FAILS_END
5373 }
5374 
testEqualHEXArrays(void)5375 void testEqualHEXArrays(void)
5376 {
5377     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5378     UNITY_UINT32 p1[] = {1, 8, 987, 65132u};
5379     UNITY_UINT32 p2[] = {1, 8, 987, 2};
5380     UNITY_UINT32 p3[] = {1, 500, 600, 700};
5381 
5382     TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p0, 1);
5383     TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p0, 4);
5384     TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p1, 4);
5385     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p2, 3);
5386     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p3, 1);
5387 }
5388 
testNotEqualHEXArrays1(void)5389 void testNotEqualHEXArrays1(void)
5390 {
5391     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5392     UNITY_UINT32 p1[] = {1, 8, 987, 65131u};
5393 
5394     EXPECT_ABORT_BEGIN
5395     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4);
5396     VERIFY_FAILS_END
5397 }
5398 
testNotEqualHEXArrays2(void)5399 void testNotEqualHEXArrays2(void)
5400 {
5401     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5402     UNITY_UINT32 p1[] = {2, 8, 987, 65132u};
5403 
5404     EXPECT_ABORT_BEGIN
5405     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4);
5406     VERIFY_FAILS_END
5407 }
5408 
testNotEqualHEXArrays3(void)5409 void testNotEqualHEXArrays3(void)
5410 {
5411     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5412     UNITY_UINT32 p1[] = {1, 8, 986, 65132u};
5413 
5414     EXPECT_ABORT_BEGIN
5415     TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p1, 4);
5416     VERIFY_FAILS_END
5417 }
5418 
testEqualHEX32Arrays(void)5419 void testEqualHEX32Arrays(void)
5420 {
5421     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5422     UNITY_UINT32 p1[] = {1, 8, 987, 65132u};
5423     UNITY_UINT32 p2[] = {1, 8, 987, 2};
5424     UNITY_UINT32 p3[] = {1, 500, 600, 700};
5425 
5426     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p0, 1);
5427     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p0, 4);
5428     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4);
5429     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p2, 3);
5430     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p3, 1);
5431 }
5432 
testNotEqualHEX32Arrays1(void)5433 void testNotEqualHEX32Arrays1(void)
5434 {
5435     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5436     UNITY_UINT32 p1[] = {1, 8, 987, 65131u};
5437 
5438     EXPECT_ABORT_BEGIN
5439     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4);
5440     VERIFY_FAILS_END
5441 }
5442 
testNotEqualHEX32Arrays2(void)5443 void testNotEqualHEX32Arrays2(void)
5444 {
5445     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5446     UNITY_UINT32 p1[] = {2, 8, 987, 65132u};
5447 
5448     EXPECT_ABORT_BEGIN
5449     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4);
5450     VERIFY_FAILS_END
5451 }
5452 
testNotEqualHEX32Arrays3(void)5453 void testNotEqualHEX32Arrays3(void)
5454 {
5455     UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
5456     UNITY_UINT32 p1[] = {1, 8, 986, 65132u};
5457 
5458     EXPECT_ABORT_BEGIN
5459     TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4);
5460     VERIFY_FAILS_END
5461 }
5462 
testEqualHEX16Arrays(void)5463 void testEqualHEX16Arrays(void)
5464 {
5465     unsigned short p0[] = {1, 8, 987, 65132u};
5466     unsigned short p1[] = {1, 8, 987, 65132u};
5467     unsigned short p2[] = {1, 8, 987, 2};
5468     unsigned short p3[] = {1, 500, 600, 700};
5469 
5470     TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p0, 1);
5471     TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p0, 4);
5472     TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4);
5473     TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p2, 3);
5474     TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p3, 1);
5475 }
5476 
testNotEqualHEX16Arrays1(void)5477 void testNotEqualHEX16Arrays1(void)
5478 {
5479     unsigned short p0[] = {1, 8, 987, 65132u};
5480     unsigned short p1[] = {1, 8, 987, 65131u};
5481 
5482     EXPECT_ABORT_BEGIN
5483     TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4);
5484     VERIFY_FAILS_END
5485 }
5486 
testNotEqualHEX16Arrays2(void)5487 void testNotEqualHEX16Arrays2(void)
5488 {
5489     unsigned short p0[] = {1, 8, 987, 65132u};
5490     unsigned short p1[] = {2, 8, 987, 65132u};
5491 
5492     EXPECT_ABORT_BEGIN
5493     TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4);
5494     VERIFY_FAILS_END
5495 }
5496 
testNotEqualHEX16Arrays3(void)5497 void testNotEqualHEX16Arrays3(void)
5498 {
5499     unsigned short p0[] = {1, 8, 987, 65132u};
5500     unsigned short p1[] = {1, 8, 986, 65132u};
5501 
5502     EXPECT_ABORT_BEGIN
5503     TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4);
5504     VERIFY_FAILS_END
5505 }
5506 
testEqualHEX8Arrays(void)5507 void testEqualHEX8Arrays(void)
5508 {
5509     unsigned char p0[] = {1, 8, 254u, 123};
5510     unsigned char p1[] = {1, 8, 254u, 123};
5511     unsigned char p2[] = {1, 8, 254u, 2};
5512     unsigned char p3[] = {1, 23, 25, 26};
5513 
5514     TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p0, 1);
5515     TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p0, 4);
5516     TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4);
5517     TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p2, 3);
5518     TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p3, 1);
5519 }
5520 
testNotEqualHEX8Arrays1(void)5521 void testNotEqualHEX8Arrays1(void)
5522 {
5523     unsigned char p0[] = {1, 8, 254u, 253u};
5524     unsigned char p1[] = {1, 8, 254u, 252u};
5525 
5526     EXPECT_ABORT_BEGIN
5527     TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4);
5528     VERIFY_FAILS_END
5529 }
5530 
testNotEqualHEX8Arrays2(void)5531 void testNotEqualHEX8Arrays2(void)
5532 {
5533     unsigned char p0[] = {1, 8, 254u, 253u};
5534     unsigned char p1[] = {2, 8, 254u, 253u};
5535 
5536     EXPECT_ABORT_BEGIN
5537     TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4);
5538     VERIFY_FAILS_END
5539 }
5540 
testNotEqualHEX8Arrays3(void)5541 void testNotEqualHEX8Arrays3(void)
5542 {
5543     unsigned char p0[] = {1, 8, 254u, 253u};
5544     unsigned char p1[] = {1, 8, 255u, 253u};
5545 
5546     EXPECT_ABORT_BEGIN
5547     TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4);
5548     VERIFY_FAILS_END
5549 }
5550 
testEqualUINT8EachEqual(void)5551 void testEqualUINT8EachEqual(void)
5552 {
5553     UNITY_UINT8 p0[] = {127u, 127u, 127u, 127u};
5554     UNITY_UINT8 p1[] = {1u, 1u, 1u, 1u};
5555     UNITY_UINT8 p2[] = {128u, 128u, 128u, 2u};
5556     UNITY_UINT8 p3[] = {1u, 50u, 60u, 70u};
5557 
5558     TEST_ASSERT_EACH_EQUAL_UINT8(127u, p0, 1);
5559     TEST_ASSERT_EACH_EQUAL_UINT8(127u, p0, 4);
5560     TEST_ASSERT_EACH_EQUAL_UINT8(1u, p1, 4);
5561     TEST_ASSERT_EACH_EQUAL_UINT8(128u, p2, 3);
5562     TEST_ASSERT_EACH_EQUAL_UINT8(1u, p3, 1);
5563 }
5564 
testNotEqualUINT8EachEqual1(void)5565 void testNotEqualUINT8EachEqual1(void)
5566 {
5567     unsigned char p0[] = {127u, 127u, 128u, 127u};
5568 
5569     EXPECT_ABORT_BEGIN
5570     TEST_ASSERT_EACH_EQUAL_UINT8(127u, p0, 4);
5571     VERIFY_FAILS_END
5572 }
5573 
testNotEqualUINT8EachEqual2(void)5574 void testNotEqualUINT8EachEqual2(void)
5575 {
5576     unsigned char p0[] = {1, 1, 1, 127u};
5577 
5578     EXPECT_ABORT_BEGIN
5579     TEST_ASSERT_EACH_EQUAL_UINT8(1, p0, 4);
5580     VERIFY_FAILS_END
5581 }
5582 
testNotEqualUINT8EachEqual3(void)5583 void testNotEqualUINT8EachEqual3(void)
5584 {
5585     unsigned char p0[] = {54u, 55u, 55u, 55u};
5586 
5587     EXPECT_ABORT_BEGIN
5588     TEST_ASSERT_EACH_EQUAL_UINT8(55u, p0, 4);
5589     VERIFY_FAILS_END
5590 }
5591 
testEqualUINT16EachEqual(void)5592 void testEqualUINT16EachEqual(void)
5593 {
5594     unsigned short p0[] = {65132u, 65132u, 65132u, 65132u};
5595     unsigned short p1[] = {987, 987, 987, 987};
5596     unsigned short p2[] = {1, 1, 1, 2};
5597     unsigned short p3[] = {1, 500, 600, 700};
5598 
5599     TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 1);
5600     TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
5601     TEST_ASSERT_EACH_EQUAL_UINT16(987, p1, 4);
5602     TEST_ASSERT_EACH_EQUAL_UINT16(1, p2, 3);
5603     TEST_ASSERT_EACH_EQUAL_UINT16(1, p3, 1);
5604 }
5605 
testNotEqualUINT16EachEqual1(void)5606 void testNotEqualUINT16EachEqual1(void)
5607 {
5608     unsigned short p0[] = {1, 65132u, 65132u, 65132u};
5609 
5610     EXPECT_ABORT_BEGIN
5611     TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
5612     VERIFY_FAILS_END
5613 }
5614 
testNotEqualUINT16EachEqual2(void)5615 void testNotEqualUINT16EachEqual2(void)
5616 {
5617     unsigned short p0[] = {65132u, 65132u, 987, 65132u};
5618 
5619     EXPECT_ABORT_BEGIN
5620     TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
5621     VERIFY_FAILS_END
5622 }
5623 
testNotEqualUINT16EachEqual3(void)5624 void testNotEqualUINT16EachEqual3(void)
5625 {
5626     unsigned short p0[] = {65132u, 65132u, 65132u, 65133u};
5627 
5628     EXPECT_ABORT_BEGIN
5629     TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
5630     VERIFY_FAILS_END
5631 }
5632 
testEqualUINT32EachEqual(void)5633 void testEqualUINT32EachEqual(void)
5634 {
5635     UNITY_UINT32 p0[] = {65132u, 65132u, 65132u, 65132u};
5636     UNITY_UINT32 p1[] = {987, 987, 987, 987};
5637     UNITY_UINT32 p2[] = {8, 8, 8, 2};
5638     UNITY_UINT32 p3[] = {1, 500, 600, 700};
5639 
5640     TEST_ASSERT_EACH_EQUAL_UINT32(65132u, p0, 1);
5641     TEST_ASSERT_EACH_EQUAL_UINT32(65132u, p0, 4);
5642     TEST_ASSERT_EACH_EQUAL_UINT32(987, p1, 4);
5643     TEST_ASSERT_EACH_EQUAL_UINT32(8, p2, 3);
5644     TEST_ASSERT_EACH_EQUAL_UINT32(1, p3, 1);
5645 }
5646 
testNotEqualUINT32EachEqual1(void)5647 void testNotEqualUINT32EachEqual1(void)
5648 {
5649     UNITY_UINT32 p0[] = {65132u, 65132u, 987, 65132u};
5650 
5651     EXPECT_ABORT_BEGIN
5652     TEST_ASSERT_EACH_EQUAL_UINT32(65132u, p0, 4);
5653     VERIFY_FAILS_END
5654 }
5655 
testNotEqualUINT32EachEqual2(void)5656 void testNotEqualUINT32EachEqual2(void)
5657 {
5658     UNITY_UINT32 p0[] = {1, 987, 987, 987};
5659 
5660     EXPECT_ABORT_BEGIN
5661     TEST_ASSERT_EACH_EQUAL_UINT32(987, p0, 4);
5662     VERIFY_FAILS_END
5663 }
5664 
testNotEqualUINT32EachEqual3(void)5665 void testNotEqualUINT32EachEqual3(void)
5666 {
5667     UNITY_UINT32 p0[] = {1, 1, 1, 65132u};
5668 
5669     EXPECT_ABORT_BEGIN
5670     TEST_ASSERT_EACH_EQUAL_UINT32(1, p0, 4);
5671     VERIFY_FAILS_END
5672 }
5673 
testEqualHEXEachEqual(void)5674 void testEqualHEXEachEqual(void)
5675 {
5676     UNITY_UINT32 p0[] = {65132u, 65132u, 65132u, 65132u};
5677     UNITY_UINT32 p1[] = {987, 987, 987, 987};
5678     UNITY_UINT32 p2[] = {8, 8, 8, 2};
5679     UNITY_UINT32 p3[] = {1, 500, 600, 700};
5680 
5681     TEST_ASSERT_EACH_EQUAL_HEX(65132u, p0, 1);
5682     TEST_ASSERT_EACH_EQUAL_HEX(65132u, p0, 4);
5683     TEST_ASSERT_EACH_EQUAL_HEX(987, p1, 4);
5684     TEST_ASSERT_EACH_EQUAL_HEX(8, p2, 3);
5685     TEST_ASSERT_EACH_EQUAL_HEX(1, p3, 1);
5686 }
5687 
testNotEqualHEXEachEqual1(void)5688 void testNotEqualHEXEachEqual1(void)
5689 {
5690     UNITY_UINT32 p0[] = {1, 65132u, 65132u, 65132u};
5691 
5692     EXPECT_ABORT_BEGIN
5693     TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 4);
5694     VERIFY_FAILS_END
5695 }
5696 
testNotEqualHEXEachEqual2(void)5697 void testNotEqualHEXEachEqual2(void)
5698 {
5699     UNITY_UINT32 p0[] = {987, 987, 987, 65132u};
5700 
5701     EXPECT_ABORT_BEGIN
5702     TEST_ASSERT_EACH_EQUAL_HEX32(987, p0, 4);
5703     VERIFY_FAILS_END
5704 }
5705 
testNotEqualHEXEachEqual3(void)5706 void testNotEqualHEXEachEqual3(void)
5707 {
5708     UNITY_UINT32 p0[] = {8, 8, 987, 8};
5709 
5710     EXPECT_ABORT_BEGIN
5711     TEST_ASSERT_EACH_EQUAL_HEX(8, p0, 4);
5712     VERIFY_FAILS_END
5713 }
5714 
testEqualHEX32EachEqual(void)5715 void testEqualHEX32EachEqual(void)
5716 {
5717     UNITY_UINT32 p0[] = {65132u, 65132u, 65132u, 65132u};
5718     UNITY_UINT32 p1[] = {987, 987, 987, 987};
5719     UNITY_UINT32 p2[] = {8, 8, 8, 2};
5720     UNITY_UINT32 p3[] = {1, 500, 600, 700};
5721 
5722     TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 1);
5723     TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 4);
5724     TEST_ASSERT_EACH_EQUAL_HEX32(987, p1, 4);
5725     TEST_ASSERT_EACH_EQUAL_HEX32(8, p2, 3);
5726     TEST_ASSERT_EACH_EQUAL_HEX32(1, p3, 1);
5727 }
5728 
testNotEqualHEX32EachEqual1(void)5729 void testNotEqualHEX32EachEqual1(void)
5730 {
5731     UNITY_UINT32 p0[] = {65132u, 8, 65132u, 65132u};
5732 
5733     EXPECT_ABORT_BEGIN
5734     TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 4);
5735     VERIFY_FAILS_END
5736 }
5737 
testNotEqualHEX32EachEqual2(void)5738 void testNotEqualHEX32EachEqual2(void)
5739 {
5740     UNITY_UINT32 p0[] = {1, 987, 987, 987};
5741 
5742     EXPECT_ABORT_BEGIN
5743     TEST_ASSERT_EACH_EQUAL_HEX32(987, p0, 4);
5744     VERIFY_FAILS_END
5745 }
5746 
testNotEqualHEX32EachEqual3(void)5747 void testNotEqualHEX32EachEqual3(void)
5748 {
5749     UNITY_UINT32 p0[] = {8, 8, 8, 65132u};
5750 
5751     EXPECT_ABORT_BEGIN
5752     TEST_ASSERT_EACH_EQUAL_HEX32(8, p0, 4);
5753     VERIFY_FAILS_END
5754 }
5755 
testEqualHEX16EachEqual(void)5756 void testEqualHEX16EachEqual(void)
5757 {
5758     UNITY_UINT16 p0[] = {65132u, 65132u, 65132u, 65132u};
5759     UNITY_UINT16 p1[] = {987, 987, 987, 987};
5760     UNITY_UINT16 p2[] = {8, 8, 8, 2};
5761     UNITY_UINT16 p3[] = {1, 500, 600, 700};
5762 
5763     TEST_ASSERT_EACH_EQUAL_HEX16(65132u, p0, 1);
5764     TEST_ASSERT_EACH_EQUAL_HEX16(65132u, p0, 4);
5765     TEST_ASSERT_EACH_EQUAL_HEX16(987, p1, 4);
5766     TEST_ASSERT_EACH_EQUAL_HEX16(8, p2, 3);
5767     TEST_ASSERT_EACH_EQUAL_HEX16(1, p3, 1);
5768 }
5769 
testNotEqualHEX16EachEqual1(void)5770 void testNotEqualHEX16EachEqual1(void)
5771 {
5772     unsigned short p0[] = {65132u, 65132u, 987, 65132u};
5773 
5774     EXPECT_ABORT_BEGIN
5775     TEST_ASSERT_EACH_EQUAL_HEX16(65132u, p0, 4);
5776     VERIFY_FAILS_END
5777 }
5778 
testNotEqualHEX16EachEqual2(void)5779 void testNotEqualHEX16EachEqual2(void)
5780 {
5781     unsigned short p0[] = {1, 987, 987, 987};
5782 
5783     EXPECT_ABORT_BEGIN
5784     TEST_ASSERT_EACH_EQUAL_HEX16(987, p0, 4);
5785     VERIFY_FAILS_END
5786 }
5787 
testNotEqualHEX16EachEqual3(void)5788 void testNotEqualHEX16EachEqual3(void)
5789 {
5790     unsigned short p0[] = {8, 8, 8, 65132u};
5791 
5792     EXPECT_ABORT_BEGIN
5793     TEST_ASSERT_EACH_EQUAL_HEX16(8, p0, 4);
5794     VERIFY_FAILS_END
5795 }
5796 
testEqualHEX8EachEqual(void)5797 void testEqualHEX8EachEqual(void)
5798 {
5799     unsigned char p0[] = {254u, 254u, 254u, 254u};
5800     unsigned char p1[] = {123, 123, 123, 123};
5801     unsigned char p2[] = {8, 8, 8, 2};
5802     unsigned char p3[] = {1, 23, 25, 26};
5803 
5804     TEST_ASSERT_EACH_EQUAL_HEX8(254u, p0, 1);
5805     TEST_ASSERT_EACH_EQUAL_HEX8(254u, p0, 4);
5806     TEST_ASSERT_EACH_EQUAL_HEX8(123, p1, 4);
5807     TEST_ASSERT_EACH_EQUAL_HEX8(8, p2, 3);
5808     TEST_ASSERT_EACH_EQUAL_HEX8(1, p3, 1);
5809 }
5810 
testNotEqualHEX8EachEqual1(void)5811 void testNotEqualHEX8EachEqual1(void)
5812 {
5813     unsigned char p0[] = {253u, 253u, 254u, 253u};
5814 
5815     EXPECT_ABORT_BEGIN
5816     TEST_ASSERT_EACH_EQUAL_HEX8(253u, p0, 4);
5817     VERIFY_FAILS_END
5818 }
5819 
testNotEqualHEX8EachEqual2(void)5820 void testNotEqualHEX8EachEqual2(void)
5821 {
5822     unsigned char p0[] = {254u, 254u, 254u, 253u};
5823 
5824     EXPECT_ABORT_BEGIN
5825     TEST_ASSERT_EACH_EQUAL_HEX8(254u, p0, 4);
5826     VERIFY_FAILS_END
5827 }
5828 
testNotEqualHEX8EachEqual3(void)5829 void testNotEqualHEX8EachEqual3(void)
5830 {
5831     unsigned char p0[] = {1, 8, 8, 8};
5832 
5833     EXPECT_ABORT_BEGIN
5834     TEST_ASSERT_EACH_EQUAL_HEX8(8, p0, 4);
5835     VERIFY_FAILS_END
5836 }
5837 
testEqualMemoryArrays(void)5838 void testEqualMemoryArrays(void)
5839 {
5840     int p0[] = {1, 8, 987, -2};
5841     int p1[] = {1, 8, 987, -2};
5842     int p2[] = {1, 8, 987, 2};
5843     int p3[] = {1, 500, 600, 700};
5844 
5845     TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p0, sizeof(int), 1);
5846     TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p0, sizeof(int), 4);
5847     TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
5848     TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p2, sizeof(int), 3);
5849     TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p3, sizeof(int), 1);
5850 }
5851 
testNotEqualMemoryArraysExpectedNull(void)5852 void testNotEqualMemoryArraysExpectedNull(void)
5853 {
5854     int* p0 = NULL;
5855     int p1[] = {1, 8, 987, 2};
5856 
5857     EXPECT_ABORT_BEGIN
5858     TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
5859     VERIFY_FAILS_END
5860 }
5861 
testNotEqualMemoryArraysActualNull(void)5862 void testNotEqualMemoryArraysActualNull(void)
5863 {
5864     int p0[] = {1, 8, 987, -2};
5865     int* p1 = NULL;
5866 
5867     EXPECT_ABORT_BEGIN
5868     TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
5869     VERIFY_FAILS_END
5870 }
5871 
testNotEqualMemoryArrays1(void)5872 void testNotEqualMemoryArrays1(void)
5873 {
5874     int p0[] = {1, 8, 987, -2};
5875     int p1[] = {1, 8, 987, 2};
5876 
5877     EXPECT_ABORT_BEGIN
5878     TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
5879     VERIFY_FAILS_END
5880 }
5881 
testNotEqualMemoryArrays2(void)5882 void testNotEqualMemoryArrays2(void)
5883 {
5884     int p0[] = {1, 8, 987, -2};
5885     int p1[] = {2, 8, 987, -2};
5886 
5887     EXPECT_ABORT_BEGIN
5888     TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
5889     VERIFY_FAILS_END
5890 }
5891 
testNotEqualMemoryArrays3(void)5892 void testNotEqualMemoryArrays3(void)
5893 {
5894     int p0[] = {1, 8, 987, -2};
5895     int p1[] = {1, 8, 986, -2};
5896 
5897     EXPECT_ABORT_BEGIN
5898     TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
5899     VERIFY_FAILS_END
5900 }
5901 
testEqualMemoryEachEqual(void)5902 void testEqualMemoryEachEqual(void)
5903 {
5904     int p0[] = {1, 8, 987, -2};
5905     int p1[] = {1, 8, 987, -2, 1, 8, 987, -2};
5906     int p2[] = {8, 8, 8, 2};
5907     int p3[] = {8, 500, 600, 700};
5908     int v = 8;
5909 
5910     TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p0, sizeof(int)*4, 1);
5911     TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 2);
5912     TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 1);
5913     TEST_ASSERT_EACH_EQUAL_MEMORY(&v, p2, sizeof(int), 3);
5914     TEST_ASSERT_EACH_EQUAL_MEMORY(&v, p3, sizeof(int), 1);
5915 }
5916 
testNotEqualMemoryEachEqualExpectedNull(void)5917 void testNotEqualMemoryEachEqualExpectedNull(void)
5918 {
5919     int* p0 = NULL;
5920     int p1[] = {1, 8, 987, 2};
5921 
5922     EXPECT_ABORT_BEGIN
5923     TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int), 4);
5924     VERIFY_FAILS_END
5925 }
5926 
testNotEqualMemoryEachEqualActualNull(void)5927 void testNotEqualMemoryEachEqualActualNull(void)
5928 {
5929     int p0[] = {1, 8, 987, -2};
5930     int* p1 = NULL;
5931 
5932     EXPECT_ABORT_BEGIN
5933     TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int), 4);
5934     VERIFY_FAILS_END
5935 }
5936 
testNotEqualMemoryEachEqual1(void)5937 void testNotEqualMemoryEachEqual1(void)
5938 {
5939     int p0[] = {1, 8, 987, -2};
5940     int p1[] = {9, 8, 987, -2, 1, 8, 987, -2, 1, 8, 987, -2};
5941 
5942     EXPECT_ABORT_BEGIN
5943     TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 3);
5944     VERIFY_FAILS_END
5945 }
5946 
testNotEqualMemoryEachEqual2(void)5947 void testNotEqualMemoryEachEqual2(void)
5948 {
5949     int p0[] = {1, 8, 987, -2};
5950     int p1[] = {1, 8, 987, -2, 1, 8, 987, -2, 1, 8, 987, 9};
5951 
5952     EXPECT_ABORT_BEGIN
5953     TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 3);
5954     VERIFY_FAILS_END
5955 }
5956 
testNotEqualMemoryEachEqual3(void)5957 void testNotEqualMemoryEachEqual3(void)
5958 {
5959     int p0[] = {1, 8, 987, -2};
5960     int p1[] = {1, 8, 987, -2, 1, 9, 987, -2, 1, 8, 987, -2};
5961 
5962     EXPECT_ABORT_BEGIN
5963     TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 3);
5964     VERIFY_FAILS_END
5965 }
5966 
testProtection(void)5967 void testProtection(void)
5968 {
5969     volatile int mask = 0;
5970 
5971     if (TEST_PROTECT())
5972     {
5973         mask |= 1;
5974         TEST_ABORT();
5975     }
5976     else
5977     {
5978         Unity.CurrentTestFailed = 0;
5979         mask |= 2;
5980     }
5981 
5982     TEST_ASSERT_EQUAL(3, mask);
5983 }
5984 
testIgnoredAndThenFailInTearDown(void)5985 void testIgnoredAndThenFailInTearDown(void)
5986 {
5987     SetToOneToFailInTearDown = 1;
5988     TEST_IGNORE();
5989 }
5990 
5991 /* Tricky series of macros to set USING_OUTPUT_SPY */
5992 #define USING_SPY_AS(a)           EXPAND_AND_USE_2ND(ASSIGN_VALUE(a), 0)
5993 #define ASSIGN_VALUE(a)           VAL_##a
5994 #define VAL_putcharSpy            0, 1
5995 #define EXPAND_AND_USE_2ND(a, b)  SECOND_PARAM(a, b, throwaway)
5996 #define SECOND_PARAM(a, b, ...)   b
5997 #if USING_SPY_AS(UNITY_OUTPUT_CHAR)
5998   #define USING_OUTPUT_SPY /* true only if UNITY_OUTPUT_CHAR = putcharSpy */
5999 #endif
6000 
6001 #ifdef USING_OUTPUT_SPY
6002 #include <stdio.h>
6003 #define SPY_BUFFER_MAX 40
6004 static char putcharSpyBuffer[SPY_BUFFER_MAX];
6005 #endif
6006 static int indexSpyBuffer;
6007 static int putcharSpyEnabled;
6008 
startPutcharSpy(void)6009 void startPutcharSpy(void) {indexSpyBuffer = 0; putcharSpyEnabled = 1;}
6010 
endPutcharSpy(void)6011 void endPutcharSpy(void) {putcharSpyEnabled = 0;}
6012 
getBufferPutcharSpy(void)6013 char* getBufferPutcharSpy(void)
6014 {
6015 #ifdef USING_OUTPUT_SPY
6016     putcharSpyBuffer[indexSpyBuffer] = '\0';
6017     return putcharSpyBuffer;
6018 #else
6019     return NULL;
6020 #endif
6021 }
6022 
putcharSpy(int c)6023 void putcharSpy(int c)
6024 {
6025 #ifdef USING_OUTPUT_SPY
6026     if (putcharSpyEnabled)
6027     {
6028         if (indexSpyBuffer < SPY_BUFFER_MAX - 1)
6029             putcharSpyBuffer[indexSpyBuffer++] = (char)c;
6030     } else
6031         putchar((char)c);
6032 #endif
6033 }
6034 
6035 /* This is for counting the calls to the flushSpy */
6036 static int flushSpyEnabled;
6037 static int flushSpyCalls = 0;
6038 
startFlushSpy(void)6039 void startFlushSpy(void) { flushSpyCalls = 0; flushSpyEnabled = 1; }
endFlushSpy(void)6040 void endFlushSpy(void) { flushSpyCalls = 0; flushSpyEnabled = 0; }
getFlushSpyCalls(void)6041 int getFlushSpyCalls(void) { return flushSpyCalls; }
6042 
flushSpy(void)6043 void flushSpy(void)
6044 {
6045     if (flushSpyEnabled){ flushSpyCalls++; }
6046 }
6047 
testFailureCountIncrementsAndIsReturnedAtEnd(void)6048 void testFailureCountIncrementsAndIsReturnedAtEnd(void)
6049 {
6050     UNITY_UINT savedFailures = Unity.TestFailures;
6051     Unity.CurrentTestFailed = 1;
6052     startPutcharSpy(); /* Suppress output */
6053     startFlushSpy();
6054     TEST_ASSERT_EQUAL(0, getFlushSpyCalls());
6055     UnityConcludeTest();
6056     endPutcharSpy();
6057     TEST_ASSERT_EQUAL(savedFailures + 1, Unity.TestFailures);
6058 #if defined(UNITY_OUTPUT_FLUSH) && defined(UNITY_OUTPUT_FLUSH_HEADER_DECLARATION)
6059     TEST_ASSERT_EQUAL(1, getFlushSpyCalls());
6060 #else
6061     TEST_ASSERT_EQUAL(0, getFlushSpyCalls());
6062 #endif
6063     endFlushSpy();
6064 
6065     startPutcharSpy(); /* Suppress output */
6066     int failures = UnityEnd();
6067     Unity.TestFailures--;
6068     endPutcharSpy();
6069     TEST_ASSERT_EQUAL(savedFailures + 1, failures);
6070 }
6071 
testCstringsEscapeSequence(void)6072 void testCstringsEscapeSequence(void)
6073 {
6074 #ifndef USING_OUTPUT_SPY
6075     TEST_IGNORE();
6076 #else
6077     startPutcharSpy();
6078     UnityPrint("\x16\x10");
6079     endPutcharSpy();
6080     TEST_ASSERT_EQUAL_STRING("\\x16\\x10", getBufferPutcharSpy());
6081 #endif
6082 }
6083 
testHexPrintsUpToMaxNumberOfNibbles(void)6084 void testHexPrintsUpToMaxNumberOfNibbles(void)
6085 {
6086 #ifndef USING_OUTPUT_SPY
6087     TEST_IGNORE();
6088 #else
6089     startPutcharSpy();
6090     UnityPrintNumberHex(0xBEE, 21);
6091     endPutcharSpy();
6092 #ifdef UNITY_SUPPORT_64
6093     TEST_ASSERT_EQUAL_INT(16, strlen(getBufferPutcharSpy()));
6094 #else
6095     TEST_ASSERT_EQUAL_INT( 8, strlen(getBufferPutcharSpy()));
6096 #endif
6097 #endif
6098 }
6099 
6100 #define TEST_ASSERT_EQUAL_PRINT_NUMBERS(expected, actual) {             \
6101         startPutcharSpy(); UnityPrintNumber((actual)); endPutcharSpy(); \
6102         TEST_ASSERT_EQUAL_STRING((expected), getBufferPutcharSpy());    \
6103         }
6104 
6105 #define TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS(expected, actual) {            \
6106         startPutcharSpy(); UnityPrintNumberUnsigned((actual)); endPutcharSpy(); \
6107         TEST_ASSERT_EQUAL_STRING((expected), getBufferPutcharSpy());            \
6108         }
6109 
testPrintNumbers32(void)6110 void testPrintNumbers32(void)
6111 {
6112 #ifndef USING_OUTPUT_SPY
6113     TEST_IGNORE_MESSAGE("Compile with '-D UNITY_OUTPUT_CHAR=putcharSpy' to enable print testing");
6114 #else
6115     TEST_ASSERT_EQUAL_PRINT_NUMBERS("0", 0);
6116     TEST_ASSERT_EQUAL_PRINT_NUMBERS("1", 1);
6117     TEST_ASSERT_EQUAL_PRINT_NUMBERS("-1", -1);
6118     TEST_ASSERT_EQUAL_PRINT_NUMBERS("2000000000", 2000000000);
6119     TEST_ASSERT_EQUAL_PRINT_NUMBERS("-2147483648", (UNITY_INT32)0x80000000);
6120     TEST_ASSERT_EQUAL_PRINT_NUMBERS("-1",          (UNITY_INT32)0xFFFFFFFF);
6121 #endif
6122 }
6123 
testPrintNumbersUnsigned32(void)6124 void testPrintNumbersUnsigned32(void)
6125 {
6126 #ifndef USING_OUTPUT_SPY
6127     TEST_IGNORE();
6128 #else
6129     TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("0", 0);
6130     TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("1", 1);
6131     TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("1500000000", 1500000000);
6132     TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("2147483648", (UNITY_UINT32)0x80000000);
6133     TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("4294967295", (UNITY_UINT32)0xFFFFFFFF);
6134 #endif
6135 }
6136 
6137 
6138 /* ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES 64 BIT SUPPORT ================== */
6139 
testPrintNumbersInt64(void)6140 void testPrintNumbersInt64(void)
6141 {
6142 #ifndef UNITY_SUPPORT_64
6143     TEST_IGNORE();
6144 #else
6145   #ifndef USING_OUTPUT_SPY
6146     TEST_IGNORE();
6147   #else
6148     TEST_ASSERT_EQUAL_PRINT_NUMBERS("0", 0);
6149     TEST_ASSERT_EQUAL_PRINT_NUMBERS("10000000000", 10000000000);
6150     TEST_ASSERT_EQUAL_PRINT_NUMBERS("-9223372036854775808", (UNITY_INT)0x8000000000000000);
6151     TEST_ASSERT_EQUAL_PRINT_NUMBERS("-1", (UNITY_INT)0xFFFFFFFFFFFFFFFF);
6152   #endif
6153 #endif
6154 }
6155 
testPrintNumbersUInt64(void)6156 void testPrintNumbersUInt64(void)
6157 {
6158 #ifndef UNITY_SUPPORT_64
6159     TEST_IGNORE();
6160 #else
6161   #ifndef USING_OUTPUT_SPY
6162     TEST_IGNORE();
6163   #else
6164     TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("0", 0);
6165     TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("70000000000", 70000000000);
6166     TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("9223372036854775808",  (UNITY_UINT)0x8000000000000000);
6167     TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("18446744073709551615", (UNITY_UINT)0xFFFFFFFFFFFFFFFF);
6168   #endif
6169 #endif
6170 }
6171 
testEqualHex64s(void)6172 void testEqualHex64s(void)
6173 {
6174 #ifndef UNITY_SUPPORT_64
6175     TEST_IGNORE();
6176 #else
6177     UNITY_UINT64 v0, v1;
6178     UNITY_UINT64 *p0, *p1;
6179 
6180     v0 = 0x9876543201234567;
6181     v1 = 0x9876543201234567;
6182     p0 = &v0;
6183     p1 = &v1;
6184 
6185     TEST_ASSERT_EQUAL_HEX64(0x9876543201234567, 0x9876543201234567);
6186     TEST_ASSERT_EQUAL_HEX64(v0, v1);
6187     TEST_ASSERT_EQUAL_HEX64(0x9876543201234567, v1);
6188     TEST_ASSERT_EQUAL_HEX64(v0, 0x9876543201234567);
6189     TEST_ASSERT_EQUAL_HEX64(*p0, v1);
6190     TEST_ASSERT_EQUAL_HEX64(*p0, *p1);
6191     TEST_ASSERT_EQUAL_HEX64(*p0, 0x9876543201234567);
6192 #endif
6193 }
6194 
testEqualUint64s(void)6195 void testEqualUint64s(void)
6196 {
6197 #ifndef UNITY_SUPPORT_64
6198     TEST_IGNORE();
6199 #else
6200     UNITY_UINT64 v0, v1;
6201     UNITY_UINT64 *p0, *p1;
6202 
6203     v0 = 0x9876543201234567;
6204     v1 = 0x9876543201234567;
6205     p0 = &v0;
6206     p1 = &v1;
6207 
6208     TEST_ASSERT_EQUAL_UINT64(0x9876543201234567, 0x9876543201234567);
6209     TEST_ASSERT_EQUAL_UINT64(v0, v1);
6210     TEST_ASSERT_EQUAL_UINT64(0x9876543201234567, v1);
6211     TEST_ASSERT_EQUAL_UINT64(v0, 0x9876543201234567);
6212     TEST_ASSERT_EQUAL_UINT64(*p0, v1);
6213     TEST_ASSERT_EQUAL_UINT64(*p0, *p1);
6214     TEST_ASSERT_EQUAL_UINT64(*p0, 0x9876543201234567);
6215 #endif
6216 }
6217 
testEqualInt64s(void)6218 void testEqualInt64s(void)
6219 {
6220 #ifndef UNITY_SUPPORT_64
6221     TEST_IGNORE();
6222 #else
6223     UNITY_INT64 v0, v1;
6224     UNITY_INT64 *p0, *p1;
6225 
6226     v0 = (UNITY_INT64)0x9876543201234567;
6227     v1 = (UNITY_INT64)0x9876543201234567;
6228     p0 = &v0;
6229     p1 = &v1;
6230 
6231     TEST_ASSERT_EQUAL_INT64(0x9876543201234567, 0x9876543201234567);
6232     TEST_ASSERT_EQUAL_INT64(v0, v1);
6233     TEST_ASSERT_EQUAL_INT64(0x9876543201234567, v1);
6234     TEST_ASSERT_EQUAL_INT64(v0, 0x9876543201234567);
6235     TEST_ASSERT_EQUAL_INT64(*p0, v1);
6236     TEST_ASSERT_EQUAL_INT64(*p0, *p1);
6237     TEST_ASSERT_EQUAL_INT64(*p0, 0x9876543201234567);
6238 #endif
6239 }
6240 
6241 
testNotEqualHex64s(void)6242 void testNotEqualHex64s(void)
6243 {
6244 #ifndef UNITY_SUPPORT_64
6245     TEST_IGNORE();
6246 #else
6247     UNITY_UINT64 v0, v1;
6248 
6249     v0 = 9000000000;
6250     v1 = 9100000000;
6251 
6252     EXPECT_ABORT_BEGIN
6253     TEST_ASSERT_EQUAL_HEX64(v0, v1);
6254     VERIFY_FAILS_END
6255 #endif
6256 }
6257 
testNotEqualUint64s(void)6258 void testNotEqualUint64s(void)
6259 {
6260 #ifndef UNITY_SUPPORT_64
6261     TEST_IGNORE();
6262 #else
6263     UNITY_UINT64 v0, v1;
6264 
6265     v0 = 9000000000;
6266     v1 = 9100000000;
6267 
6268     EXPECT_ABORT_BEGIN
6269     TEST_ASSERT_EQUAL_UINT64(v0, v1);
6270     VERIFY_FAILS_END
6271 #endif
6272 }
6273 
testNotEqualInt64s(void)6274 void testNotEqualInt64s(void)
6275 {
6276 #ifndef UNITY_SUPPORT_64
6277     TEST_IGNORE();
6278 #else
6279     UNITY_INT64 v0, v1;
6280 
6281     v0 = -9000000000;
6282     v1 = 9100000000;
6283 
6284     EXPECT_ABORT_BEGIN
6285     TEST_ASSERT_EQUAL_INT64(v0, v1);
6286     VERIFY_FAILS_END
6287 #endif
6288 }
6289 
testNotEqualHex64sIfSigned(void)6290 void testNotEqualHex64sIfSigned(void)
6291 {
6292 #ifndef UNITY_SUPPORT_64
6293     TEST_IGNORE();
6294 #else
6295     UNITY_INT64 v0, v1;
6296 
6297     v0 = -9000000000;
6298     v1 = 9000000000;
6299 
6300     EXPECT_ABORT_BEGIN
6301     TEST_ASSERT_EQUAL_HEX64(v0, v1);
6302     VERIFY_FAILS_END
6303 #endif
6304 }
6305 
testHEX64sWithinDelta(void)6306 void testHEX64sWithinDelta(void)
6307 {
6308 #ifndef UNITY_SUPPORT_64
6309     TEST_IGNORE();
6310 #else
6311     TEST_ASSERT_HEX64_WITHIN(1, 0x7FFFFFFFFFFFFFFF,0x7FFFFFFFFFFFFFFE);
6312     TEST_ASSERT_HEX64_WITHIN(5, 5000, 4996);
6313     TEST_ASSERT_HEX64_WITHIN(5, 5000, 5005);
6314 #endif
6315 }
6316 
testHEX64sNotWithinDelta(void)6317 void testHEX64sNotWithinDelta(void)
6318 {
6319 #ifndef UNITY_SUPPORT_64
6320     TEST_IGNORE();
6321 #else
6322     EXPECT_ABORT_BEGIN
6323     TEST_ASSERT_HEX64_WITHIN(1, 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFC);
6324     VERIFY_FAILS_END
6325 #endif
6326 }
6327 
testHEX64sNotWithinDeltaEvenThoughASignedIntWouldPass(void)6328 void testHEX64sNotWithinDeltaEvenThoughASignedIntWouldPass(void)
6329 {
6330 #ifndef UNITY_SUPPORT_64
6331     TEST_IGNORE();
6332 #else
6333     EXPECT_ABORT_BEGIN
6334     TEST_ASSERT_HEX64_WITHIN(5, 1, -1);
6335     VERIFY_FAILS_END
6336 #endif
6337 }
6338 
testUINT64sWithinDelta(void)6339 void testUINT64sWithinDelta(void)
6340 {
6341 #ifndef UNITY_SUPPORT_64
6342     TEST_IGNORE();
6343 #else
6344     TEST_ASSERT_UINT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF,0x7FFFFFFFFFFFFFFE);
6345     TEST_ASSERT_UINT64_WITHIN(5, 5000, 4996);
6346     TEST_ASSERT_UINT64_WITHIN(5, 5000, 5005);
6347 #endif
6348 }
6349 
testUINT64sNotWithinDelta(void)6350 void testUINT64sNotWithinDelta(void)
6351 {
6352 #ifndef UNITY_SUPPORT_64
6353     TEST_IGNORE();
6354 #else
6355     EXPECT_ABORT_BEGIN
6356     TEST_ASSERT_UINT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFC);
6357     VERIFY_FAILS_END
6358 #endif
6359 }
6360 
testUINT64sNotWithinDeltaEvenThoughASignedIntWouldPass(void)6361 void testUINT64sNotWithinDeltaEvenThoughASignedIntWouldPass(void)
6362 {
6363 #ifndef UNITY_SUPPORT_64
6364     TEST_IGNORE();
6365 #else
6366     EXPECT_ABORT_BEGIN
6367     TEST_ASSERT_UINT64_WITHIN(5, 1, -1);
6368     VERIFY_FAILS_END
6369 #endif
6370 }
6371 
testINT64sWithinDelta(void)6372 void testINT64sWithinDelta(void)
6373 {
6374 #ifndef UNITY_SUPPORT_64
6375     TEST_IGNORE();
6376 #else
6377     TEST_ASSERT_INT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF,0x7FFFFFFFFFFFFFFE);
6378     TEST_ASSERT_INT64_WITHIN(5, 5000, 4996);
6379     TEST_ASSERT_INT64_WITHIN(5, 5000, 5005);
6380 #endif
6381 }
6382 
testINT64sNotWithinDelta(void)6383 void testINT64sNotWithinDelta(void)
6384 {
6385 #ifndef UNITY_SUPPORT_64
6386     TEST_IGNORE();
6387 #else
6388     EXPECT_ABORT_BEGIN
6389     TEST_ASSERT_INT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFC);
6390     VERIFY_FAILS_END
6391 #endif
6392 }
6393 
testINT64sNotWithinDeltaAndDifferenceOverflows(void)6394 void testINT64sNotWithinDeltaAndDifferenceOverflows(void)
6395 {
6396 #ifndef UNITY_SUPPORT_64
6397     TEST_IGNORE();
6398 #else
6399     EXPECT_ABORT_BEGIN
6400     TEST_ASSERT_INT64_WITHIN(1, 0x8000000000000000, 0x7FFFFFFFFFFFFFFF);
6401     VERIFY_FAILS_END
6402 #endif
6403 }
6404 
testEqualHEX64Arrays(void)6405 void testEqualHEX64Arrays(void)
6406 {
6407 #ifndef UNITY_SUPPORT_64
6408     TEST_IGNORE();
6409 #else
6410     UNITY_UINT64 p0[] = {1, 8, 987, 65132u};
6411     UNITY_UINT64 p1[] = {1, 8, 987, 65132u};
6412     UNITY_UINT64 p2[] = {1, 8, 987, 2};
6413     UNITY_UINT64 p3[] = {1, 500, 600, 700};
6414 
6415     TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p0, 1);
6416     TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p0, 4);
6417     TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p1, 4);
6418     TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p2, 3);
6419     TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p3, 1);
6420 #endif
6421 }
6422 
testEqualUint64Arrays(void)6423 void testEqualUint64Arrays(void)
6424 {
6425 #ifndef UNITY_SUPPORT_64
6426     TEST_IGNORE();
6427 #else
6428     UNITY_UINT64 p0[] = {1, 8, 987, 65132u};
6429     UNITY_UINT64 p1[] = {1, 8, 987, 65132u};
6430     UNITY_UINT64 p2[] = {1, 8, 987, 2};
6431     UNITY_UINT64 p3[] = {1, 500, 600, 700};
6432 
6433     TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p0, 1);
6434     TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p0, 4);
6435     TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p1, 4);
6436     TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p2, 3);
6437     TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p3, 1);
6438 #endif
6439 }
6440 
testEqualInt64Arrays(void)6441 void testEqualInt64Arrays(void)
6442 {
6443 #ifndef UNITY_SUPPORT_64
6444     TEST_IGNORE();
6445 #else
6446     UNITY_INT64 p0[] = {1, 8, 987, -65132};
6447     UNITY_INT64 p1[] = {1, 8, 987, -65132};
6448     UNITY_INT64 p2[] = {1, 8, 987, -2};
6449     UNITY_INT64 p3[] = {1, 500, 600, 700};
6450 
6451     TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p0, 1);
6452     TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p0, 4);
6453     TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p1, 4);
6454     TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p2, 3);
6455     TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p3, 1);
6456 #endif
6457 }
6458 
6459 
testNotEqualHEX64Arrays1(void)6460 void testNotEqualHEX64Arrays1(void)
6461 {
6462 #ifndef UNITY_SUPPORT_64
6463     TEST_IGNORE();
6464 #else
6465     UNITY_UINT64 p0[] = {1, 8, 987, 65132u};
6466     UNITY_UINT64 p1[] = {1, 8, 987, 65131u};
6467 
6468     EXPECT_ABORT_BEGIN
6469     TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p1, 4);
6470     VERIFY_FAILS_END
6471 #endif
6472 }
6473 
testNotEqualHEX64Arrays2(void)6474 void testNotEqualHEX64Arrays2(void)
6475 {
6476 #ifndef UNITY_SUPPORT_64
6477     TEST_IGNORE();
6478 #else
6479     UNITY_UINT64 p0[] = {1, 8, 987, 65132u};
6480     UNITY_UINT64 p1[] = {2, 8, 987, 65132u};
6481 
6482     EXPECT_ABORT_BEGIN
6483     TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p1, 4);
6484     VERIFY_FAILS_END
6485 #endif
6486 }
6487 
testNotEqualUint64Arrays(void)6488 void testNotEqualUint64Arrays(void)
6489 {
6490 #ifndef UNITY_SUPPORT_64
6491     TEST_IGNORE();
6492 #else
6493     UNITY_UINT64 p0[] = {1, 8, 987, 65132u};
6494     UNITY_UINT64 p1[] = {1, 8, 987, 65131u};
6495 
6496     EXPECT_ABORT_BEGIN
6497     TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p1, 4);
6498     VERIFY_FAILS_END
6499 #endif
6500 }
6501 
testNotEqualInt64Arrays(void)6502 void testNotEqualInt64Arrays(void)
6503 {
6504 #ifndef UNITY_SUPPORT_64
6505     TEST_IGNORE();
6506 #else
6507     UNITY_INT64 p0[] = {1, 8, 987, -65132};
6508     UNITY_INT64 p1[] = {1, 8, 987, -65131};
6509 
6510     EXPECT_ABORT_BEGIN
6511     TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p1, 4);
6512     VERIFY_FAILS_END
6513 #endif
6514 }
6515 
6516 /* ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES FLOAT SUPPORT ================== */
6517 
testFloatsWithinDelta(void)6518 void testFloatsWithinDelta(void)
6519 {
6520 #ifdef UNITY_EXCLUDE_FLOAT
6521     TEST_IGNORE();
6522 #else
6523     TEST_ASSERT_FLOAT_WITHIN(0.00003f, 187245.03485f, 187245.03488f);
6524     TEST_ASSERT_FLOAT_WITHIN(1.0f, 187245.0f, 187246.0f);
6525     TEST_ASSERT_FLOAT_WITHIN(0.05f, 9273.2549f, 9273.2049f);
6526     TEST_ASSERT_FLOAT_WITHIN(0.007f, -726.93724f, -726.94424f);
6527 #endif
6528 }
6529 
testFloatsNotWithinDelta(void)6530 void testFloatsNotWithinDelta(void)
6531 {
6532 #ifdef UNITY_EXCLUDE_FLOAT
6533     TEST_IGNORE();
6534 #else
6535     EXPECT_ABORT_BEGIN
6536     TEST_ASSERT_FLOAT_WITHIN(0.05f, 9273.2649f, 9273.2049f);
6537     VERIFY_FAILS_END
6538 #endif
6539 }
6540 
testFloatsEqual(void)6541 void testFloatsEqual(void)
6542 {
6543 #ifdef UNITY_EXCLUDE_FLOAT
6544     TEST_IGNORE();
6545 #else
6546     TEST_ASSERT_EQUAL_FLOAT(187245.0f, 187246.0f);
6547     TEST_ASSERT_EQUAL_FLOAT(18724.5f, 18724.6f);
6548     TEST_ASSERT_EQUAL_FLOAT(9273.2549f, 9273.2599f);
6549     TEST_ASSERT_EQUAL_FLOAT(-726.93724f, -726.9374f);
6550 #endif
6551 }
6552 
testFloatsNotEqual(void)6553 void testFloatsNotEqual(void)
6554 {
6555 #ifdef UNITY_EXCLUDE_FLOAT
6556     TEST_IGNORE();
6557 #else
6558     EXPECT_ABORT_BEGIN
6559     TEST_ASSERT_EQUAL_FLOAT(9273.9649f, 9273.0049f);
6560     VERIFY_FAILS_END
6561 #endif
6562 }
6563 
testFloatsNotEqualNegative1(void)6564 void testFloatsNotEqualNegative1(void)
6565 {
6566 #ifdef UNITY_EXCLUDE_FLOAT
6567     TEST_IGNORE();
6568 #else
6569     EXPECT_ABORT_BEGIN
6570     TEST_ASSERT_EQUAL_FLOAT(-9273.9649f, -9273.0049f);
6571     VERIFY_FAILS_END
6572 #endif
6573 }
6574 
testFloatsNotEqualNegative2(void)6575 void testFloatsNotEqualNegative2(void)
6576 {
6577 #ifdef UNITY_EXCLUDE_FLOAT
6578     TEST_IGNORE();
6579 #else
6580     EXPECT_ABORT_BEGIN
6581     TEST_ASSERT_EQUAL_FLOAT(-9273.0049f, -9273.9649f);
6582     VERIFY_FAILS_END
6583 #endif
6584 }
6585 
testFloatsNotEqualActualNaN(void)6586 void testFloatsNotEqualActualNaN(void)
6587 {
6588 #ifdef UNITY_EXCLUDE_FLOAT
6589     TEST_IGNORE();
6590 #else
6591     EXPECT_ABORT_BEGIN
6592     TEST_ASSERT_EQUAL_FLOAT(85.963f, 0.0f / f_zero);
6593     VERIFY_FAILS_END
6594 #endif
6595 }
6596 
testFloatsNotEqualExpectedNaN(void)6597 void testFloatsNotEqualExpectedNaN(void)
6598 {
6599 #ifdef UNITY_EXCLUDE_FLOAT
6600     TEST_IGNORE();
6601 #else
6602     EXPECT_ABORT_BEGIN
6603     TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 85.963f);
6604     VERIFY_FAILS_END
6605 #endif
6606 }
6607 
testFloatsEqualBothNaN(void)6608 void testFloatsEqualBothNaN(void)
6609 {
6610 #ifdef UNITY_EXCLUDE_FLOAT
6611     TEST_IGNORE();
6612 #else
6613     TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 0.0f / f_zero);
6614 #endif
6615 }
6616 
testFloatsNotEqualInfNaN(void)6617 void testFloatsNotEqualInfNaN(void)
6618 {
6619 #ifdef UNITY_EXCLUDE_FLOAT
6620     TEST_IGNORE();
6621 #else
6622     EXPECT_ABORT_BEGIN
6623     TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 0.0f / f_zero);
6624     VERIFY_FAILS_END
6625 #endif
6626 }
6627 
testFloatsNotEqualNaNInf(void)6628 void testFloatsNotEqualNaNInf(void)
6629 {
6630 #ifdef UNITY_EXCLUDE_FLOAT
6631     TEST_IGNORE();
6632 #else
6633     EXPECT_ABORT_BEGIN
6634     TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 1.0f / f_zero);
6635     VERIFY_FAILS_END
6636 #endif
6637 }
6638 
testFloatsNotEqualActualInf(void)6639 void testFloatsNotEqualActualInf(void)
6640 {
6641 #ifdef UNITY_EXCLUDE_FLOAT
6642     TEST_IGNORE();
6643 #else
6644     EXPECT_ABORT_BEGIN
6645     TEST_ASSERT_EQUAL_FLOAT(321.642f, 1.0f / f_zero);
6646     VERIFY_FAILS_END
6647 #endif
6648 }
6649 
testFloatsNotEqualExpectedInf(void)6650 void testFloatsNotEqualExpectedInf(void)
6651 {
6652 #ifdef UNITY_EXCLUDE_FLOAT
6653     TEST_IGNORE();
6654 #else
6655     EXPECT_ABORT_BEGIN
6656     TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 321.642f);
6657     VERIFY_FAILS_END
6658 #endif
6659 }
6660 
testFloatsEqualBothInf(void)6661 void testFloatsEqualBothInf(void)
6662 {
6663 #ifdef UNITY_EXCLUDE_FLOAT
6664     TEST_IGNORE();
6665 #else
6666     TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 1.0f / f_zero);
6667 #endif
6668 }
6669 
testFloatsNotEqualPlusMinusInf(void)6670 void testFloatsNotEqualPlusMinusInf(void)
6671 {
6672 #ifdef UNITY_EXCLUDE_FLOAT
6673     TEST_IGNORE();
6674 #else
6675     EXPECT_ABORT_BEGIN
6676     TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, -1.0f / f_zero);
6677     VERIFY_FAILS_END
6678 #endif
6679 }
6680 
testFloatIsPosInf1(void)6681 void testFloatIsPosInf1(void)
6682 {
6683 #ifdef UNITY_EXCLUDE_FLOAT
6684     TEST_IGNORE();
6685 #else
6686     TEST_ASSERT_FLOAT_IS_INF(2.0f / f_zero);
6687 #endif
6688 }
6689 
testFloatIsPosInf2(void)6690 void testFloatIsPosInf2(void)
6691 {
6692 #ifdef UNITY_EXCLUDE_FLOAT
6693     TEST_IGNORE();
6694 #else
6695     EXPECT_ABORT_BEGIN
6696     TEST_ASSERT_FLOAT_IS_NOT_INF(2.0f / f_zero);
6697     VERIFY_FAILS_END
6698 #endif
6699 }
6700 
testFloatIsNegInf1(void)6701 void testFloatIsNegInf1(void)
6702 {
6703 #ifdef UNITY_EXCLUDE_FLOAT
6704     TEST_IGNORE();
6705 #else
6706     TEST_ASSERT_FLOAT_IS_NEG_INF(-3.0f / f_zero);
6707 #endif
6708 }
6709 
testFloatIsNegInf2(void)6710 void testFloatIsNegInf2(void)
6711 {
6712 #ifdef UNITY_EXCLUDE_FLOAT
6713     TEST_IGNORE();
6714 #else
6715     EXPECT_ABORT_BEGIN
6716     TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(-3.0f / f_zero);
6717     VERIFY_FAILS_END
6718 #endif
6719 }
6720 
testFloatIsNotPosInf1(void)6721 void testFloatIsNotPosInf1(void)
6722 {
6723 #ifdef UNITY_EXCLUDE_FLOAT
6724     TEST_IGNORE();
6725 #else
6726     EXPECT_ABORT_BEGIN
6727     TEST_ASSERT_FLOAT_IS_INF(2.0f);
6728     VERIFY_FAILS_END
6729 #endif
6730 }
6731 
testFloatIsNotPosInf2(void)6732 void testFloatIsNotPosInf2(void)
6733 {
6734 #ifdef UNITY_EXCLUDE_FLOAT
6735     TEST_IGNORE();
6736 #else
6737     TEST_ASSERT_FLOAT_IS_NOT_INF(2.0f);
6738 #endif
6739 }
6740 
testFloatIsNotNegInf(void)6741 void testFloatIsNotNegInf(void)
6742 {
6743 #ifdef UNITY_EXCLUDE_FLOAT
6744     TEST_IGNORE();
6745 #else
6746     EXPECT_ABORT_BEGIN
6747     TEST_ASSERT_FLOAT_IS_NEG_INF(-999.876f);
6748     VERIFY_FAILS_END
6749 #endif
6750 }
6751 
testFloatIsNan1(void)6752 void testFloatIsNan1(void)
6753 {
6754 #ifdef UNITY_EXCLUDE_FLOAT
6755     TEST_IGNORE();
6756 #else
6757     TEST_ASSERT_FLOAT_IS_NAN(0.0f / f_zero);
6758 #endif
6759 }
6760 
testFloatIsNan2(void)6761 void testFloatIsNan2(void)
6762 {
6763 #ifdef UNITY_EXCLUDE_FLOAT
6764     TEST_IGNORE();
6765 #else
6766     EXPECT_ABORT_BEGIN
6767     TEST_ASSERT_FLOAT_IS_NOT_NAN(0.0f / f_zero);
6768     VERIFY_FAILS_END
6769 #endif
6770 }
6771 
testFloatIsNotNan1(void)6772 void testFloatIsNotNan1(void)
6773 {
6774 #ifdef UNITY_EXCLUDE_FLOAT
6775     TEST_IGNORE();
6776 #else
6777     EXPECT_ABORT_BEGIN
6778     TEST_ASSERT_FLOAT_IS_NAN(234.9f);
6779     VERIFY_FAILS_END
6780 #endif
6781 }
6782 
testFloatIsNotNan2(void)6783 void testFloatIsNotNan2(void)
6784 {
6785 #ifdef UNITY_EXCLUDE_FLOAT
6786     TEST_IGNORE();
6787 #else
6788     TEST_ASSERT_FLOAT_IS_NOT_NAN(234.9f);
6789 #endif
6790 }
6791 
testFloatInfIsNotNan(void)6792 void testFloatInfIsNotNan(void)
6793 {
6794 #ifdef UNITY_EXCLUDE_FLOAT
6795     TEST_IGNORE();
6796 #else
6797     EXPECT_ABORT_BEGIN
6798     TEST_ASSERT_FLOAT_IS_NAN(1.0f / f_zero);
6799     VERIFY_FAILS_END
6800 #endif
6801 }
6802 
testFloatNanIsNotInf(void)6803 void testFloatNanIsNotInf(void)
6804 {
6805 #ifdef UNITY_EXCLUDE_FLOAT
6806     TEST_IGNORE();
6807 #else
6808     EXPECT_ABORT_BEGIN
6809     TEST_ASSERT_FLOAT_IS_INF(0.0f / f_zero);
6810     VERIFY_FAILS_END
6811 #endif
6812 }
6813 
testFloatIsDeterminate1(void)6814 void testFloatIsDeterminate1(void)
6815 {
6816 #ifdef UNITY_EXCLUDE_FLOAT
6817     TEST_IGNORE();
6818 #else
6819     TEST_ASSERT_FLOAT_IS_DETERMINATE(0.0f);
6820     TEST_ASSERT_FLOAT_IS_DETERMINATE(123.3f);
6821     TEST_ASSERT_FLOAT_IS_DETERMINATE(-88.3f);
6822 #endif
6823 }
6824 
testFloatIsDeterminate2(void)6825 void testFloatIsDeterminate2(void)
6826 {
6827 #ifdef UNITY_EXCLUDE_FLOAT
6828     TEST_IGNORE();
6829 #else
6830     EXPECT_ABORT_BEGIN
6831     TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(-88.3f);
6832     VERIFY_FAILS_END
6833 #endif
6834 }
6835 
testFloatIsNotDeterminate1(void)6836 void testFloatIsNotDeterminate1(void)
6837 {
6838 #ifdef UNITY_EXCLUDE_FLOAT
6839     TEST_IGNORE();
6840 #else
6841     TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(1.0f / f_zero);
6842     TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(-1.0f / f_zero);
6843     TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(0.0f / f_zero);
6844 #endif
6845 }
6846 
testFloatIsNotDeterminate2(void)6847 void testFloatIsNotDeterminate2(void)
6848 {
6849 #ifdef UNITY_EXCLUDE_FLOAT
6850     TEST_IGNORE();
6851 #else
6852     EXPECT_ABORT_BEGIN
6853     TEST_ASSERT_FLOAT_IS_DETERMINATE(-1.0f / f_zero);
6854     VERIFY_FAILS_END
6855 #endif
6856 }
6857 
testFloatTraitFailsOnInvalidTrait(void)6858 void testFloatTraitFailsOnInvalidTrait(void)
6859 {
6860 #ifdef UNITY_EXCLUDE_FLOAT
6861     TEST_IGNORE();
6862 #else
6863     EXPECT_ABORT_BEGIN
6864     UnityAssertFloatSpecial(1.0f, NULL, __LINE__, UNITY_FLOAT_INVALID_TRAIT);
6865     VERIFY_FAILS_END
6866 #endif
6867 }
6868 
6869 
testEqualFloatArrays(void)6870 void testEqualFloatArrays(void)
6871 {
6872 #ifdef UNITY_EXCLUDE_FLOAT
6873     TEST_IGNORE();
6874 #else
6875     float p0[] = {1.0f, -8.0f,  25.4f, -0.123f};
6876     float p1[] = {1.0f, -8.0f,  25.4f, -0.123f};
6877     float p2[] = {1.0f, -8.0f,  25.4f, -0.2f};
6878     float p3[] = {1.0f, -23.0f, 25.0f, -0.26f};
6879 
6880     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p0, 1);
6881     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p0, 4);
6882     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
6883     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p2, 3);
6884     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p3, 1);
6885     TEST_ASSERT_EQUAL_FLOAT_ARRAY(NULL, NULL, 1);
6886 #endif
6887 }
6888 
testNotEqualFloatArraysExpectedNull(void)6889 void testNotEqualFloatArraysExpectedNull(void)
6890 {
6891 #ifdef UNITY_EXCLUDE_FLOAT
6892     TEST_IGNORE();
6893 #else
6894     float* p0 = NULL;
6895     float p1[] = {1.0f, 8.0f, 25.4f, 0.252f};
6896 
6897     EXPECT_ABORT_BEGIN
6898     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
6899     VERIFY_FAILS_END
6900 #endif
6901 }
6902 
testNotEqualFloatArraysActualNull(void)6903 void testNotEqualFloatArraysActualNull(void)
6904 {
6905 #ifdef UNITY_EXCLUDE_FLOAT
6906     TEST_IGNORE();
6907 #else
6908     float p0[] = {1.0f, 8.0f, 25.4f, 0.253f};
6909     float* p1 = NULL;
6910 
6911     EXPECT_ABORT_BEGIN
6912     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
6913     VERIFY_FAILS_END
6914 #endif
6915 }
6916 
testNotEqualFloatArrays1(void)6917 void testNotEqualFloatArrays1(void)
6918 {
6919 #ifdef UNITY_EXCLUDE_FLOAT
6920     TEST_IGNORE();
6921 #else
6922     float p0[] = {1.0f, 8.0f, 25.4f, 0.253f};
6923     float p1[] = {1.0f, 8.0f, 25.4f, 0.252f};
6924 
6925     EXPECT_ABORT_BEGIN
6926     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
6927     VERIFY_FAILS_END
6928 #endif
6929 }
6930 
testNotEqualFloatArrays2(void)6931 void testNotEqualFloatArrays2(void)
6932 {
6933 #ifdef UNITY_EXCLUDE_FLOAT
6934     TEST_IGNORE();
6935 #else
6936     float p0[] = {1.0f, 8.0f, 25.4f, 0.253f};
6937     float p1[] = {2.0f, 8.0f, 25.4f, 0.253f};
6938 
6939     EXPECT_ABORT_BEGIN
6940     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
6941     VERIFY_FAILS_END
6942 #endif
6943 }
6944 
testNotEqualFloatArrays3(void)6945 void testNotEqualFloatArrays3(void)
6946 {
6947 #ifdef UNITY_EXCLUDE_FLOAT
6948     TEST_IGNORE();
6949 #else
6950     float p0[] = {1.0f, 8.0f, 25.4f, 0.253f};
6951     float p1[] = {1.0f, 8.0f, 25.5f, 0.253f};
6952 
6953     EXPECT_ABORT_BEGIN
6954     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
6955     VERIFY_FAILS_END
6956 #endif
6957 }
6958 
testNotEqualFloatArraysNegative1(void)6959 void testNotEqualFloatArraysNegative1(void)
6960 {
6961 #ifdef UNITY_EXCLUDE_FLOAT
6962     TEST_IGNORE();
6963 #else
6964     float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f};
6965     float p1[] = {-1.0f, -8.0f, -25.4f, -0.252f};
6966 
6967     EXPECT_ABORT_BEGIN
6968     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
6969     VERIFY_FAILS_END
6970 #endif
6971 }
6972 
testNotEqualFloatArraysNegative2(void)6973 void testNotEqualFloatArraysNegative2(void)
6974 {
6975 #ifdef UNITY_EXCLUDE_FLOAT
6976     TEST_IGNORE();
6977 #else
6978     float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f};
6979     float p1[] = {-2.0f, -8.0f, -25.4f, -0.253f};
6980 
6981     EXPECT_ABORT_BEGIN
6982     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
6983     VERIFY_FAILS_END
6984 #endif
6985 }
6986 
testNotEqualFloatArraysNegative3(void)6987 void testNotEqualFloatArraysNegative3(void)
6988 {
6989 #ifdef UNITY_EXCLUDE_FLOAT
6990     TEST_IGNORE();
6991 #else
6992     float p0[] = {-1.0f, -8.0f, -25.4f, -0.253f};
6993     float p1[] = {-1.0f, -8.0f, -25.5f, -0.253f};
6994 
6995     EXPECT_ABORT_BEGIN
6996     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
6997     VERIFY_FAILS_END
6998 #endif
6999 }
7000 
testEqualFloatArraysNaN(void)7001 void testEqualFloatArraysNaN(void)
7002 {
7003 #ifdef UNITY_EXCLUDE_FLOAT
7004     TEST_IGNORE();
7005 #else
7006     float p0[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f};
7007     float p1[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f};
7008 
7009     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
7010 #endif
7011 }
7012 
testEqualFloatArraysInf(void)7013 void testEqualFloatArraysInf(void)
7014 {
7015 #ifdef UNITY_EXCLUDE_FLOAT
7016     TEST_IGNORE();
7017 #else
7018     float p0[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f};
7019     float p1[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f};
7020 
7021     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
7022 #endif
7023 }
7024 
testNotEqualFloatArraysLengthZero(void)7025 void testNotEqualFloatArraysLengthZero(void)
7026 {
7027 #ifdef UNITY_EXCLUDE_FLOAT
7028     TEST_IGNORE();
7029 #else
7030     float p0[1] = {0.0f};
7031     float p1[1] = {0.0f};
7032 
7033     EXPECT_ABORT_BEGIN
7034     TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 0);
7035     VERIFY_FAILS_END
7036 #endif
7037 }
7038 
testEqualFloatEachEqual(void)7039 void testEqualFloatEachEqual(void)
7040 {
7041 #ifdef UNITY_EXCLUDE_FLOAT
7042     TEST_IGNORE();
7043 #else
7044     float p0[] = {1.0f, 1.0f, 1.0f, 1.0f};
7045     float p1[] = {-0.123f, -0.123f, -0.123f, -0.123f};
7046     float p2[] = {25.4f, 25.4f, 25.4f, -0.2f};
7047     float p3[] = {1.0f, -23.0f, 25.0f, -0.26f};
7048 
7049     TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 1);
7050     TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 4);
7051     TEST_ASSERT_EACH_EQUAL_FLOAT(-0.123f, p1, 4);
7052     TEST_ASSERT_EACH_EQUAL_FLOAT(25.4f, p2, 3);
7053     TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p3, 1);
7054 #endif
7055 }
7056 
testNotEqualFloatEachEqualActualNull(void)7057 void testNotEqualFloatEachEqualActualNull(void)
7058 {
7059 #ifdef UNITY_EXCLUDE_FLOAT
7060     TEST_IGNORE();
7061 #else
7062     float* p0 = NULL;
7063 
7064     EXPECT_ABORT_BEGIN
7065     TEST_ASSERT_EACH_EQUAL_FLOAT(5, p0, 4);
7066     VERIFY_FAILS_END
7067 #endif
7068 }
7069 
testNotEqualFloatEachEqual1(void)7070 void testNotEqualFloatEachEqual1(void)
7071 {
7072 #ifdef UNITY_EXCLUDE_FLOAT
7073     TEST_IGNORE();
7074 #else
7075     float p0[] = {0.253f, 8.0f, 0.253f, 0.253f};
7076 
7077     EXPECT_ABORT_BEGIN
7078     TEST_ASSERT_EACH_EQUAL_FLOAT(0.253f, p0, 4);
7079     VERIFY_FAILS_END
7080 #endif
7081 }
7082 
testNotEqualFloatEachEqual2(void)7083 void testNotEqualFloatEachEqual2(void)
7084 {
7085 #ifdef UNITY_EXCLUDE_FLOAT
7086     TEST_IGNORE();
7087 #else
7088     float p0[] = {8.0f, 8.0f, 8.0f, 0.253f};
7089 
7090     EXPECT_ABORT_BEGIN
7091     TEST_ASSERT_EACH_EQUAL_FLOAT(8.0f, p0, 4);
7092     VERIFY_FAILS_END
7093 #endif
7094 }
7095 
testNotEqualFloatEachEqual3(void)7096 void testNotEqualFloatEachEqual3(void)
7097 {
7098 #ifdef UNITY_EXCLUDE_FLOAT
7099     TEST_IGNORE();
7100 #else
7101     float p0[] = {1.0f, 1.0f, 1.0f, 0.253f};
7102 
7103     EXPECT_ABORT_BEGIN
7104     TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 4);
7105     VERIFY_FAILS_END
7106 #endif
7107 }
7108 
testNotEqualFloatEachEqualNegative1(void)7109 void testNotEqualFloatEachEqualNegative1(void)
7110 {
7111 #ifdef UNITY_EXCLUDE_FLOAT
7112     TEST_IGNORE();
7113 #else
7114     float p0[] = {-1.0f, -0.253f, -0.253f, -0.253f};
7115 
7116     EXPECT_ABORT_BEGIN
7117     TEST_ASSERT_EACH_EQUAL_FLOAT(-0.253f, p0, 4);
7118     VERIFY_FAILS_END
7119 #endif
7120 }
7121 
testNotEqualFloatEachEqualNegative2(void)7122 void testNotEqualFloatEachEqualNegative2(void)
7123 {
7124 #ifdef UNITY_EXCLUDE_FLOAT
7125     TEST_IGNORE();
7126 #else
7127     float p0[] = {-25.4f, -8.0f, -25.4f, -25.4f};
7128 
7129     EXPECT_ABORT_BEGIN
7130     TEST_ASSERT_EACH_EQUAL_FLOAT(-25.4f, p0, 4);
7131     VERIFY_FAILS_END
7132 #endif
7133 }
7134 
testNotEqualFloatEachEqualNegative3(void)7135 void testNotEqualFloatEachEqualNegative3(void)
7136 {
7137 #ifdef UNITY_EXCLUDE_FLOAT
7138     TEST_IGNORE();
7139 #else
7140     float p0[] = {-8.0f, -8.0f, -8.0f, -0.253f};
7141 
7142     EXPECT_ABORT_BEGIN
7143     TEST_ASSERT_EACH_EQUAL_FLOAT(-8.0f, p0, 4);
7144     VERIFY_FAILS_END
7145 #endif
7146 }
7147 
testEqualFloatEachEqualNaN(void)7148 void testEqualFloatEachEqualNaN(void)
7149 {
7150 #ifdef UNITY_EXCLUDE_FLOAT
7151     TEST_IGNORE();
7152 #else
7153     float p0[] = {0.0f / f_zero, 0.0f / f_zero, 0.0f / f_zero, 0.0f / f_zero};
7154 
7155     TEST_ASSERT_EACH_EQUAL_FLOAT(0.0f / f_zero, p0, 4);
7156 #endif
7157 }
7158 
testEqualFloatEachEqualInf(void)7159 void testEqualFloatEachEqualInf(void)
7160 {
7161 #ifdef UNITY_EXCLUDE_FLOAT
7162     TEST_IGNORE();
7163 #else
7164     float p0[] = {1.0f / f_zero, 1.0f / f_zero, 25.4f, 0.253f};
7165 
7166     TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f / f_zero, p0, 2);
7167 #endif
7168 }
7169 
testNotEqualFloatEachEqualLengthZero(void)7170 void testNotEqualFloatEachEqualLengthZero(void)
7171 {
7172 #ifdef UNITY_EXCLUDE_FLOAT
7173     TEST_IGNORE();
7174 #else
7175     float p0[1] = {0.0f};
7176 
7177     EXPECT_ABORT_BEGIN
7178     TEST_ASSERT_EACH_EQUAL_FLOAT(0.0f, p0, 0);
7179     VERIFY_FAILS_END
7180 #endif
7181 }
7182 
7183 #define TEST_ASSERT_EQUAL_PRINT_FLOATING(expected, actual) {            \
7184         startPutcharSpy(); UnityPrintFloat((actual)); endPutcharSpy();  \
7185         TEST_ASSERT_EQUAL_STRING((expected), getBufferPutcharSpy());    \
7186         }
7187 
testFloatPrinting(void)7188 void testFloatPrinting(void)
7189 {
7190 #if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_INCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
7191     TEST_IGNORE();
7192 #else
7193     TEST_ASSERT_EQUAL_PRINT_FLOATING("0",            0.0f);
7194     TEST_ASSERT_EQUAL_PRINT_FLOATING("4.99e-07",     0.000000499f);
7195     TEST_ASSERT_EQUAL_PRINT_FLOATING("0.1004695",    0.100469499f);
7196     TEST_ASSERT_EQUAL_PRINT_FLOATING("2",            1.9999995f); /*Rounding to int place*/
7197     TEST_ASSERT_EQUAL_PRINT_FLOATING("1",            1.0f);
7198     TEST_ASSERT_EQUAL_PRINT_FLOATING("1.25",         1.25f);
7199     TEST_ASSERT_EQUAL_PRINT_FLOATING("7.999999",     7.999999f); /*Not rounding*/
7200     TEST_ASSERT_EQUAL_PRINT_FLOATING("16.00002",     16.00002f);
7201     TEST_ASSERT_EQUAL_PRINT_FLOATING("16.00004",     16.00004f);
7202     TEST_ASSERT_EQUAL_PRINT_FLOATING("16.00006",     16.00006f);
7203     TEST_ASSERT_EQUAL_PRINT_FLOATING("9999999",      9999999.0f); /*Last full print integer*/
7204 
7205     TEST_ASSERT_EQUAL_PRINT_FLOATING("-0",            -0.0f);
7206     TEST_ASSERT_EQUAL_PRINT_FLOATING("-4.99e-07",     -0.000000499f);
7207     TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.1004695",    -0.100469499f);
7208     TEST_ASSERT_EQUAL_PRINT_FLOATING("-2",            -1.9999995f); /*Rounding to int place*/
7209     TEST_ASSERT_EQUAL_PRINT_FLOATING("-1",            -1.0f);
7210     TEST_ASSERT_EQUAL_PRINT_FLOATING("-1.25",         -1.25f);
7211     TEST_ASSERT_EQUAL_PRINT_FLOATING("-7.999999",     -7.999999f); /*Not rounding*/
7212     TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.00002",     -16.00002f);
7213     TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.00004",     -16.00004f);
7214     TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.00006",     -16.00006f);
7215     TEST_ASSERT_EQUAL_PRINT_FLOATING("-9999999",      -9999999.0f); /*Last full print integer*/
7216 
7217     /* Fails, prints "4.294968e+09" due to FP math imprecision
7218      * TEST_ASSERT_EQUAL_PRINT_FLOATING("4.294967e+09",  4294967296.0f); */
7219     TEST_ASSERT_EQUAL_PRINT_FLOATING("5e+09",        5000000000.0f);
7220     TEST_ASSERT_EQUAL_PRINT_FLOATING("8e+09",        8.0e+09f);
7221     TEST_ASSERT_EQUAL_PRINT_FLOATING("8.309999e+09", 8309999104.0f);
7222     TEST_ASSERT_EQUAL_PRINT_FLOATING("1e+10",        1.0e+10f);
7223     TEST_ASSERT_EQUAL_PRINT_FLOATING("1e+10",        10000000000.0f);
7224     /* Some compilers have trouble with inexact float constants, a float cast works generally */
7225     TEST_ASSERT_EQUAL_PRINT_FLOATING("1.000055e+10", (float)1.000055e+10f);
7226     TEST_ASSERT_EQUAL_PRINT_FLOATING("1.1e+38",      (float)1.10000005e+38f);
7227     TEST_ASSERT_EQUAL_PRINT_FLOATING("1.635299e+10", 1.63529943e+10f);
7228     /* Fails, prints "3.402824e+38" due to FP math imprecision
7229      * TEST_ASSERT_EQUAL_PRINT_FLOATING("3.402823e+38", 3.40282346638e38f); */
7230 
7231     TEST_ASSERT_EQUAL_PRINT_FLOATING("-1e+10",        -1.0e+10f);
7232     /* Fails, prints "-3.402824e+38" due to FP math imprecision
7233      * TEST_ASSERT_EQUAL_PRINT_FLOATING("-3.402823e+38", -3.40282346638e38f); */
7234 #endif
7235 }
7236 
testFloatPrintingRoundTiesToEven(void)7237 void testFloatPrintingRoundTiesToEven(void)
7238 {
7239 #if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_INCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
7240     TEST_IGNORE();
7241 #else
7242   #ifdef UNITY_ROUND_TIES_AWAY_FROM_ZERO
7243     TEST_ASSERT_EQUAL_PRINT_FLOATING("0.0004882813",  0.00048828125f);
7244     TEST_ASSERT_EQUAL_PRINT_FLOATING("488281.3",      488281.25f);
7245     TEST_ASSERT_EQUAL_PRINT_FLOATING("5.000001e-07",  0.00000050000005f);
7246     TEST_ASSERT_EQUAL_PRINT_FLOATING("-5.000001e-07", -0.00000050000005f);
7247   #else /* Default to Round ties to even */
7248     TEST_ASSERT_EQUAL_PRINT_FLOATING("0.0004882812",  0.00048828125f);
7249     TEST_ASSERT_EQUAL_PRINT_FLOATING("488281.2",      488281.25f);
7250     TEST_ASSERT_EQUAL_PRINT_FLOATING("5e-07",         0.00000050000005f);
7251     TEST_ASSERT_EQUAL_PRINT_FLOATING("-5e-07",        -0.00000050000005f);
7252   #endif
7253 #endif
7254 }
7255 
testFloatPrintingInfinityAndNaN(void)7256 void testFloatPrintingInfinityAndNaN(void)
7257 {
7258 #if defined(UNITY_EXCLUDE_FLOAT_PRINT) || !defined(USING_OUTPUT_SPY)
7259     TEST_IGNORE();
7260 #else
7261     TEST_ASSERT_EQUAL_PRINT_FLOATING("inf",   1.0f / f_zero);
7262     TEST_ASSERT_EQUAL_PRINT_FLOATING("-inf", -1.0f / f_zero);
7263 
7264     TEST_ASSERT_EQUAL_PRINT_FLOATING("nan",   0.0f / f_zero);
7265 #endif
7266 }
7267 
7268 #if defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) && defined(USING_OUTPUT_SPY)
7269 #ifdef UNITY_INCLUDE_DOUBLE
printFloatValue(float f)7270 static void printFloatValue(float f)
7271 {
7272     char expected[18];
7273 
7274     startPutcharSpy();
7275     UnityPrintFloat(f);
7276 
7277     sprintf(expected, "%.9g", f);
7278     /* We print all NaN's as "nan", not "-nan" */
7279     if (strcmp(expected, "-nan") == 0) strcpy(expected, "nan");
7280 
7281     if (strcmp(expected, getBufferPutcharSpy()))
7282     {
7283         /* Fail with diagnostic printing */
7284         TEST_ASSERT_EQUAL_PRINT_FLOATING(expected, f);
7285     }
7286 }
7287 #else
printFloatValue(float f)7288 static void printFloatValue(float f)
7289 {
7290     char expected[18];
7291     char expected_lower[18];
7292     char expected_lower2[18];
7293     char expected_lower3[18];
7294     char expected_higher[18];
7295     char expected_higher2[18];
7296     char expected_higher3[18];
7297 
7298     startPutcharSpy();
7299     UnityPrintFloat(f);
7300 
7301     sprintf(expected, "%.7g", f);
7302     /* We print all NaN's as "nan", not "-nan" */
7303     if (strcmp(expected, "-nan") == 0) strcpy(expected, "nan");
7304 
7305     strcpy(expected_lower, expected);
7306     strcpy(expected_lower2, expected);
7307     strcpy(expected_lower3, expected);
7308     strcpy(expected_higher, expected);
7309     strcpy(expected_higher2, expected);
7310     strcpy(expected_higher3, expected);
7311 
7312     /* Allow for rounding differences in the last digit */
7313     double lower = (double)f * 0.99999995;
7314     double higher = (double)f * 1.00000005;
7315 
7316     if(isfinite(lower)) sprintf(expected_lower, "%.7g", lower);
7317     if(isfinite(higher)) sprintf(expected_higher, "%.7g", higher);
7318 
7319     /* Outside [1,10000000] allow for relative error of +/-2.5e-7 */
7320     if (f < 1.0 || f > 10000000)
7321     {
7322         double lower2 = (double)f * 0.99999985;
7323         double lower3 = (double)f * 0.99999975;
7324         double higher2 = (double)f * 1.00000015;
7325         double higher3 = (double)f * 1.00000025;
7326 
7327         if (isfinite(lower2)) sprintf(expected_lower2, "%.7g", lower2);
7328         if (isfinite(lower3)) sprintf(expected_lower3, "%.7g", lower3);
7329         if (isfinite(higher2)) sprintf(expected_higher2, "%.7g", higher2);
7330         if (isfinite(higher3)) sprintf(expected_higher3, "%.7g", higher3);
7331     }
7332 
7333     if (strcmp(expected, getBufferPutcharSpy()) != 0 &&
7334         strcmp(expected_lower, getBufferPutcharSpy()) != 0 &&
7335         strcmp(expected_lower2, getBufferPutcharSpy()) != 0 &&
7336         strcmp(expected_lower3, getBufferPutcharSpy()) != 0 &&
7337         strcmp(expected_higher, getBufferPutcharSpy()) != 0 &&
7338         strcmp(expected_higher2, getBufferPutcharSpy()) != 0 &&
7339         strcmp(expected_higher3, getBufferPutcharSpy()) != 0)
7340     {
7341         /* Fail with diagnostic printing */
7342         TEST_ASSERT_EQUAL_PRINT_FLOATING(expected, f);
7343     }
7344 }
7345 #endif
7346 #endif
7347 
testFloatPrintingRandomSamples(void)7348 void testFloatPrintingRandomSamples(void)
7349 {
7350 #if !defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) || !defined(USING_OUTPUT_SPY)
7351     TEST_IGNORE();
7352 #else
7353     union { float f_value; uint32_t int_value; } u;
7354 
7355     /* These values are not covered by the MINSTD generator */
7356     u.int_value = 0x00000000; printFloatValue(u.f_value);
7357     u.int_value = 0x80000000; printFloatValue(u.f_value);
7358     u.int_value = 0x7fffffff; printFloatValue(u.f_value);
7359     u.int_value = 0xffffffff; printFloatValue(u.f_value);
7360 
7361     uint32_t a = 1;
7362     for(int num_tested = 0; num_tested < 1000000; num_tested++)
7363     {
7364         /* MINSTD pseudo-random number generator */
7365         a = (uint32_t)(((uint64_t)a * 48271u) % 2147483647u);
7366 
7367         /* MINSTD does not set the highest bit; test both possibilities */
7368         u.int_value = a;              printFloatValue(u.f_value);
7369         u.int_value = a | 0x80000000; printFloatValue(u.f_value);
7370     }
7371 #endif
7372 }
7373 
7374 /* ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES DOUBLE SUPPORT ================== */
7375 
testDoublesWithinDelta(void)7376 void testDoublesWithinDelta(void)
7377 {
7378 #ifdef UNITY_EXCLUDE_DOUBLE
7379     TEST_IGNORE();
7380 #else
7381     TEST_ASSERT_DOUBLE_WITHIN(0.00003, 187245.03485, 187245.03488);
7382     TEST_ASSERT_DOUBLE_WITHIN(1.0, 187245.0, 187246.0);
7383     TEST_ASSERT_DOUBLE_WITHIN(0.05, 9273.2549, 9273.2049);
7384     TEST_ASSERT_DOUBLE_WITHIN(0.007, -726.93725, -726.94424);
7385 #endif
7386 }
7387 
testDoublesNotWithinDelta(void)7388 void testDoublesNotWithinDelta(void)
7389 {
7390 #ifdef UNITY_EXCLUDE_DOUBLE
7391     TEST_IGNORE();
7392 #else
7393     EXPECT_ABORT_BEGIN
7394     TEST_ASSERT_DOUBLE_WITHIN(0.05, 9273.2649, 9273.2049);
7395     VERIFY_FAILS_END
7396 #endif
7397 }
7398 
7399 
testDoublesEqual(void)7400 void testDoublesEqual(void)
7401 {
7402 #ifdef UNITY_EXCLUDE_DOUBLE
7403     TEST_IGNORE();
7404 #else
7405     TEST_ASSERT_EQUAL_DOUBLE(187245123456.0, 187245123456.0);
7406     TEST_ASSERT_EQUAL_DOUBLE(187241234567.5, 187241234567.6);
7407     TEST_ASSERT_EQUAL_DOUBLE(9273.2512345649, 9273.25123455699);
7408     TEST_ASSERT_EQUAL_DOUBLE(-726.12345693724, -726.1234569374);
7409 #endif
7410 }
7411 
testDoublesNotEqual(void)7412 void testDoublesNotEqual(void)
7413 {
7414 #ifdef UNITY_EXCLUDE_DOUBLE
7415     TEST_IGNORE();
7416 #else
7417     EXPECT_ABORT_BEGIN
7418     TEST_ASSERT_EQUAL_DOUBLE(9273.9649, 9273.0049);
7419     VERIFY_FAILS_END
7420 #endif
7421 }
7422 
testDoublesNotEqualNegative1(void)7423 void testDoublesNotEqualNegative1(void)
7424 {
7425 #ifdef UNITY_EXCLUDE_DOUBLE
7426     TEST_IGNORE();
7427 #else
7428     EXPECT_ABORT_BEGIN
7429     TEST_ASSERT_EQUAL_DOUBLE(-9273.9649, -9273.0049);
7430     VERIFY_FAILS_END
7431 #endif
7432 }
7433 
testDoublesNotEqualNegative2(void)7434 void testDoublesNotEqualNegative2(void)
7435 {
7436 #ifdef UNITY_EXCLUDE_DOUBLE
7437     TEST_IGNORE();
7438 #else
7439     EXPECT_ABORT_BEGIN
7440     TEST_ASSERT_EQUAL_DOUBLE(-9273.0049, -9273.9649);
7441     VERIFY_FAILS_END
7442 #endif
7443 }
7444 
testDoublesNotEqualActualNaN(void)7445 void testDoublesNotEqualActualNaN(void)
7446 {
7447 #ifdef UNITY_EXCLUDE_DOUBLE
7448     TEST_IGNORE();
7449 #else
7450     EXPECT_ABORT_BEGIN
7451     TEST_ASSERT_EQUAL_DOUBLE(85.963, 0.0 / d_zero);
7452     VERIFY_FAILS_END
7453 #endif
7454 }
7455 
testDoublesNotEqualExpectedNaN(void)7456 void testDoublesNotEqualExpectedNaN(void)
7457 {
7458 #ifdef UNITY_EXCLUDE_DOUBLE
7459     TEST_IGNORE();
7460 #else
7461     EXPECT_ABORT_BEGIN
7462     TEST_ASSERT_EQUAL_DOUBLE(0.0 / d_zero, 85.963);
7463     VERIFY_FAILS_END
7464 #endif
7465 }
7466 
testDoublesEqualBothNaN(void)7467 void testDoublesEqualBothNaN(void)
7468 {
7469 #ifdef UNITY_EXCLUDE_DOUBLE
7470     TEST_IGNORE();
7471 #else
7472     TEST_ASSERT_EQUAL_DOUBLE(0.0 / d_zero, 0.0 / d_zero);
7473 #endif
7474 }
7475 
testDoublesNotEqualInfNaN(void)7476 void testDoublesNotEqualInfNaN(void)
7477 {
7478 #ifdef UNITY_EXCLUDE_DOUBLE
7479     TEST_IGNORE();
7480 #else
7481     EXPECT_ABORT_BEGIN
7482     TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, 0.0 / d_zero);
7483     VERIFY_FAILS_END
7484 #endif
7485 }
7486 
testDoublesNotEqualNaNInf(void)7487 void testDoublesNotEqualNaNInf(void)
7488 {
7489 #ifdef UNITY_EXCLUDE_DOUBLE
7490     TEST_IGNORE();
7491 #else
7492     EXPECT_ABORT_BEGIN
7493     TEST_ASSERT_EQUAL_DOUBLE(0.0 / d_zero, 1.0 / d_zero);
7494     VERIFY_FAILS_END
7495 #endif
7496 }
7497 
testDoublesNotEqualActualInf(void)7498 void testDoublesNotEqualActualInf(void)
7499 {
7500 #ifdef UNITY_EXCLUDE_DOUBLE
7501     TEST_IGNORE();
7502 #else
7503     EXPECT_ABORT_BEGIN
7504     TEST_ASSERT_EQUAL_DOUBLE(321.642, 1.0 / d_zero);
7505     VERIFY_FAILS_END
7506 #endif
7507 }
7508 
testDoublesNotEqualExpectedInf(void)7509 void testDoublesNotEqualExpectedInf(void)
7510 {
7511 #ifdef UNITY_EXCLUDE_DOUBLE
7512     TEST_IGNORE();
7513 #else
7514     EXPECT_ABORT_BEGIN
7515     TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, 321.642);
7516     VERIFY_FAILS_END
7517 #endif
7518 }
7519 
testDoublesEqualBothInf(void)7520 void testDoublesEqualBothInf(void)
7521 {
7522 #ifdef UNITY_EXCLUDE_DOUBLE
7523     TEST_IGNORE();
7524 #else
7525     TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, 1.0 / d_zero);
7526 #endif
7527 }
7528 
testDoublesNotEqualPlusMinusInf(void)7529 void testDoublesNotEqualPlusMinusInf(void)
7530 {
7531 #ifdef UNITY_EXCLUDE_DOUBLE
7532     TEST_IGNORE();
7533 #else
7534     EXPECT_ABORT_BEGIN
7535     TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, -1.0 / d_zero);
7536     VERIFY_FAILS_END
7537 #endif
7538 }
7539 
testDoubleIsPosInf1(void)7540 void testDoubleIsPosInf1(void)
7541 {
7542 #ifdef UNITY_EXCLUDE_DOUBLE
7543     TEST_IGNORE();
7544 #else
7545     TEST_ASSERT_DOUBLE_IS_INF(2.0 / d_zero);
7546 #endif
7547 }
7548 
testDoubleIsPosInf2(void)7549 void testDoubleIsPosInf2(void)
7550 {
7551 #ifdef UNITY_EXCLUDE_DOUBLE
7552     TEST_IGNORE();
7553 #else
7554     EXPECT_ABORT_BEGIN
7555     TEST_ASSERT_DOUBLE_IS_NOT_INF(2.0 / d_zero);
7556     VERIFY_FAILS_END
7557 #endif
7558 }
7559 
testDoubleIsNegInf1(void)7560 void testDoubleIsNegInf1(void)
7561 {
7562 #ifdef UNITY_EXCLUDE_DOUBLE
7563     TEST_IGNORE();
7564 #else
7565     TEST_ASSERT_DOUBLE_IS_NEG_INF(-3.0 / d_zero);
7566 #endif
7567 }
7568 
testDoubleIsNegInf2(void)7569 void testDoubleIsNegInf2(void)
7570 {
7571 #ifdef UNITY_EXCLUDE_DOUBLE
7572     TEST_IGNORE();
7573 #else
7574     EXPECT_ABORT_BEGIN
7575     TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(-3.0 / d_zero);
7576     VERIFY_FAILS_END
7577 #endif
7578 }
7579 
testDoubleIsNotPosInf1(void)7580 void testDoubleIsNotPosInf1(void)
7581 {
7582 #ifdef UNITY_EXCLUDE_DOUBLE
7583     TEST_IGNORE();
7584 #else
7585     EXPECT_ABORT_BEGIN
7586     TEST_ASSERT_DOUBLE_IS_INF(2.0);
7587     VERIFY_FAILS_END
7588 #endif
7589 }
7590 
testDoubleIsNotPosInf2(void)7591 void testDoubleIsNotPosInf2(void)
7592 {
7593 #ifdef UNITY_EXCLUDE_DOUBLE
7594     TEST_IGNORE();
7595 #else
7596     TEST_ASSERT_DOUBLE_IS_NOT_INF(2.0);
7597 #endif
7598 }
7599 
testDoubleIsNotNegInf(void)7600 void testDoubleIsNotNegInf(void)
7601 {
7602 #ifdef UNITY_EXCLUDE_DOUBLE
7603     TEST_IGNORE();
7604 #else
7605     EXPECT_ABORT_BEGIN
7606     TEST_ASSERT_DOUBLE_IS_NEG_INF(-999.876);
7607     VERIFY_FAILS_END
7608 #endif
7609 }
7610 
testDoubleIsNan1(void)7611 void testDoubleIsNan1(void)
7612 {
7613 #ifdef UNITY_EXCLUDE_DOUBLE
7614     TEST_IGNORE();
7615 #else
7616     TEST_ASSERT_DOUBLE_IS_NAN(0.0 / d_zero);
7617 #endif
7618 }
7619 
testDoubleIsNan2(void)7620 void testDoubleIsNan2(void)
7621 {
7622 #ifdef UNITY_EXCLUDE_DOUBLE
7623     TEST_IGNORE();
7624 #else
7625     EXPECT_ABORT_BEGIN
7626     TEST_ASSERT_DOUBLE_IS_NOT_NAN(0.0 / d_zero);
7627     VERIFY_FAILS_END
7628 #endif
7629 }
7630 
testDoubleIsNotNan1(void)7631 void testDoubleIsNotNan1(void)
7632 {
7633 #ifdef UNITY_EXCLUDE_DOUBLE
7634     TEST_IGNORE();
7635 #else
7636     EXPECT_ABORT_BEGIN
7637     TEST_ASSERT_DOUBLE_IS_NAN(234.9);
7638     VERIFY_FAILS_END
7639 #endif
7640 }
7641 
testDoubleIsNotNan2(void)7642 void testDoubleIsNotNan2(void)
7643 {
7644 #ifdef UNITY_EXCLUDE_DOUBLE
7645     TEST_IGNORE();
7646 #else
7647     TEST_ASSERT_DOUBLE_IS_NOT_NAN(234.9);
7648 #endif
7649 }
7650 
testDoubleInfIsNotNan(void)7651 void testDoubleInfIsNotNan(void)
7652 {
7653 #ifdef UNITY_EXCLUDE_DOUBLE
7654     TEST_IGNORE();
7655 #else
7656     EXPECT_ABORT_BEGIN
7657     TEST_ASSERT_DOUBLE_IS_NAN(1.0 / d_zero);
7658     VERIFY_FAILS_END
7659 #endif
7660 }
7661 
testDoubleNanIsNotInf(void)7662 void testDoubleNanIsNotInf(void)
7663 {
7664 #ifdef UNITY_EXCLUDE_DOUBLE
7665     TEST_IGNORE();
7666 #else
7667     EXPECT_ABORT_BEGIN
7668     TEST_ASSERT_DOUBLE_IS_INF(0.0 / d_zero);
7669     VERIFY_FAILS_END
7670 #endif
7671 }
7672 
testDoubleIsDeterminate1(void)7673 void testDoubleIsDeterminate1(void)
7674 {
7675 #ifdef UNITY_EXCLUDE_DOUBLE
7676     TEST_IGNORE();
7677 #else
7678     TEST_ASSERT_DOUBLE_IS_DETERMINATE(0.0);
7679     TEST_ASSERT_DOUBLE_IS_DETERMINATE(123.3);
7680     TEST_ASSERT_DOUBLE_IS_DETERMINATE(-88.3);
7681 #endif
7682 }
7683 
testDoubleIsDeterminate2(void)7684 void testDoubleIsDeterminate2(void)
7685 {
7686 #ifdef UNITY_EXCLUDE_DOUBLE
7687     TEST_IGNORE();
7688 #else
7689     EXPECT_ABORT_BEGIN
7690     TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(-88.3);
7691     VERIFY_FAILS_END
7692 #endif
7693 }
7694 
testDoubleIsNotDeterminate1(void)7695 void testDoubleIsNotDeterminate1(void)
7696 {
7697 #ifdef UNITY_EXCLUDE_DOUBLE
7698     TEST_IGNORE();
7699 #else
7700     TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(1.0 / d_zero);
7701     TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(-1.0 / d_zero);
7702     TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(0.0 / d_zero);
7703 #endif
7704 }
7705 
testDoubleIsNotDeterminate2(void)7706 void testDoubleIsNotDeterminate2(void)
7707 {
7708 #ifdef UNITY_EXCLUDE_DOUBLE
7709     TEST_IGNORE();
7710 #else
7711     EXPECT_ABORT_BEGIN
7712     TEST_ASSERT_DOUBLE_IS_DETERMINATE(-1.0 / d_zero);
7713     VERIFY_FAILS_END
7714 #endif
7715 }
7716 
testDoubleTraitFailsOnInvalidTrait(void)7717 void testDoubleTraitFailsOnInvalidTrait(void)
7718 {
7719 #ifdef UNITY_EXCLUDE_DOUBLE
7720     TEST_IGNORE();
7721 #else
7722     EXPECT_ABORT_BEGIN
7723     UnityAssertDoubleSpecial(1.0, NULL, __LINE__, UNITY_FLOAT_INVALID_TRAIT);
7724     VERIFY_FAILS_END
7725 #endif
7726 }
7727 
testEqualDoubleArrays(void)7728 void testEqualDoubleArrays(void)
7729 {
7730 #ifdef UNITY_EXCLUDE_DOUBLE
7731     TEST_IGNORE();
7732 #else
7733     double p0[] = {1.0, -8.0,  25.4, -0.123};
7734     double p1[] = {1.0, -8.0,  25.4, -0.123};
7735     double p2[] = {1.0, -8.0,  25.4, -0.2};
7736     double p3[] = {1.0, -23.0, 25.0, -0.26};
7737 
7738     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p0, 1);
7739     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p0, 4);
7740     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
7741     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p2, 3);
7742     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p3, 1);
7743     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(NULL, NULL, 1);
7744 #endif
7745 }
7746 
testNotEqualDoubleArraysExpectedNull(void)7747 void testNotEqualDoubleArraysExpectedNull(void)
7748 {
7749 #ifdef UNITY_EXCLUDE_DOUBLE
7750     TEST_IGNORE();
7751 #else
7752     double* p0 = NULL;
7753     double p1[] = {1.0, 8.0, 25.4, 0.252};
7754 
7755     EXPECT_ABORT_BEGIN
7756     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
7757     VERIFY_FAILS_END
7758 #endif
7759 }
7760 
testNotEqualDoubleArraysActualNull(void)7761 void testNotEqualDoubleArraysActualNull(void)
7762 {
7763 #ifdef UNITY_EXCLUDE_DOUBLE
7764     TEST_IGNORE();
7765 #else
7766     double p0[] = {1.0, 8.0, 25.4, 0.253};
7767     double* p1 = NULL;
7768 
7769     EXPECT_ABORT_BEGIN
7770     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
7771     VERIFY_FAILS_END
7772 #endif
7773 }
7774 
testNotEqualDoubleArrays1(void)7775 void testNotEqualDoubleArrays1(void)
7776 {
7777 #ifdef UNITY_EXCLUDE_DOUBLE
7778     TEST_IGNORE();
7779 #else
7780     double p0[] = {1.0, 8.0, 25.4, 0.25666666667};
7781     double p1[] = {1.0, 8.0, 25.4, 0.25666666666};
7782 
7783     EXPECT_ABORT_BEGIN
7784     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
7785     VERIFY_FAILS_END
7786 #endif
7787 }
7788 
testNotEqualDoubleArrays2(void)7789 void testNotEqualDoubleArrays2(void)
7790 {
7791 #ifdef UNITY_EXCLUDE_DOUBLE
7792     TEST_IGNORE();
7793 #else
7794     double p0[] = {1.0, 8.0, 25.4, 0.253};
7795     double p1[] = {2.0, 8.0, 25.4, 0.253};
7796 
7797     EXPECT_ABORT_BEGIN
7798     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
7799     VERIFY_FAILS_END
7800 #endif
7801 }
7802 
testNotEqualDoubleArrays3(void)7803 void testNotEqualDoubleArrays3(void)
7804 {
7805 #ifdef UNITY_EXCLUDE_DOUBLE
7806     TEST_IGNORE();
7807 #else
7808     double p0[] = {1.0, 8.0, 25.4, 0.253};
7809     double p1[] = {1.0, 8.0, 25.5, 0.253};
7810 
7811     EXPECT_ABORT_BEGIN
7812     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
7813     VERIFY_FAILS_END
7814 #endif
7815 }
7816 
testNotEqualDoubleArraysNegative1(void)7817 void testNotEqualDoubleArraysNegative1(void)
7818 {
7819 #ifdef UNITY_EXCLUDE_DOUBLE
7820     TEST_IGNORE();
7821 #else
7822     double p0[] = {-1.0, -8.0, -25.4, -0.2566666667};
7823     double p1[] = {-1.0, -8.0, -25.4, -0.2566666666};
7824 
7825     EXPECT_ABORT_BEGIN
7826     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
7827     VERIFY_FAILS_END
7828 #endif
7829 }
7830 
testNotEqualDoubleArraysNegative2(void)7831 void testNotEqualDoubleArraysNegative2(void)
7832 {
7833 #ifdef UNITY_EXCLUDE_DOUBLE
7834     TEST_IGNORE();
7835 #else
7836     double p0[] = {-1.0, -8.0, -25.4, -0.253};
7837     double p1[] = {-2.0, -8.0, -25.4, -0.253};
7838 
7839     EXPECT_ABORT_BEGIN
7840     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
7841     VERIFY_FAILS_END
7842 #endif
7843 }
7844 
testNotEqualDoubleArraysNegative3(void)7845 void testNotEqualDoubleArraysNegative3(void)
7846 {
7847 #ifdef UNITY_EXCLUDE_DOUBLE
7848     TEST_IGNORE();
7849 #else
7850     double p0[] = {-1.0, -8.0, -25.4, -0.253};
7851     double p1[] = {-1.0, -8.0, -25.5, -0.253};
7852 
7853     EXPECT_ABORT_BEGIN
7854     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
7855     VERIFY_FAILS_END
7856 #endif
7857 }
7858 
testEqualDoubleArraysNaN(void)7859 void testEqualDoubleArraysNaN(void)
7860 {
7861 #ifdef UNITY_EXCLUDE_DOUBLE
7862     TEST_IGNORE();
7863 #else
7864     double p0[] = {1.0, 0.0 / d_zero, 25.4, 0.253};
7865     double p1[] = {1.0, 0.0 / d_zero, 25.4, 0.253};
7866 
7867     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
7868 #endif
7869 }
7870 
testEqualDoubleArraysInf(void)7871 void testEqualDoubleArraysInf(void)
7872 {
7873 #ifdef UNITY_EXCLUDE_DOUBLE
7874     TEST_IGNORE();
7875 #else
7876     double p0[] = {1.0, 1.0 / d_zero, 25.4, 0.253};
7877     double p1[] = {1.0, 1.0 / d_zero, 25.4, 0.253};
7878 
7879     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
7880 #endif
7881 }
7882 
testNotEqualDoubleArraysLengthZero(void)7883 void testNotEqualDoubleArraysLengthZero(void)
7884 {
7885 #ifdef UNITY_EXCLUDE_DOUBLE
7886     TEST_IGNORE();
7887 #else
7888     double p0[1] = {0.0};
7889     double p1[1] = {0.0};
7890 
7891     EXPECT_ABORT_BEGIN
7892     TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 0);
7893     VERIFY_FAILS_END
7894 #endif
7895 }
7896 
testEqualDoubleEachEqual(void)7897 void testEqualDoubleEachEqual(void)
7898 {
7899 #ifdef UNITY_EXCLUDE_DOUBLE
7900     TEST_IGNORE();
7901 #else
7902     double p0[] = {1.0, 1.0, 1.0, 1.0};
7903     double p1[] = {-0.123, -0.123, -0.123, -0.123};
7904     double p2[] = {25.4, 25.4, 25.4, -0.2};
7905     double p3[] = {1.0, -23.0, 25.0, -0.26};
7906 
7907     TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p0, 1);
7908     TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p0, 4);
7909     TEST_ASSERT_EACH_EQUAL_DOUBLE(-0.123, p1, 4);
7910     TEST_ASSERT_EACH_EQUAL_DOUBLE(25.4, p2, 3);
7911     TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p3, 1);
7912 #endif
7913 }
7914 
testNotEqualDoubleEachEqualActualNull(void)7915 void testNotEqualDoubleEachEqualActualNull(void)
7916 {
7917 #ifdef UNITY_EXCLUDE_DOUBLE
7918     TEST_IGNORE();
7919 #else
7920     double* p0 = NULL;
7921 
7922     EXPECT_ABORT_BEGIN
7923     TEST_ASSERT_EACH_EQUAL_DOUBLE(5, p0, 4);
7924     VERIFY_FAILS_END
7925 #endif
7926 }
7927 
testNotEqualDoubleEachEqual1(void)7928 void testNotEqualDoubleEachEqual1(void)
7929 {
7930 #ifdef UNITY_EXCLUDE_DOUBLE
7931     TEST_IGNORE();
7932 #else
7933     double p0[] = {0.253, 8.0, 0.253, 0.253};
7934 
7935     EXPECT_ABORT_BEGIN
7936     TEST_ASSERT_EACH_EQUAL_DOUBLE(0.253, p0, 4);
7937     VERIFY_FAILS_END
7938 #endif
7939 }
7940 
testNotEqualDoubleEachEqual2(void)7941 void testNotEqualDoubleEachEqual2(void)
7942 {
7943 #ifdef UNITY_EXCLUDE_DOUBLE
7944     TEST_IGNORE();
7945 #else
7946     double p0[] = {8.0, 8.0, 8.0, 0.253};
7947 
7948     EXPECT_ABORT_BEGIN
7949     TEST_ASSERT_EACH_EQUAL_DOUBLE(8.0, p0, 4);
7950     VERIFY_FAILS_END
7951 #endif
7952 }
7953 
testNotEqualDoubleEachEqual3(void)7954 void testNotEqualDoubleEachEqual3(void)
7955 {
7956 #ifdef UNITY_EXCLUDE_DOUBLE
7957     TEST_IGNORE();
7958 #else
7959     double p0[] = {1.0, 1.0, 1.0, 0.253};
7960 
7961     EXPECT_ABORT_BEGIN
7962     TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p0, 4);
7963     VERIFY_FAILS_END
7964 #endif
7965 }
7966 
testNotEqualDoubleEachEqualNegative1(void)7967 void testNotEqualDoubleEachEqualNegative1(void)
7968 {
7969 #ifdef UNITY_EXCLUDE_DOUBLE
7970     TEST_IGNORE();
7971 #else
7972     double p0[] = {-1.0, -0.253, -0.253, -0.253};
7973 
7974     EXPECT_ABORT_BEGIN
7975     TEST_ASSERT_EACH_EQUAL_DOUBLE(-0.253, p0, 4);
7976     VERIFY_FAILS_END
7977 #endif
7978 }
7979 
testNotEqualDoubleEachEqualNegative2(void)7980 void testNotEqualDoubleEachEqualNegative2(void)
7981 {
7982 #ifdef UNITY_EXCLUDE_DOUBLE
7983     TEST_IGNORE();
7984 #else
7985     double p0[] = {-25.4, -8.0, -25.4, -25.4};
7986 
7987     EXPECT_ABORT_BEGIN
7988     TEST_ASSERT_EACH_EQUAL_DOUBLE(-25.4, p0, 4);
7989     VERIFY_FAILS_END
7990 #endif
7991 }
7992 
testNotEqualDoubleEachEqualNegative3(void)7993 void testNotEqualDoubleEachEqualNegative3(void)
7994 {
7995 #ifdef UNITY_EXCLUDE_DOUBLE
7996     TEST_IGNORE();
7997 #else
7998     double p0[] = {-8.0, -8.0, -8.0, -0.253};
7999 
8000     EXPECT_ABORT_BEGIN
8001     TEST_ASSERT_EACH_EQUAL_DOUBLE(-8.0, p0, 4);
8002     VERIFY_FAILS_END
8003 #endif
8004 }
8005 
testEqualDoubleEachEqualNaN(void)8006 void testEqualDoubleEachEqualNaN(void)
8007 {
8008 #ifdef UNITY_EXCLUDE_DOUBLE
8009     TEST_IGNORE();
8010 #else
8011     double p0[] = {0.0 / d_zero, 0.0 / d_zero, 0.0 / d_zero, 0.0 / d_zero};
8012 
8013     TEST_ASSERT_EACH_EQUAL_DOUBLE(0.0 / d_zero, p0, 4);
8014 #endif
8015 }
8016 
testEqualDoubleEachEqualInf(void)8017 void testEqualDoubleEachEqualInf(void)
8018 {
8019 #ifdef UNITY_EXCLUDE_DOUBLE
8020     TEST_IGNORE();
8021 #else
8022     double p0[] = {1.0 / d_zero, 1.0 / d_zero, 25.4, 0.253};
8023 
8024     TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0 / d_zero, p0, 2);
8025 #endif
8026 }
8027 
testNotEqualDoubleEachEqualLengthZero(void)8028 void testNotEqualDoubleEachEqualLengthZero(void)
8029 {
8030 #ifdef UNITY_EXCLUDE_DOUBLE
8031     TEST_IGNORE();
8032 #else
8033     double p0[1] = {0.0};
8034 
8035     EXPECT_ABORT_BEGIN
8036     TEST_ASSERT_EACH_EQUAL_DOUBLE(0.0, p0, 0);
8037     VERIFY_FAILS_END
8038 #endif
8039 }
8040 
testDoublePrinting(void)8041 void testDoublePrinting(void)
8042 {
8043 #if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
8044     TEST_IGNORE();
8045 #else
8046     TEST_ASSERT_EQUAL_PRINT_FLOATING("0",             0.0);
8047     TEST_ASSERT_EQUAL_PRINT_FLOATING("4.99e-07",      0.000000499);
8048     TEST_ASSERT_EQUAL_PRINT_FLOATING("5.0000005e-07", 0.00000050000005);
8049     TEST_ASSERT_EQUAL_PRINT_FLOATING("0.100469499",   0.100469499);
8050     TEST_ASSERT_EQUAL_PRINT_FLOATING("1",             0.9999999995); /*Rounding to int place*/
8051     TEST_ASSERT_EQUAL_PRINT_FLOATING("1",             1.0);
8052     TEST_ASSERT_EQUAL_PRINT_FLOATING("1.25",          1.25);
8053     TEST_ASSERT_EQUAL_PRINT_FLOATING("7.99999999",    7.99999999); /*Not rounding*/
8054     TEST_ASSERT_EQUAL_PRINT_FLOATING("16.0000002",    16.0000002);
8055     TEST_ASSERT_EQUAL_PRINT_FLOATING("16.0000004",    16.0000004);
8056     TEST_ASSERT_EQUAL_PRINT_FLOATING("16.0000006",    16.0000006);
8057     TEST_ASSERT_EQUAL_PRINT_FLOATING("999999999",     999999999.0); /*Last full print integer*/
8058 
8059     TEST_ASSERT_EQUAL_PRINT_FLOATING("0",              -0.0); /* -0 no supported on all targets */
8060     TEST_ASSERT_EQUAL_PRINT_FLOATING("-4.99e-07",      -0.000000499);
8061     TEST_ASSERT_EQUAL_PRINT_FLOATING("-5.0000005e-07", -0.00000050000005);
8062     TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.100469499",   -0.100469499);
8063     TEST_ASSERT_EQUAL_PRINT_FLOATING("-1",             -0.9999999995); /*Rounding to int place*/
8064     TEST_ASSERT_EQUAL_PRINT_FLOATING("-1",             -1.0);
8065     TEST_ASSERT_EQUAL_PRINT_FLOATING("-1.25",          -1.25);
8066     TEST_ASSERT_EQUAL_PRINT_FLOATING("-7.99999999",    -7.99999999); /*Not rounding*/
8067     TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.0000002",    -16.0000002);
8068     TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.0000004",    -16.0000004);
8069     TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.0000006",    -16.0000006);
8070     TEST_ASSERT_EQUAL_PRINT_FLOATING("-999999999",     -999999999.0); /*Last full print integer*/
8071 
8072     TEST_ASSERT_EQUAL_PRINT_FLOATING("0.1004695",       0.10046949999999999);
8073     TEST_ASSERT_EQUAL_PRINT_FLOATING("4.2949673e+09",   4294967295.9);
8074     TEST_ASSERT_EQUAL_PRINT_FLOATING("4.2949673e+09",   4294967296.0);
8075     TEST_ASSERT_EQUAL_PRINT_FLOATING("1e+10",           9999999995.0);
8076     TEST_ASSERT_EQUAL_PRINT_FLOATING("9.00719925e+15",  9007199254740990.0);
8077     TEST_ASSERT_EQUAL_PRINT_FLOATING("7e+100",          7.0e+100);
8078     TEST_ASSERT_EQUAL_PRINT_FLOATING("3e+200",          3.0e+200);
8079     TEST_ASSERT_EQUAL_PRINT_FLOATING("9.23456789e+300", 9.23456789e+300);
8080 
8081     TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.1004695",     -0.10046949999999999);
8082     TEST_ASSERT_EQUAL_PRINT_FLOATING("-4.2949673e+09", -4294967295.9);
8083     TEST_ASSERT_EQUAL_PRINT_FLOATING("-4.2949673e+09", -4294967296.0);
8084     TEST_ASSERT_EQUAL_PRINT_FLOATING("-7e+100",        -7.0e+100);
8085 #endif
8086 }
8087 
testDoublePrintingRoundTiesToEven(void)8088 void testDoublePrintingRoundTiesToEven(void)
8089 {
8090 #if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
8091     TEST_IGNORE();
8092 #else
8093   #ifdef UNITY_ROUND_TIES_AWAY_FROM_ZERO
8094     TEST_ASSERT_EQUAL_PRINT_FLOATING("1.00000001e+10", 10000000050.0);
8095     TEST_ASSERT_EQUAL_PRINT_FLOATING("9.00719925e+15", 9007199245000000.0);
8096   #else /* Default to Round ties to even */
8097     TEST_ASSERT_EQUAL_PRINT_FLOATING("1e+10",          10000000050.0);
8098     TEST_ASSERT_EQUAL_PRINT_FLOATING("9.00719924e+15", 9007199245000000.0);
8099   #endif
8100 #endif
8101 }
8102 
testDoublePrintingInfinityAndNaN(void)8103 void testDoublePrintingInfinityAndNaN(void)
8104 {
8105 #if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
8106     TEST_IGNORE();
8107 #else
8108     TEST_ASSERT_EQUAL_PRINT_FLOATING("inf",   1.0 / d_zero);
8109     TEST_ASSERT_EQUAL_PRINT_FLOATING("-inf", -1.0 / d_zero);
8110 
8111     TEST_ASSERT_EQUAL_PRINT_FLOATING("nan",   0.0 / d_zero);
8112 #endif
8113 }
8114 
8115 /* ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES DETAIL SUPPORT ================== */
8116 
testThatDetailsCanBeHandleOneDetail(void)8117 void testThatDetailsCanBeHandleOneDetail(void)
8118 {
8119 #ifdef UNITY_EXCLUDE_DETAILS
8120     TEST_IGNORE();
8121 #else
8122     UNITY_SET_DETAIL("Detail1");
8123 
8124     EXPECT_ABORT_BEGIN
8125     TEST_ASSERT_EQUAL_INT_MESSAGE(5, 6, "Should Fail And Say Detail1");
8126     VERIFY_FAILS_END
8127 #endif
8128 }
8129 
testThatDetailsCanHandleTestFail(void)8130 void testThatDetailsCanHandleTestFail(void)
8131 {
8132 #ifdef UNITY_EXCLUDE_DETAILS
8133     TEST_IGNORE();
8134 #else
8135     UNITY_SET_DETAILS("Detail1","Detail2");
8136 
8137     EXPECT_ABORT_BEGIN
8138     TEST_FAIL_MESSAGE("Should Fail And Say Detail1 and Detail2");
8139     VERIFY_FAILS_END
8140 #endif
8141 }
8142 
testThatDetailsCanBeHandleTwoDetails(void)8143 void testThatDetailsCanBeHandleTwoDetails(void)
8144 {
8145 #ifdef UNITY_EXCLUDE_DETAILS
8146     TEST_IGNORE();
8147 #else
8148     UNITY_SET_DETAILS("Detail1","Detail2");
8149 
8150     EXPECT_ABORT_BEGIN
8151     TEST_ASSERT_EQUAL_HEX8_MESSAGE(7, 8, "Should Fail And Say Detail1 and Detail2");
8152     VERIFY_FAILS_END
8153 #endif
8154 }
8155 
testThatDetailsCanBeHandleSingleDetailClearingTwoDetails(void)8156 void testThatDetailsCanBeHandleSingleDetailClearingTwoDetails(void)
8157 {
8158 #ifdef UNITY_EXCLUDE_DETAILS
8159     TEST_IGNORE();
8160 #else
8161     UNITY_SET_DETAILS("Detail1","Detail2");
8162     UNITY_SET_DETAIL("DetailNew");
8163 
8164     EXPECT_ABORT_BEGIN
8165     TEST_ASSERT_EQUAL_STRING_MESSAGE("MEH", "GUH", "Should Fail And Say DetailNew");
8166     VERIFY_FAILS_END
8167 #endif
8168 }
8169