/* ========================================== Unity Project - A Test Framework for C Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams [Released under MIT License. Please refer to license.txt for details] ========================================== */ #include #include "unity.h" #define EXPECT_ABORT_BEGIN \ if (TEST_PROTECT()) \ { #define VERIFY_FAILS_END \ } \ Unity.CurrentTestFailed = (Unity.CurrentTestFailed == 1) ? 0 : 1; \ if (Unity.CurrentTestFailed == 1) { \ SetToOneMeanWeAlreadyCheckedThisGuy = 1; \ UnityPrint("[[[[ Previous Test Should Have Failed But Did Not ]]]]"); \ UNITY_OUTPUT_CHAR('\n'); \ } #define VERIFY_IGNORES_END \ } \ Unity.CurrentTestFailed = (Unity.CurrentTestIgnored == 1) ? 0 : 1; \ Unity.CurrentTestIgnored = 0; \ if (Unity.CurrentTestFailed == 1) { \ SetToOneMeanWeAlreadyCheckedThisGuy = 1; \ UnityPrint("[[[[ Previous Test Should Have Ignored But Did Not ]]]]"); \ UNITY_OUTPUT_CHAR('\n'); \ } int SetToOneToFailInTearDown; int SetToOneMeanWeAlreadyCheckedThisGuy; void setUp(void) { SetToOneToFailInTearDown = 0; SetToOneMeanWeAlreadyCheckedThisGuy = 0; } void tearDown(void) { if (SetToOneToFailInTearDown == 1) TEST_FAIL_MESSAGE("<= Failed in tearDown"); if ((SetToOneMeanWeAlreadyCheckedThisGuy == 0) && (Unity.CurrentTestFailed > 0)) { UnityPrint("[[[[ Previous Test Should Have Passed But Did Not ]]]]"); UNITY_OUTPUT_CHAR('\n'); } } void testTrue(void) { TEST_ASSERT(1); TEST_ASSERT_TRUE(1); } void testFalse(void) { TEST_ASSERT_FALSE(0); TEST_ASSERT_UNLESS(0); } void testPreviousPass(void) { TEST_ASSERT_EQUAL_INT(0U, Unity.TestFailures); } void testNotVanilla(void) { EXPECT_ABORT_BEGIN TEST_ASSERT(0); VERIFY_FAILS_END } void testNotTrue(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_TRUE(0); VERIFY_FAILS_END } void testNotFalse(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_FALSE(1); VERIFY_FAILS_END } void testNotUnless(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_UNLESS(1); VERIFY_FAILS_END } void testNotNotEqual(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_NOT_EQUAL(10, 10); VERIFY_FAILS_END } void testFail(void) { EXPECT_ABORT_BEGIN TEST_FAIL_MESSAGE("Expected for testing"); VERIFY_FAILS_END } void testIsNull(void) { char* ptr1 = NULL; char* ptr2 = "hello"; TEST_ASSERT_NULL(ptr1); TEST_ASSERT_NOT_NULL(ptr2); } void testIsNullShouldFailIfNot(void) { char* ptr1 = "hello"; EXPECT_ABORT_BEGIN TEST_ASSERT_NULL(ptr1); VERIFY_FAILS_END } void testNotNullShouldFailIfNULL(void) { char* ptr1 = NULL; EXPECT_ABORT_BEGIN TEST_ASSERT_NOT_NULL(ptr1); VERIFY_FAILS_END } void testIgnore(void) { EXPECT_ABORT_BEGIN TEST_IGNORE(); TEST_FAIL_MESSAGE("This should not be reached"); VERIFY_IGNORES_END } void testIgnoreMessage(void) { EXPECT_ABORT_BEGIN TEST_IGNORE_MESSAGE("This is an expected TEST_IGNORE_MESSAGE string!"); TEST_FAIL_MESSAGE("This should not be reached"); VERIFY_IGNORES_END } void testNotEqualInts(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_INT(3982, 3983); VERIFY_FAILS_END } void testNotEqualInt8s(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_INT8(-127, -126); VERIFY_FAILS_END } void testNotEqualInt16s(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_INT16(-16383, -16382); VERIFY_FAILS_END } void testNotEqualInt32s(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_INT32(-2147483647, -2147483646); VERIFY_FAILS_END } void testNotEqualBits(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_BITS(0xFF00, 0x5555, 0x5A55); VERIFY_FAILS_END } void testNotEqualUInts(void) { _UU16 v0, v1; v0 = 9000; v1 = 9001; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_UINT(v0, v1); VERIFY_FAILS_END } void testNotEqualUInt8s(void) { _UU8 v0, v1; v0 = 254; v1 = 255; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_UINT8(v0, v1); VERIFY_FAILS_END } void testNotEqualUInt16s(void) { _UU16 v0, v1; v0 = 65535; v1 = 65534; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_UINT16(v0, v1); VERIFY_FAILS_END } void testNotEqualUInt32s(void) { _UU32 v0, v1; v0 = 4294967295; v1 = 4294967294; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_UINT32(v0, v1); VERIFY_FAILS_END } void testNotEqualHex8s(void) { _UU8 v0, v1; v0 = 0x23; v1 = 0x22; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX8(v0, v1); VERIFY_FAILS_END } void testNotEqualHex8sIfSigned(void) { _US8 v0, v1; v0 = -2; v1 = 2; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX8(v0, v1); VERIFY_FAILS_END } void testNotEqualHex16s(void) { _UU16 v0, v1; v0 = 0x1234; v1 = 0x1235; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX16(v0, v1); VERIFY_FAILS_END } void testNotEqualHex16sIfSigned(void) { _US16 v0, v1; v0 = -1024; v1 = -1028; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX16(v0, v1); VERIFY_FAILS_END } void testNotEqualHex32s(void) { _UU32 v0, v1; v0 = 900000; v1 = 900001; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX32(v0, v1); VERIFY_FAILS_END } void testNotEqualHex32sIfSigned(void) { _US32 v0, v1; v0 = -900000; v1 = 900001; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX32(v0, v1); VERIFY_FAILS_END } void testEqualInts(void) { int v0, v1; int *p0, *p1; v0 = 19467; v1 = 19467; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_INT(1837, 1837); TEST_ASSERT_EQUAL_INT(-27365, -27365); TEST_ASSERT_EQUAL_INT(v0, v1); TEST_ASSERT_EQUAL_INT(19467, v1); TEST_ASSERT_EQUAL_INT(v0, 19467); TEST_ASSERT_EQUAL_INT(*p0, v1); TEST_ASSERT_EQUAL_INT(*p0, *p1); TEST_ASSERT_EQUAL_INT(*p0, 19467); } void testEqualInt8s(void) { _US8 v0, v1; _US8 *p0, *p1; v0 = 0x22; v1 = 0x22; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_INT8(0x22, 0x22); TEST_ASSERT_EQUAL_INT8(v0, v1); TEST_ASSERT_EQUAL_INT8(0x22, v1); TEST_ASSERT_EQUAL_INT8(v0, 0x22); TEST_ASSERT_EQUAL_INT8(*p0, v1); TEST_ASSERT_EQUAL_INT8(*p0, *p1); TEST_ASSERT_EQUAL_INT8(*p0, 0x22); } void testEqualInt8sWhenThereAreDifferencesOutside8Bits(void) { TEST_ASSERT_EQUAL_INT8(0x321,0x421); TEST_ASSERT_EQUAL_INT8(0xFF21,0x0021); } void testEqualInt16s(void) { _US16 v0, v1; _US16 *p0, *p1; v0 = 0x7876; v1 = 0x7876; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_INT16(0x7876, 0x7876); TEST_ASSERT_EQUAL_INT16(v0, v1); TEST_ASSERT_EQUAL_INT16(0x7876, v1); TEST_ASSERT_EQUAL_INT16(v0, 0x7876); TEST_ASSERT_EQUAL_INT16(*p0, v1); TEST_ASSERT_EQUAL_INT16(*p0, *p1); TEST_ASSERT_EQUAL_INT16(*p0, 0x7876); } void testEqualInt16sNegatives(void) { _US16 v0, v1; _US16 *p0, *p1; v0 = -7876; v1 = -7876; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_INT16(-7876, -7876); TEST_ASSERT_EQUAL_INT16(v0, v1); TEST_ASSERT_EQUAL_INT16(-7876, v1); TEST_ASSERT_EQUAL_INT16(v0, -7876); TEST_ASSERT_EQUAL_INT16(*p0, v1); TEST_ASSERT_EQUAL_INT16(*p0, *p1); TEST_ASSERT_EQUAL_INT16(*p0, -7876); } void testEqualInt16sWhenThereAreDifferencesOutside16Bits(void) { TEST_ASSERT_EQUAL_INT16(0x54321,0x64321); TEST_ASSERT_EQUAL_INT16(0xFFFF4321,0x00004321); } void testEqualUints(void) { unsigned int v0, v1; unsigned int *p0, *p1; v0 = 19467; v1 = 19467; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_UINT(1837, 1837); TEST_ASSERT_EQUAL_UINT(v0, v1); TEST_ASSERT_EQUAL_UINT(19467, v1); TEST_ASSERT_EQUAL_UINT(v0, 19467); TEST_ASSERT_EQUAL_UINT(*p0, v1); TEST_ASSERT_EQUAL_UINT(*p0, *p1); TEST_ASSERT_EQUAL_UINT(*p0, 19467); TEST_ASSERT_EQUAL_UINT(60872u, 60872u); } void testEqualUint8s(void) { _UU8 v0, v1; _UU8 *p0, *p1; v0 = 0x22; v1 = 0x22; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_UINT8(0x22, 0x22); TEST_ASSERT_EQUAL_UINT8(v0, v1); TEST_ASSERT_EQUAL_UINT8(0x22, v1); TEST_ASSERT_EQUAL_UINT8(v0, 0x22); TEST_ASSERT_EQUAL_UINT8(*p0, v1); TEST_ASSERT_EQUAL_UINT8(*p0, *p1); TEST_ASSERT_EQUAL_UINT8(*p0, 0x22); } void testEqualUint8sWhenThereAreDifferencesOutside8Bits(void) { TEST_ASSERT_EQUAL_UINT8(0x321,0x421); TEST_ASSERT_EQUAL_UINT8(0xFF21,0x0021); } void testEqualUint16s(void) { _UU16 v0, v1; _UU16 *p0, *p1; v0 = 0x9876; v1 = 0x9876; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_UINT16(0x9876, 0x9876); TEST_ASSERT_EQUAL_UINT16(v0, v1); TEST_ASSERT_EQUAL_UINT16(0x9876, v1); TEST_ASSERT_EQUAL_UINT16(v0, 0x9876); TEST_ASSERT_EQUAL_UINT16(*p0, v1); TEST_ASSERT_EQUAL_UINT16(*p0, *p1); TEST_ASSERT_EQUAL_UINT16(*p0, 0x9876); } void testEqualUint16sWhenThereAreDifferencesOutside16Bits(void) { TEST_ASSERT_EQUAL_UINT16(0x54321,0x64321); TEST_ASSERT_EQUAL_UINT16(0xFFFF4321,0x00004321); } void testNotEqual(void) { TEST_ASSERT_NOT_EQUAL(0, 1); TEST_ASSERT_NOT_EQUAL(1, 0); TEST_ASSERT_NOT_EQUAL(100, 101); TEST_ASSERT_NOT_EQUAL(0, -1); TEST_ASSERT_NOT_EQUAL(65535, -65535); TEST_ASSERT_NOT_EQUAL(75, 900); TEST_ASSERT_NOT_EQUAL(-100, -101); } void testEqualHex8s(void) { _UU8 v0, v1; _UU8 *p0, *p1; v0 = 0x22; v1 = 0x22; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_HEX8(0x22, 0x22); TEST_ASSERT_EQUAL_HEX8(v0, v1); TEST_ASSERT_EQUAL_HEX8(0x22, v1); TEST_ASSERT_EQUAL_HEX8(v0, 0x22); TEST_ASSERT_EQUAL_HEX8(*p0, v1); TEST_ASSERT_EQUAL_HEX8(*p0, *p1); TEST_ASSERT_EQUAL_HEX8(*p0, 0x22); } void testEqualHex8sWhenThereAreDifferencesOutside8Bits(void) { TEST_ASSERT_EQUAL_HEX8(0x321,0x421); TEST_ASSERT_EQUAL_HEX8(0xFF21,0x0021); } void testEqualHex8sNegatives(void) { _UU8 v0, v1; _UU8 *p0, *p1; v0 = 0xDD; v1 = 0xDD; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_HEX8(0xDD, 0xDD); TEST_ASSERT_EQUAL_HEX8(v0, v1); TEST_ASSERT_EQUAL_HEX8(0xDD, v1); TEST_ASSERT_EQUAL_HEX8(v0, 0xDD); TEST_ASSERT_EQUAL_HEX8(*p0, v1); TEST_ASSERT_EQUAL_HEX8(*p0, *p1); TEST_ASSERT_EQUAL_HEX8(*p0, 0xDD); } void testEqualHex16s(void) { _UU16 v0, v1; _UU16 *p0, *p1; v0 = 0x9876; v1 = 0x9876; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_HEX16(0x9876, 0x9876); TEST_ASSERT_EQUAL_HEX16(v0, v1); TEST_ASSERT_EQUAL_HEX16(0x9876, v1); TEST_ASSERT_EQUAL_HEX16(v0, 0x9876); TEST_ASSERT_EQUAL_HEX16(*p0, v1); TEST_ASSERT_EQUAL_HEX16(*p0, *p1); TEST_ASSERT_EQUAL_HEX16(*p0, 0x9876); } void testEqualHex16sWhenThereAreDifferencesOutside16Bits(void) { TEST_ASSERT_EQUAL_HEX16(0x54321,0x64321); TEST_ASSERT_EQUAL_HEX16(0xFFFF4321,0x00004321); } void testEqualHex32s(void) { _UU32 v0, v1; _UU32 *p0, *p1; v0 = 0x98765432ul; v1 = 0x98765432ul; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_HEX32(0x98765432ul, 0x98765432ul); TEST_ASSERT_EQUAL_HEX32(v0, v1); TEST_ASSERT_EQUAL_HEX32(0x98765432ul, v1); TEST_ASSERT_EQUAL_HEX32(v0, 0x98765432ul); TEST_ASSERT_EQUAL_HEX32(*p0, v1); TEST_ASSERT_EQUAL_HEX32(*p0, *p1); TEST_ASSERT_EQUAL_HEX32(*p0, 0x98765432ul); } void testEqualBits(void) { _UU32 v0 = 0xFF55AA00; _UU32 v1 = 0x55550000; TEST_ASSERT_BITS(v1, v0, 0x55550000); TEST_ASSERT_BITS(v1, v0, 0xFF55CC00); TEST_ASSERT_BITS(0xFFFFFFFF, v0, 0xFF55AA00); TEST_ASSERT_BITS(0xFFFFFFFF, v0, v0); TEST_ASSERT_BITS(0xF0F0F0F0, v0, 0xFC5DAE0F); TEST_ASSERT_BITS_HIGH(v1, v0); TEST_ASSERT_BITS_LOW(0x000055FF, v0); TEST_ASSERT_BIT_HIGH(30, v0); TEST_ASSERT_BIT_LOW(5, v0); } void testEqualShorts(void) { short v0, v1; short *p0, *p1; v0 = 19467; v1 = 19467; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_INT(1837, 1837); TEST_ASSERT_EQUAL_INT(-2987, -2987); TEST_ASSERT_EQUAL_INT(v0, v1); TEST_ASSERT_EQUAL_INT(19467, v1); TEST_ASSERT_EQUAL_INT(v0, 19467); TEST_ASSERT_EQUAL_INT(*p0, v1); TEST_ASSERT_EQUAL_INT(*p0, *p1); TEST_ASSERT_EQUAL_INT(*p0, 19467); } void testEqualUShorts(void) { unsigned short v0, v1; unsigned short *p0, *p1; v0 = 19467; v1 = 19467; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_UINT(1837, 1837); TEST_ASSERT_EQUAL_UINT(2987, 2987); TEST_ASSERT_EQUAL_UINT(v0, v1); TEST_ASSERT_EQUAL_UINT(19467, v1); TEST_ASSERT_EQUAL_UINT(v0, 19467); TEST_ASSERT_EQUAL_UINT(*p0, v1); TEST_ASSERT_EQUAL_UINT(*p0, *p1); TEST_ASSERT_EQUAL_UINT(*p0, 19467); } void testEqualChars(void) { signed char v0, v1; signed char *p0, *p1; v0 = 109; v1 = 109; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_INT(42, 42); TEST_ASSERT_EQUAL_INT(-116, -116); TEST_ASSERT_EQUAL_INT(v0, v1); TEST_ASSERT_EQUAL_INT(109, v1); TEST_ASSERT_EQUAL_INT(v0, 109); TEST_ASSERT_EQUAL_INT(*p0, v1); TEST_ASSERT_EQUAL_INT(*p0, *p1); TEST_ASSERT_EQUAL_INT(*p0, 109); } void testEqualUChars(void) { unsigned char v0, v1; unsigned char *p0, *p1; v0 = 251; v1 = 251; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_INT(42, 42); TEST_ASSERT_EQUAL_INT(v0, v1); TEST_ASSERT_EQUAL_INT(251, v1); TEST_ASSERT_EQUAL_INT(v0, 251); TEST_ASSERT_EQUAL_INT(*p0, v1); TEST_ASSERT_EQUAL_INT(*p0, *p1); TEST_ASSERT_EQUAL_INT(*p0, 251); } void testEqualPointers(void) { int v0, v1; int *p0, *p1, *p2; v0 = 19467; v1 = 18271; p0 = &v0; p1 = &v1; p2 = &v1; TEST_ASSERT_EQUAL_PTR(p0, &v0); TEST_ASSERT_EQUAL_PTR(&v1, p1); TEST_ASSERT_EQUAL_PTR(p2, p1); TEST_ASSERT_EQUAL_PTR(&v0, &v0); } void testNotEqualPointers(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_PTR(0x12345678, 0x12345677); VERIFY_FAILS_END } void testIntsWithinDelta(void) { TEST_ASSERT_INT_WITHIN(1, 5000, 5001); TEST_ASSERT_INT_WITHIN(5, 5000, 4996); TEST_ASSERT_INT_WITHIN(5, 5000, 5005); TEST_ASSERT_INT_WITHIN(500, 50, -440); TEST_ASSERT_INT_WITHIN(2, -1, -1); TEST_ASSERT_INT_WITHIN(5, 1, -1); TEST_ASSERT_INT_WITHIN(5, -1, 1); } void testIntsNotWithinDelta(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_INT_WITHIN(5, 5000, 5006); VERIFY_FAILS_END } void testUIntsWithinDelta(void) { TEST_ASSERT_UINT_WITHIN(1, 5000, 5001); TEST_ASSERT_UINT_WITHIN(5, 5000, 4996); TEST_ASSERT_UINT_WITHIN(5, 5000, 5005); } void testUIntsNotWithinDelta(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_UINT_WITHIN(1, 2147483647u, 2147483649u); VERIFY_FAILS_END } void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassSmallFirst(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_UINT_WITHIN(5, 1, -1); VERIFY_FAILS_END } void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassBigFirst(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_UINT_WITHIN(5, -1, 1); VERIFY_FAILS_END } void testHEX32sWithinDelta(void) { TEST_ASSERT_HEX32_WITHIN(1, 5000, 5001); TEST_ASSERT_HEX32_WITHIN(5, 5000, 4996); TEST_ASSERT_HEX32_WITHIN(5, 5000, 5005); } void testHEX32sNotWithinDelta(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_HEX32_WITHIN(1, 2147483647u, 2147483649u); VERIFY_FAILS_END } void testHEX32sNotWithinDeltaEvenThoughASignedIntWouldPass(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_HEX32_WITHIN(5, 1, -1); VERIFY_FAILS_END } void testHEX16sWithinDelta(void) { TEST_ASSERT_HEX16_WITHIN(1, 5000, 5001); TEST_ASSERT_HEX16_WITHIN(5, 5000, 4996); TEST_ASSERT_HEX16_WITHIN(5, 5000, 5005); } void testHEX16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void) { TEST_ASSERT_HEX16_WITHIN(5, 0x54321, 0x44321); } void testHEX16sNotWithinDelta(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_HEX16_WITHIN(2, 65535, 0); VERIFY_FAILS_END } void testHEX8sWithinDelta(void) { TEST_ASSERT_HEX8_WITHIN(1, 254, 255); TEST_ASSERT_HEX8_WITHIN(5, 251, 255); TEST_ASSERT_HEX8_WITHIN(5, 1, 4); } void testHEX8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void) { TEST_ASSERT_HEX8_WITHIN(5, 0x123, 0xF23); } void testHEX8sNotWithinDelta(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_HEX8_WITHIN(2, 255, 0); VERIFY_FAILS_END } void testEqualStrings(void) { const char *testString = "foo"; TEST_ASSERT_EQUAL_STRING(testString, testString); TEST_ASSERT_EQUAL_STRING("foo", "foo"); TEST_ASSERT_EQUAL_STRING("foo", testString); TEST_ASSERT_EQUAL_STRING(testString, "foo"); TEST_ASSERT_EQUAL_STRING("", ""); } void testEqualStringsWithCarriageReturnsAndLineFeeds(void) { const char *testString = "foo\r\nbar"; TEST_ASSERT_EQUAL_STRING(testString, testString); TEST_ASSERT_EQUAL_STRING("foo\r\nbar", "foo\r\nbar"); TEST_ASSERT_EQUAL_STRING("foo\r\nbar", testString); TEST_ASSERT_EQUAL_STRING(testString, "foo\r\nbar"); TEST_ASSERT_EQUAL_STRING("", ""); } void testNotEqualString1(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING("foo", "bar"); VERIFY_FAILS_END } void testNotEqualString2(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING("foo", ""); VERIFY_FAILS_END } void testNotEqualString3(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING("", "bar"); VERIFY_FAILS_END } void testNotEqualString4(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING("bar\r", "bar\n"); VERIFY_FAILS_END } void testNotEqualString5(void) { const char str1[] = { 0x41, 0x42, 0x03, 0x00 }; const char str2[] = { 0x41, 0x42, 0x04, 0x00 }; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING(str1, str2); VERIFY_FAILS_END } void testNotEqualString_ExpectedStringIsNull(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING(NULL, "bar"); VERIFY_FAILS_END } void testNotEqualString_ActualStringIsNull(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING("foo", NULL); VERIFY_FAILS_END } void testEqualStringArrays(void) { const char *testStrings[] = { "foo", "boo", "woo", "moo" }; const char *expStrings[] = { "foo", "boo", "woo", "zoo" }; TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, expStrings, 3); TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 3); TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 2); TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 1); } void testNotEqualStringArray1(void) { const char *testStrings[] = { "foo", "boo", "woo", "moo" }; const char *expStrings[] = { "foo", "boo", "woo", "zoo" }; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); VERIFY_FAILS_END } void testNotEqualStringArray2(void) { const char *testStrings[] = { "zoo", "boo", "woo", "moo" }; const char *expStrings[] = { "foo", "boo", "woo", "moo" }; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); VERIFY_FAILS_END } void testNotEqualStringArray3(void) { const char *testStrings[] = { "foo", "boo", "woo", NULL }; const char *expStrings[] = { "foo", "boo", "woo", "zoo" }; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); VERIFY_FAILS_END } void testNotEqualStringArray4(void) { const char *testStrings[] = { "foo", "boo", "woo", "moo" }; const char *expStrings[] = { "foo", NULL, "woo", "moo" }; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); VERIFY_FAILS_END } void testNotEqualStringArray5(void) { const char **testStrings = NULL; const char *expStrings[] = { "foo", "boo", "woo", "zoo" }; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); VERIFY_FAILS_END } void testNotEqualStringArray6(void) { const char *testStrings[] = { "foo", "boo", "woo", "zoo" }; const char **expStrings = NULL; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); VERIFY_FAILS_END } void testEqualStringArrayIfBothNulls(void) { const char **testStrings = NULL; const char **expStrings = NULL; TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4); } void testEqualMemory(void) { const char *testString = "whatever"; TEST_ASSERT_EQUAL_MEMORY(testString, testString, 8); TEST_ASSERT_EQUAL_MEMORY("whatever", "whatever", 8); TEST_ASSERT_EQUAL_MEMORY("whatever", testString, 8); TEST_ASSERT_EQUAL_MEMORY(testString, "whatever", 8); TEST_ASSERT_EQUAL_MEMORY(testString, "whatever", 2); TEST_ASSERT_EQUAL_MEMORY(NULL, NULL, 1); } void testNotEqualMemory1(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_MEMORY("foo", "bar", 3); VERIFY_FAILS_END } void testNotEqualMemory2(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_MEMORY("fool", "food", 4); VERIFY_FAILS_END } void testNotEqualMemory3(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_MEMORY(NULL, "food", 4); VERIFY_FAILS_END } void testNotEqualMemory4(void) { EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_MEMORY("fool", NULL, 4); VERIFY_FAILS_END } void testEqualIntArrays(void) { int p0[] = {1, 8, 987, -2}; int p1[] = {1, 8, 987, -2}; int p2[] = {1, 8, 987, 2}; int p3[] = {1, 500, 600, 700}; TEST_ASSERT_EQUAL_INT_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_INT_ARRAY(p0, p0, 4); TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); TEST_ASSERT_EQUAL_INT_ARRAY(p0, p2, 3); TEST_ASSERT_EQUAL_INT_ARRAY(p0, p3, 1); } void testNotEqualIntArraysNullExpected(void) { int* p0 = NULL; int p1[] = {1, 8, 987, 2}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualIntArraysNullActual(void) { int* p1 = NULL; int p0[] = {1, 8, 987, 2}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualIntArrays1(void) { int p0[] = {1, 8, 987, -2}; int p1[] = {1, 8, 987, 2}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualIntArrays2(void) { int p0[] = {1, 8, 987, -2}; int p1[] = {2, 8, 987, -2}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualIntArrays3(void) { int p0[] = {1, 8, 987, -2}; int p1[] = {1, 8, 986, -2}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testEqualPtrArrays(void) { char A = 1; char B = 2; char C = 3; char* p0[] = {&A, &B, &C}; char* p1[] = {&A, &B, &C, &A}; char* p2[] = {&A, &B}; char* p3[] = {&A}; TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p0, 3); TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 3); TEST_ASSERT_EQUAL_PTR_ARRAY(p1, p2, 2); TEST_ASSERT_EQUAL_PTR_ARRAY(p3, p0, 1); } void testNotEqualPtrArraysNullExpected(void) { char A = 1; char B = 2; char** p0 = NULL; char* p1[] = {&A, &B}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 2); VERIFY_FAILS_END } void testNotEqualPtrArraysNullActual(void) { char A = 1; char B = 2; char** p0 = NULL; char* p1[] = {&A, &B}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_PTR_ARRAY(p1, p0, 2); VERIFY_FAILS_END } void testNotEqualPtrArrays1(void) { char A = 1; char B = 2; char C = 3; char* p0[] = {&A, &B, &C, &B}; char* p1[] = {&A, &B, &C, &A}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualPtrArrays2(void) { char A = 1; char B = 2; char C = 3; char* p0[] = {&B, &B, &C, &A}; char* p1[] = {&A, &B, &C, &A}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualPtrArrays3(void) { char A = 1; char B = 2; char C = 3; char* p0[] = {&A, &B, &B, &A}; char* p1[] = {&A, &B, &C, &A}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testEqualInt8Arrays(void) { _US8 p0[] = {1, 8, 117, -2}; _US8 p1[] = {1, 8, 117, -2}; _US8 p2[] = {1, 8, 117, 2}; _US8 p3[] = {1, 50, 60, 70}; TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p0, 4); TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p1, 4); TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p2, 3); TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p3, 1); } void testNotEqualInt8Arrays(void) { _US8 p0[] = {1, 8, 127, -2}; _US8 p1[] = {1, 8, 127, 2}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testEqualUIntArrays(void) { unsigned int p0[] = {1, 8, 987, 65132u}; unsigned int p1[] = {1, 8, 987, 65132u}; unsigned int p2[] = {1, 8, 987, 2}; unsigned int p3[] = {1, 500, 600, 700}; TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p0, 4); TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4); TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p2, 3); TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p3, 1); } void testNotEqualUIntArrays1(void) { unsigned int p0[] = {1, 8, 987, 65132u}; unsigned int p1[] = {1, 8, 987, 65131u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualUIntArrays2(void) { unsigned int p0[] = {1, 8, 987, 65132u}; unsigned int p1[] = {2, 8, 987, 65132u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualUIntArrays3(void) { unsigned int p0[] = {1, 8, 987, 65132u}; unsigned int p1[] = {1, 8, 986, 65132u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_UINT_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testEqualInt16Arrays(void) { _UU16 p0[] = {1, 8, 117, 3}; _UU16 p1[] = {1, 8, 117, 3}; _UU16 p2[] = {1, 8, 117, 2}; _UU16 p3[] = {1, 50, 60, 70}; TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p0, 4); TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p1, 4); TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p2, 3); TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p3, 1); } void testNotEqualInt16Arrays(void) { _UU16 p0[] = {1, 8, 127, 3}; _UU16 p1[] = {1, 8, 127, 2}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testEqualUINT16Arrays(void) { unsigned short p0[] = {1, 8, 987, 65132u}; unsigned short p1[] = {1, 8, 987, 65132u}; unsigned short p2[] = {1, 8, 987, 2}; unsigned short p3[] = {1, 500, 600, 700}; TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p0, 4); TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4); TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p2, 3); TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p3, 1); } void testNotEqualUINT16Arrays1(void) { unsigned short p0[] = {1, 8, 987, 65132u}; unsigned short p1[] = {1, 8, 987, 65131u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualUINT16Arrays2(void) { unsigned short p0[] = {1, 8, 987, 65132u}; unsigned short p1[] = {2, 8, 987, 65132u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualUINT16Arrays3(void) { unsigned short p0[] = {1, 8, 987, 65132u}; unsigned short p1[] = {1, 8, 986, 65132u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_UINT16_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testEqualHEXArrays(void) { unsigned int p0[] = {1, 8, 987, 65132u}; unsigned int p1[] = {1, 8, 987, 65132u}; unsigned int p2[] = {1, 8, 987, 2}; unsigned int p3[] = {1, 500, 600, 700}; TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p0, 4); TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p1, 4); TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p2, 3); TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p3, 1); } void testNotEqualHEXArrays1(void) { unsigned int p0[] = {1, 8, 987, 65132u}; unsigned int p1[] = {1, 8, 987, 65131u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualHEXArrays2(void) { unsigned int p0[] = {1, 8, 987, 65132u}; unsigned int p1[] = {2, 8, 987, 65132u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualHEXArrays3(void) { unsigned int p0[] = {1, 8, 987, 65132u}; unsigned int p1[] = {1, 8, 986, 65132u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testEqualHEX16Arrays(void) { unsigned short p0[] = {1, 8, 987, 65132u}; unsigned short p1[] = {1, 8, 987, 65132u}; unsigned short p2[] = {1, 8, 987, 2}; unsigned short p3[] = {1, 500, 600, 700}; TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p0, 4); TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4); TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p2, 3); TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p3, 1); } void testNotEqualHEX16Arrays1(void) { unsigned short p0[] = {1, 8, 987, 65132u}; unsigned short p1[] = {1, 8, 987, 65131u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualHEX16Arrays2(void) { unsigned short p0[] = {1, 8, 987, 65132u}; unsigned short p1[] = {2, 8, 987, 65132u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualHEX16Arrays3(void) { unsigned short p0[] = {1, 8, 987, 65132u}; unsigned short p1[] = {1, 8, 986, 65132u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX16_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testEqualHEX8Arrays(void) { unsigned short p0[] = {1, 8, 254u, 123}; unsigned short p1[] = {1, 8, 254u, 123}; unsigned short p2[] = {1, 8, 254u, 2}; unsigned short p3[] = {1, 23, 25, 26}; TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p0, 4); TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4); TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p2, 3); TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p3, 1); } void testNotEqualHEX8Arrays1(void) { unsigned char p0[] = {1, 8, 254u, 253u}; unsigned char p1[] = {1, 8, 254u, 252u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualHEX8Arrays2(void) { unsigned char p0[] = {1, 8, 254u, 253u}; unsigned char p1[] = {2, 8, 254u, 253u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testNotEqualHEX8Arrays3(void) { unsigned char p0[] = {1, 8, 254u, 253u}; unsigned char p1[] = {1, 8, 255u, 253u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX8_ARRAY(p0, p1, 4); VERIFY_FAILS_END } void testEqualMemoryArrays(void) { int p0[] = {1, 8, 987, -2}; int p1[] = {1, 8, 987, -2}; int p2[] = {1, 8, 987, 2}; int p3[] = {1, 500, 600, 700}; TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p0, 4, 1); TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p0, 4, 4); TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, 4, 4); TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p2, 4, 3); TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p3, 4, 1); } void testNotEqualMemoryArraysExpectedNull(void) { int* p0 = NULL; int p1[] = {1, 8, 987, 2}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, 4, 4); VERIFY_FAILS_END } void testNotEqualMemoryArraysActualNull(void) { int p0[] = {1, 8, 987, -2}; int* p1 = NULL; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, 4, 4); VERIFY_FAILS_END } void testNotEqualMemoryArrays1(void) { int p0[] = {1, 8, 987, -2}; int p1[] = {1, 8, 987, 2}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, 4, 4); VERIFY_FAILS_END } void testNotEqualMemoryArrays2(void) { int p0[] = {1, 8, 987, -2}; int p1[] = {2, 8, 987, -2}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, 4, 4); VERIFY_FAILS_END } void testNotEqualMemoryArrays3(void) { int p0[] = {1, 8, 987, -2}; int p1[] = {1, 8, 986, -2}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, 4, 4); VERIFY_FAILS_END } void testProtection(void) { volatile int mask = 0; if (TEST_PROTECT()) { mask |= 1; TEST_ABORT(); } else { Unity.CurrentTestFailed = 0; mask |= 2; } TEST_ASSERT_EQUAL(3, mask); } void testIgnoredAndThenFailInTearDown(void) { SetToOneToFailInTearDown = 1; TEST_IGNORE(); } // ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES 64 BIT SUPPORT ================== void testEqualHex64s(void) { #ifndef UNITY_SUPPORT_64 TEST_IGNORE(); #else _UU64 v0, v1; _UU64 *p0, *p1; v0 = 0x9876543201234567; v1 = 0x9876543201234567; p0 = &v0; p1 = &v1; TEST_ASSERT_EQUAL_HEX64(0x9876543201234567, 0x9876543201234567); TEST_ASSERT_EQUAL_HEX64(v0, v1); TEST_ASSERT_EQUAL_HEX64(0x9876543201234567, v1); TEST_ASSERT_EQUAL_HEX64(v0, 0x9876543201234567); TEST_ASSERT_EQUAL_HEX64(*p0, v1); TEST_ASSERT_EQUAL_HEX64(*p0, *p1); TEST_ASSERT_EQUAL_HEX64(*p0, 0x9876543201234567); #endif } void testNotEqualHex64s(void) { #ifndef UNITY_SUPPORT_64 TEST_IGNORE(); #else _UU64 v0, v1; v0 = 9000000000; v1 = 9100000000; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX64(v0, v1); VERIFY_FAILS_END #endif } void testNotEqualHex64sIfSigned(void) { #ifndef UNITY_SUPPORT_64 TEST_IGNORE(); #else _US64 v0, v1; v0 = -9000000000; v1 = 9000000000; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX64(v0, v1); VERIFY_FAILS_END #endif } void testHEX64sWithinDelta(void) { #ifndef UNITY_SUPPORT_64 TEST_IGNORE(); #else TEST_ASSERT_HEX64_WITHIN(1, 0x7FFFFFFFFFFFFFFF,0x7FFFFFFFFFFFFFFE); TEST_ASSERT_HEX64_WITHIN(5, 5000, 4996); TEST_ASSERT_HEX64_WITHIN(5, 5000, 5005); #endif } void testHEX64sNotWithinDelta(void) { #ifndef UNITY_SUPPORT_64 TEST_IGNORE(); #else EXPECT_ABORT_BEGIN TEST_ASSERT_HEX64_WITHIN(1, 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFC); VERIFY_FAILS_END #endif } void testHEX64sNotWithinDeltaEvenThoughASignedIntWouldPass(void) { #ifndef UNITY_SUPPORT_64 TEST_IGNORE(); #else EXPECT_ABORT_BEGIN TEST_ASSERT_HEX64_WITHIN(5, 1, -1); VERIFY_FAILS_END #endif } void testEqualHEX64Arrays(void) { #ifndef UNITY_SUPPORT_64 TEST_IGNORE(); #else _UU64 p0[] = {1, 8, 987, 65132u}; _UU64 p1[] = {1, 8, 987, 65132u}; _UU64 p2[] = {1, 8, 987, 2}; _UU64 p3[] = {1, 500, 600, 700}; TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p0, 4); TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p1, 4); TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p2, 3); TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p3, 1); #endif } void testNotEqualHEX64Arrays1(void) { #ifndef UNITY_SUPPORT_64 TEST_IGNORE(); #else _UU64 p0[] = {1, 8, 987, 65132u}; _UU64 p1[] = {1, 8, 987, 65131u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualHEX64Arrays2(void) { #ifndef UNITY_SUPPORT_64 TEST_IGNORE(); #else _UU64 p0[] = {1, 8, 987, 65132u}; _UU64 p1[] = {2, 8, 987, 65132u}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } // ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES FLOAT SUPPORT ================== void testFloatsWithinDelta(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else TEST_ASSERT_FLOAT_WITHIN(0.00003f, 187245.03485f, 187245.03488f); TEST_ASSERT_FLOAT_WITHIN(1.0f, 187245.0f, 187246.0f); TEST_ASSERT_FLOAT_WITHIN(0.05f, 9273.2549f, 9273.2049f); TEST_ASSERT_FLOAT_WITHIN(0.007f, -726.93724f, -726.94424f); #endif } void testFloatsNotWithinDelta(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else EXPECT_ABORT_BEGIN TEST_ASSERT_FLOAT_WITHIN(0.05f, 9273.2649f, 9273.2049f); VERIFY_FAILS_END #endif } void testFloatsEqual(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else TEST_ASSERT_EQUAL_FLOAT(187245.0f, 187246.0f); TEST_ASSERT_EQUAL_FLOAT(18724.5f, 18724.6f); TEST_ASSERT_EQUAL_FLOAT(9273.2549f, 9273.2599f); TEST_ASSERT_EQUAL_FLOAT(-726.93724f, -726.9374f); #endif } void testFloatsNotEqual(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_FLOAT(9273.9649f, 9273.0049f); VERIFY_FAILS_END #endif } void testFloatsNotEqualNegative1(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_FLOAT(-9273.9649f, -9273.0049f); VERIFY_FAILS_END #endif } void testFloatsNotEqualNegative2(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_FLOAT(-9273.0049f, -9273.9649f); VERIFY_FAILS_END #endif } void testEqualFloatArrays(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else float p0[] = {1.0, -8.0, 25.4, -0.123}; float p1[] = {1.0, -8.0, 25.4, -0.123}; float p2[] = {1.0, -8.0, 25.4, -0.2}; float p3[] = {1.0, -23.0, 25.0, -0.26}; TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p0, 4); TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p2, 3); TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p3, 1); #endif } void testNotEqualFloatArraysExpectedNull(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else float* p0 = NULL; float p1[] = {1.0, 8.0, 25.4, 0.252}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualFloatArraysActualNull(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else float p0[] = {1.0, 8.0, 25.4, 0.253}; float* p1 = NULL; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualFloatArrays1(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else float p0[] = {1.0, 8.0, 25.4, 0.253}; float p1[] = {1.0, 8.0, 25.4, 0.252}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualFloatArrays2(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else float p0[] = {1.0, 8.0, 25.4, 0.253}; float p1[] = {2.0, 8.0, 25.4, 0.253}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualFloatArrays3(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else float p0[] = {1.0, 8.0, 25.4, 0.253}; float p1[] = {1.0, 8.0, 25.5, 0.253}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualFloatArraysNegative1(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else float p0[] = {-1.0, -8.0, -25.4, -0.253}; float p1[] = {-1.0, -8.0, -25.4, -0.252}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualFloatArraysNegative2(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else float p0[] = {-1.0, -8.0, -25.4, -0.253}; float p1[] = {-2.0, -8.0, -25.4, -0.253}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualFloatArraysNegative3(void) { #ifdef UNITY_EXCLUDE_FLOAT TEST_IGNORE(); #else float p0[] = {-1.0, -8.0, -25.4, -0.253}; float p1[] = {-1.0, -8.0, -25.5, -0.253}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } // ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES DOUBLE SUPPORT ================== void testDoublesWithinDelta(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else TEST_ASSERT_DOUBLE_WITHIN(0.00003, 187245.03485, 187245.03488); TEST_ASSERT_DOUBLE_WITHIN(1.0, 187245.0, 187246.0); TEST_ASSERT_DOUBLE_WITHIN(0.05, 9273.2549, 9273.2049); TEST_ASSERT_DOUBLE_WITHIN(0.007, -726.93725, -726.94424); #endif } void testDoublesNotWithinDelta(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else EXPECT_ABORT_BEGIN TEST_ASSERT_DOUBLE_WITHIN(0.05, 9273.2649, 9273.2049); VERIFY_FAILS_END #endif } void testDoublesEqual(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else TEST_ASSERT_EQUAL_DOUBLE(187245123456.0, 187245123456.0); TEST_ASSERT_EQUAL_DOUBLE(187241234567.5, 187241234567.6); TEST_ASSERT_EQUAL_DOUBLE(9273.2512345649, 9273.25123455699); TEST_ASSERT_EQUAL_DOUBLE(-726.12345693724, -726.1234569374); #endif } void testDoublesNotEqual(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_DOUBLE(9273.9649, 9273.0049); VERIFY_FAILS_END #endif } void testDoublesNotEqualNegative1(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_DOUBLE(-9273.9649, -9273.0049); VERIFY_FAILS_END #endif } void testDoublesNotEqualNegative2(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_DOUBLE(-9273.0049, -9273.9649); VERIFY_FAILS_END #endif } void testEqualDoubleArrays(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else double p0[] = {1.0, -8.0, 25.4, -0.123}; double p1[] = {1.0, -8.0, 25.4, -0.123}; double p2[] = {1.0, -8.0, 25.4, -0.2}; double p3[] = {1.0, -23.0, 25.0, -0.26}; TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p0, 1); TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p0, 4); TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p2, 3); TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p3, 1); #endif } void testNotEqualDoubleArraysExpectedNull(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else double* p0 = NULL; double p1[] = {1.0, 8.0, 25.4, 0.252}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualDoubleArraysActualNull(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else double p0[] = {1.0, 8.0, 25.4, 0.253}; double* p1 = NULL; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualDoubleArrays1(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else double p0[] = {1.0, 8.0, 25.4, 0.25666666667}; double p1[] = {1.0, 8.0, 25.4, 0.25666666666}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualDoubleArrays2(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else double p0[] = {1.0, 8.0, 25.4, 0.253}; double p1[] = {2.0, 8.0, 25.4, 0.253}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualDoubleArrays3(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else double p0[] = {1.0, 8.0, 25.4, 0.253}; double p1[] = {1.0, 8.0, 25.5, 0.253}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualDoubleArraysNegative1(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else double p0[] = {-1.0, -8.0, -25.4, -0.2566666667}; double p1[] = {-1.0, -8.0, -25.4, -0.2566666666}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualDoubleArraysNegative2(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else double p0[] = {-1.0, -8.0, -25.4, -0.253}; double p1[] = {-2.0, -8.0, -25.4, -0.253}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif } void testNotEqualDoubleArraysNegative3(void) { #ifdef UNITY_EXCLUDE_DOUBLE TEST_IGNORE(); #else double p0[] = {-1.0, -8.0, -25.4, -0.253}; double p1[] = {-1.0, -8.0, -25.5, -0.253}; EXPECT_ABORT_BEGIN TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4); VERIFY_FAILS_END #endif }