cJSON/test/tests/testunity.c
Max Bruckner ab77a80e9b Squashed 'tests/unity/' changes from 1f52255..f96c055
f96c055 this is a minor release
2c7629a Documentation Updates
b8bfb01 Add support for AStyle in test makefile. It’s going to assume you have it installed.
e36d8b5 Merge pull request #276 from wolf99/pdf-to-markdown
1e43967 Add EACH_EQUAL changes
e2cc679 Add newlines after headings for best practice, trim trailing spaces & convert sneaky incorrectly coded chars
192d517 Remove PDFs
c48f6c9 Add Github Markdown versions of documents
2a5b24f Finished updating all Ruby scripts to match our coding standard. Woo!
3e0a712 Started to flesh out rubocop settings for this project. Added rakefile tasks to do so. Updated first script to make it compliant.
23f9c16 Another round of fixing things that the stylizer “corrected” for me.
3a6cca3 Fixed things that the stylizer “autocorrected” to wrong. ;)
3062c39 Starting to enforce our coding style. The first step is that we’ve pulled in Rubocop to check out Ruby syntax. There is likely a bit of customization to do yet AND there is definitely that backlog of todo’s that we just told it to ignore.
550d58b Attempt to fix remaining issues with casting
ee038c2 Ha! Forgot to add the correct comment style
d6b3508 Clean up some const issues, particularly when moving between single and double pointers
4ffafce Finish updating documentation to match
083564b Update docs to also understand the new Each Equal handlers
0dddf49 also update strings to support each element of an array.
a11a137 Added memory each equal assertion
d8d67a7 Added each_equal assertions for float and double
b7956ea Added more tests for all the numerical types when performing each_equal assertions
7fe3191 Added some tests to prove this works. Still work in progress
56eeacd prepare for comparing value to array by setting up explicit compare of array to array in ints
7b80885 Merge pull request #272 from FSMaxB/gcc43-wconversion
0781e74 Add our coding standard to documentation
c3658a0 Dropped support for pre-2.0 versions of Ruby (not even rubylang supports them anymore)
8a45ccf Use custom mock prefix when searching for mock header files. #263
689610b reorder includes in generated test runners
43c7511 stdlib.h explicitly called in fixtures when malloc used, now. (Fixes issue #268)
1c556d2 Fix -Wconversion with gcc-4.3
8723d50 Turn UNITY_OUTPUT_FLUSH off by default. Added a quick-define for the most common case: UNITY_USE_FLUSH_STDOUT. Clarified documentation. Fixes issue #269
c67a4ff - Add ability to detect TEST_FILE(“filename.c”) specifications in test files
41ee499 Tiny tweaks to make Unity fit in more smoothly with Ceedling

git-subtree-dir: tests/unity
git-subtree-split: f96c05532b3e00c9ca77e58fc07f9401cd46510d
2017-04-27 02:54:33 +02:00

4994 lines
116 KiB
C

/* ==========================================
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 "unity.h"
#include <string.h>
#include <stdint.h>
// Dividing by these constants produces +/- infinity.
// The rationale is given in UnityAssertFloatIsInf's body.
#ifndef UNITY_EXCLUDE_FLOAT
static const UNITY_FLOAT f_zero = 0.0f;
#endif
#ifndef UNITY_EXCLUDE_DOUBLE
static const UNITY_DOUBLE d_zero = 0.0;
#endif
#define EXPECT_ABORT_BEGIN \
startPutcharSpy(); \
if (TEST_PROTECT()) \
{
#define VERIFY_FAILS_END \
} \
endPutcharSpy(); /* start/end Spy to suppress output of failure message */ \
Unity.CurrentTestFailed = (Unity.CurrentTestFailed == 1) ? 0 : 1; \
if (Unity.CurrentTestFailed == 1) { \
SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
UnityPrintNumberUnsigned(Unity.CurrentTestLineNumber); \
UNITY_OUTPUT_CHAR(':'); \
UnityPrint(Unity.CurrentTestName); \
UnityPrint(":FAIL: [[[[ Test Should Have Failed But Did Not ]]]]"); \
UNITY_OUTPUT_CHAR('\n'); \
}
#define VERIFY_IGNORES_END \
} \
endPutcharSpy(); /* start/end Spy to suppress output of ignore message */ \
Unity.CurrentTestFailed = (Unity.CurrentTestIgnored == 1) ? 0 : 1; \
Unity.CurrentTestIgnored = 0; \
if (Unity.CurrentTestFailed == 1) { \
SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
UnityPrintNumberUnsigned(Unity.CurrentTestLineNumber); \
UNITY_OUTPUT_CHAR(':'); \
UnityPrint(Unity.CurrentTestName); \
UnityPrint(":FAIL: [[[[ Test Should Have Ignored But Did Not ]]]]"); \
UNITY_OUTPUT_CHAR('\n'); \
}
void startPutcharSpy(void);
void endPutcharSpy(void);
char* getBufferPutcharSpy(void);
static int SetToOneToFailInTearDown;
static int SetToOneMeanWeAlreadyCheckedThisGuy;
void setUp(void)
{
SetToOneToFailInTearDown = 0;
SetToOneMeanWeAlreadyCheckedThisGuy = 0;
}
void tearDown(void)
{
endPutcharSpy(); /* Stop suppressing test output */
if (SetToOneToFailInTearDown == 1)
{
/* These will be skipped internally if already failed/ignored */
TEST_FAIL_MESSAGE("<= Failed in tearDown");
TEST_IGNORE_MESSAGE("<= Ignored in tearDown");
}
if ((SetToOneMeanWeAlreadyCheckedThisGuy == 0) && (Unity.CurrentTestFailed > 0))
{
UnityPrint(": [[[[ Test Should Have Passed But Did Not ]]]]");
UNITY_OUTPUT_CHAR('\n');
}
}
void testUnitySizeInitializationReminder(void)
{
/* This test ensures that sizeof(struct UNITY_STORAGE_T) doesn't change. If this
* test breaks, go look at the initialization of the Unity global variable
* in unity.c and make sure we're filling in the proper fields. */
const char* message = "Unexpected size for UNITY_STORAGE_T struct. Please check that "
"the initialization of the Unity symbol in unity.c is "
"still correct.";
/* Define a structure with all the same fields as `struct UNITY_STORAGE_T`. */
#ifdef UNITY_EXCLUDE_DETAILS
struct {
const char* TestFile;
const char* CurrentTestName;
UNITY_LINE_TYPE CurrentTestLineNumber;
UNITY_COUNTER_TYPE NumberOfTests;
UNITY_COUNTER_TYPE TestFailures;
UNITY_COUNTER_TYPE TestIgnores;
UNITY_COUNTER_TYPE CurrentTestFailed;
UNITY_COUNTER_TYPE CurrentTestIgnored;
#ifndef UNITY_EXCLUDE_SETJMP_H
jmp_buf AbortFrame;
#endif
} _Expected_Unity;
#else
struct {
const char* TestFile;
const char* CurrentTestName;
const char* CurrentDetails1;
const char* CurrentDetails2;
UNITY_LINE_TYPE CurrentTestLineNumber;
UNITY_COUNTER_TYPE NumberOfTests;
UNITY_COUNTER_TYPE TestFailures;
UNITY_COUNTER_TYPE TestIgnores;
UNITY_COUNTER_TYPE CurrentTestFailed;
UNITY_COUNTER_TYPE CurrentTestIgnored;
#ifndef UNITY_EXCLUDE_SETJMP_H
jmp_buf AbortFrame;
#endif
} _Expected_Unity;
#endif
/* Compare our fake structure's size to the actual structure's size. They
* should be the same.
*
* This accounts for alignment, padding, and packing issues that might come
* up between different architectures. */
TEST_ASSERT_EQUAL_MESSAGE(sizeof(_Expected_Unity), sizeof(Unity), message);
}
void testPassShouldEndImmediatelyWithPass(void)
{
TEST_PASS();
TEST_FAIL_MESSAGE("We should have passed already and finished this test");
}
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;
const char* ptr2 = "hello";
TEST_ASSERT_NULL(ptr1);
TEST_ASSERT_NOT_NULL(ptr2);
}
void testIsNullShouldFailIfNot(void)
{
const 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, -2147483648); //use largest 32 bit negative to test printability
VERIFY_FAILS_END
}
void testNotEqualBits(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_BITS(0xFF00, 0x5555, 0x5A55);
VERIFY_FAILS_END
}
void testNotEqualUInts(void)
{
UNITY_UINT16 v0, v1;
v0 = 9000;
v1 = 9001;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT(v0, v1);
VERIFY_FAILS_END
}
void testNotEqualUInt8s(void)
{
UNITY_UINT8 v0, v1;
v0 = 254;
v1 = 255;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT8(v0, v1);
VERIFY_FAILS_END
}
void testNotEqualUInt16s(void)
{
UNITY_UINT16 v0, v1;
v0 = 65535;
v1 = 65534;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT16(v0, v1);
VERIFY_FAILS_END
}
void testNotEqualUInt32s(void)
{
UNITY_UINT32 v0, v1;
v0 = 4294967295;
v1 = 4294967294;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT32(v0, v1);
VERIFY_FAILS_END
}
void testNotEqualHex8s(void)
{
UNITY_UINT8 v0, v1;
v0 = 0x23;
v1 = 0x22;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX8(v0, v1);
VERIFY_FAILS_END
}
void testNotEqualHex8sIfSigned(void)
{
UNITY_INT8 v0, v1;
v0 = -2;
v1 = 2;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX8(v0, v1);
VERIFY_FAILS_END
}
void testNotEqualHex16s(void)
{
UNITY_UINT16 v0, v1;
v0 = 0x1234;
v1 = 0x1235;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX16(v0, v1);
VERIFY_FAILS_END
}
void testNotEqualHex16sIfSigned(void)
{
UNITY_INT16 v0, v1;
v0 = -1024;
v1 = -1028;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX16(v0, v1);
VERIFY_FAILS_END
}
void testNotEqualHex32s(void)
{
UNITY_UINT32 v0, v1;
v0 = 900000;
v1 = 900001;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX32(v0, v1);
VERIFY_FAILS_END
}
void testNotEqualHex32sIfSigned(void)
{
UNITY_INT32 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)
{
UNITY_INT8 v0, v1;
UNITY_INT8 *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)
{
UNITY_INT16 v0, v1;
UNITY_INT16 *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)
{
UNITY_INT16 v0, v1;
UNITY_INT16 *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 testEqualInt32s(void)
{
UNITY_INT32 v0, v1;
UNITY_INT32 *p0, *p1;
v0 = 0x78760000;
v1 = 0x78760000;
p0 = &v0;
p1 = &v1;
TEST_ASSERT_EQUAL_INT32(0x78760000, 0x78760000);
TEST_ASSERT_EQUAL_INT32(v0, v1);
TEST_ASSERT_EQUAL_INT32(0x78760000, v1);
TEST_ASSERT_EQUAL_INT32(v0, 0x78760000);
TEST_ASSERT_EQUAL_INT32(*p0, v1);
TEST_ASSERT_EQUAL_INT32(*p0, *p1);
TEST_ASSERT_EQUAL_INT32(*p0, 0x78760000);
}
void testEqualInt32sNegatives(void)
{
UNITY_INT32 v0, v1;
UNITY_INT32 *p0, *p1;
v0 = -123456789;
v1 = -123456789;
p0 = &v0;
p1 = &v1;
TEST_ASSERT_EQUAL_INT32(-123456789, -123456789);
TEST_ASSERT_EQUAL_INT32(v0, v1);
TEST_ASSERT_EQUAL_INT32(-123456789, v1);
TEST_ASSERT_EQUAL_INT32(v0, -123456789);
TEST_ASSERT_EQUAL_INT32(*p0, v1);
TEST_ASSERT_EQUAL_INT32(*p0, *p1);
TEST_ASSERT_EQUAL_INT32(*p0, -123456789);
}
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)
{
UNITY_UINT8 v0, v1;
UNITY_UINT8 *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)
{
UNITY_UINT16 v0, v1;
UNITY_UINT16 *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 testEqualUint32s(void)
{
UNITY_UINT32 v0, v1;
UNITY_UINT32 *p0, *p1;
v0 = 0x98760000;
v1 = 0x98760000;
p0 = &v0;
p1 = &v1;
TEST_ASSERT_EQUAL_UINT32(0x98760000, 0x98760000);
TEST_ASSERT_EQUAL_UINT32(v0, v1);
TEST_ASSERT_EQUAL_UINT32(0x98760000, v1);
TEST_ASSERT_EQUAL_UINT32(v0, 0x98760000);
TEST_ASSERT_EQUAL_UINT32(*p0, v1);
TEST_ASSERT_EQUAL_UINT32(*p0, *p1);
TEST_ASSERT_EQUAL_UINT32(*p0, 0x98760000);
}
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)
{
UNITY_UINT8 v0, v1;
UNITY_UINT8 *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)
{
UNITY_UINT8 v0, v1;
UNITY_UINT8 *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)
{
UNITY_UINT16 v0, v1;
UNITY_UINT16 *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)
{
UNITY_UINT32 v0, v1;
UNITY_UINT32 *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)
{
UNITY_UINT32 v0 = 0xFF55AA00;
UNITY_UINT32 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 testNotEqualBitHigh(void)
{
UNITY_UINT32 v0 = 0x7F55AA00;
EXPECT_ABORT_BEGIN
TEST_ASSERT_BIT_HIGH(31, v0);
VERIFY_FAILS_END
}
void testNotEqualBitLow(void)
{
UNITY_UINT32 v0 = 0xFF55AA00;
EXPECT_ABORT_BEGIN
TEST_ASSERT_BIT_LOW(30, v0);
VERIFY_FAILS_END
}
void testNotEqualBitsHigh(void)
{
UNITY_UINT32 v0 = 0xFF55AA00;
UNITY_UINT32 v1 = 0x55550000;
EXPECT_ABORT_BEGIN
TEST_ASSERT_BITS_HIGH(v0, v1);
VERIFY_FAILS_END
}
void testNotEqualBitsLow(void)
{
UNITY_UINT32 v0 = 0xFF55AA00;
UNITY_UINT32 v1 = 0x55550000;
EXPECT_ABORT_BEGIN
TEST_ASSERT_BITS_LOW(v0, v1);
VERIFY_FAILS_END
}
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 testIntsWithinDeltaAndCustomMessage(void)
{
TEST_ASSERT_INT_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
TEST_ASSERT_INT_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
TEST_ASSERT_INT_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
TEST_ASSERT_INT_WITHIN_MESSAGE(500, 50, -440, "Custom Message.");
TEST_ASSERT_INT_WITHIN_MESSAGE(2, -1, -1, "Custom Message.");
TEST_ASSERT_INT_WITHIN_MESSAGE(5, 1, -1, "Custom Message.");
TEST_ASSERT_INT_WITHIN_MESSAGE(5, -1, 1, "Custom Message.");
}
void testIntsNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_INT_WITHIN(5, 5000, 5006);
VERIFY_FAILS_END
}
void testIntsNotWithinDeltaAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_INT_WITHIN_MESSAGE(5, 5000, 5006, "Custom Message.");
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 testUIntsWithinDeltaAndCustomMessage(void)
{
TEST_ASSERT_UINT_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
TEST_ASSERT_UINT_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
TEST_ASSERT_UINT_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
}
void testUIntsNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT_WITHIN(1, 2147483647u, 2147483649u);
VERIFY_FAILS_END
}
void testUIntsNotWithinDeltaAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT_WITHIN_MESSAGE(1, 2147483647u, 2147483649u, "Custom Message.");
VERIFY_FAILS_END
}
void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassSmallFirst(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT_WITHIN(5, 1, -1);
VERIFY_FAILS_END
}
void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassSmallFirstAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT_WITHIN_MESSAGE(5, 1, -1, "Custom Message.");
VERIFY_FAILS_END
}
void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassBigFirst(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT_WITHIN(5, -1, 1);
VERIFY_FAILS_END
}
void testUIntsNotWithinDeltaEvenThoughASignedIntWouldPassBigFirstAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT_WITHIN_MESSAGE(5, -1, 1, "Custom Message.");
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 testHEX32sWithinDeltaAndCustomMessage(void)
{
TEST_ASSERT_HEX32_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
TEST_ASSERT_HEX32_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
TEST_ASSERT_HEX32_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
}
void testHEX32sNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_HEX32_WITHIN(1, 2147483647u, 2147483649u);
VERIFY_FAILS_END
}
void testHEX32sNotWithinDeltaAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_HEX32_WITHIN_MESSAGE(1, 2147483647u, 2147483649u, "Custom Message.");
VERIFY_FAILS_END
}
void testHEX32sNotWithinDeltaEvenThoughASignedIntWouldPass(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_HEX32_WITHIN(5, 1, -1);
VERIFY_FAILS_END
}
void testHEX32sNotWithinDeltaEvenThoughASignedIntWouldPassAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_HEX32_WITHIN_MESSAGE(5, 1, -1, "Custom Message.");
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 testHEX16sWithinDeltaAndCustomMessage(void)
{
TEST_ASSERT_HEX16_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
TEST_ASSERT_HEX16_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
TEST_ASSERT_HEX16_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
}
void testHEX16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void)
{
TEST_ASSERT_HEX16_WITHIN(5, 0x54321, 0x44321);
}
void testHEX16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void)
{
TEST_ASSERT_HEX16_WITHIN_MESSAGE(5, 0x54321, 0x44321, "Custom Message.");
}
void testHEX16sNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_HEX16_WITHIN(2, 65535, 0);
VERIFY_FAILS_END
}
void testHEX16sNotWithinDeltaAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_HEX16_WITHIN_MESSAGE(2, 65535, 0, "Custom Message.");
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 testHEX8sWithinDeltaAndCustomMessage(void)
{
TEST_ASSERT_HEX8_WITHIN_MESSAGE(1, 254, 255, "Custom Message.");
TEST_ASSERT_HEX8_WITHIN_MESSAGE(5, 251, 255, "Custom Message.");
TEST_ASSERT_HEX8_WITHIN_MESSAGE(5, 1, 4, "Custom Message.");
}
void testHEX8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)
{
TEST_ASSERT_HEX8_WITHIN(5, 0x123, 0xF23);
}
void testHEX8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void)
{
TEST_ASSERT_HEX8_WITHIN_MESSAGE(5, 0x123, 0xF23, "Custom Message.");
}
void testHEX8sNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_HEX8_WITHIN(2, 255, 0);
VERIFY_FAILS_END
}
void testHEX8sNotWithinDeltaAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_HEX8_WITHIN_MESSAGE(2, 255, 0, "Custom Message.");
VERIFY_FAILS_END
}
//-----------------
void testUINT32sWithinDelta(void)
{
TEST_ASSERT_UINT32_WITHIN(1, 5000, 5001);
TEST_ASSERT_UINT32_WITHIN(5, 5000, 4996);
TEST_ASSERT_UINT32_WITHIN(5, 5000, 5005);
}
void testUINT32sWithinDeltaAndCustomMessage(void)
{
TEST_ASSERT_UINT32_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
TEST_ASSERT_UINT32_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
TEST_ASSERT_UINT32_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
}
void testUINT32sNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT32_WITHIN(1, 2147483647u, 2147483649u);
VERIFY_FAILS_END
}
void testUINT32sNotWithinDeltaAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT32_WITHIN_MESSAGE(1, 2147483647u, 2147483649u, "Custom Message.");
VERIFY_FAILS_END
}
void testUINT32sNotWithinDeltaEvenThoughASignedIntWouldPass(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT32_WITHIN(5, 1, -1);
VERIFY_FAILS_END
}
void testUINT32sNotWithinDeltaEvenThoughASignedIntWouldPassAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT32_WITHIN_MESSAGE(5, 1, -1, "Custom Message.");
VERIFY_FAILS_END
}
void testUINT16sWithinDelta(void)
{
TEST_ASSERT_UINT16_WITHIN(1, 5000, 5001);
TEST_ASSERT_UINT16_WITHIN(5, 5000, 4996);
TEST_ASSERT_UINT16_WITHIN(5, 5000, 5005);
}
void testUINT16sWithinDeltaAndCustomMessage(void)
{
TEST_ASSERT_UINT16_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
TEST_ASSERT_UINT16_WITHIN_MESSAGE(5, 5000, 4996, "Custom Message.");
TEST_ASSERT_UINT16_WITHIN_MESSAGE(5, 5000, 5005, "Custom Message.");
}
void testUINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void)
{
TEST_ASSERT_UINT16_WITHIN(5, 0x54321, 0x44321);
}
void testUINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void)
{
TEST_ASSERT_UINT16_WITHIN_MESSAGE(5, 0x54321, 0x44321, "Custom Message.");
}
void testUINT16sNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT16_WITHIN(2, 65535, 0);
VERIFY_FAILS_END
}
void testUINT16sNotWithinDeltaAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT16_WITHIN_MESSAGE(2, 65535, 0, "Custom Message.");
VERIFY_FAILS_END
}
void testUINT8sWithinDelta(void)
{
TEST_ASSERT_UINT8_WITHIN(1, 254, 255);
TEST_ASSERT_UINT8_WITHIN(5, 251, 255);
TEST_ASSERT_UINT8_WITHIN(5, 1, 4);
}
void testUINT8sWithinDeltaAndCustomMessage(void)
{
TEST_ASSERT_UINT8_WITHIN_MESSAGE(1, 254, 255, "Custom Message.");
TEST_ASSERT_UINT8_WITHIN_MESSAGE(5, 251, 255, "Custom Message.");
TEST_ASSERT_UINT8_WITHIN_MESSAGE(5, 1, 4, "Custom Message.");
}
void testUINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)
{
TEST_ASSERT_UINT8_WITHIN(5, 0x123, 0xF23);
}
void testUINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void)
{
TEST_ASSERT_UINT8_WITHIN_MESSAGE(5, 0x123, 0xF23, "Custom Message.");
}
void testUINT8sNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT8_WITHIN(2, 255, 0);
VERIFY_FAILS_END
}
void testUINT8sNotWithinDeltaAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT8_WITHIN_MESSAGE(2, 255, 0, "Custom Message.");
VERIFY_FAILS_END
}
void testINT32sWithinDelta(void)
{
TEST_ASSERT_INT32_WITHIN(1, 5000, 5001);
TEST_ASSERT_INT32_WITHIN(5, 1, -2);
TEST_ASSERT_INT32_WITHIN(5, -2, 1);
}
void testINT32sWithinDeltaAndCustomMessage(void)
{
TEST_ASSERT_INT32_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
}
void testINT32sNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_INT32_WITHIN(1, -3, 1);
VERIFY_FAILS_END
}
void testINT32sNotWithinDeltaAndDifferenceOverflows(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_INT32_WITHIN(1, -1, 0x7FFFFFFF);
VERIFY_FAILS_END
}
void testINT32sNotWithinDeltaAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_INT32_WITHIN_MESSAGE(1, -2, 1, "Custom Message.");
VERIFY_FAILS_END
}
void testINT16sWithinDelta(void)
{
TEST_ASSERT_INT16_WITHIN(1, 5000, 5001);
TEST_ASSERT_INT16_WITHIN(5, 2, -2);
TEST_ASSERT_INT16_WITHIN(5, -2, 2);
}
void testINT16sWithinDeltaAndCustomMessage(void)
{
TEST_ASSERT_INT16_WITHIN_MESSAGE(1, 5000, 5001, "Custom Message.");
}
void testINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void)
{
TEST_ASSERT_INT16_WITHIN(5, 0x54321, 0x44321);
}
void testINT16sWithinDeltaWhenThereAreDifferenceOutsideOf16BitsAndCustomMessage(void)
{
TEST_ASSERT_INT16_WITHIN_MESSAGE(5, 0x54321, 0x44321, "Custom Message.");
}
void testINT16sNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_INT16_WITHIN(2, 4, -2);
VERIFY_FAILS_END
}
void testINT16sNotWithinDeltaAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_INT16_WITHIN_MESSAGE(2, 3, 0, "Custom Message.");
VERIFY_FAILS_END
}
void testINT8sWithinDelta(void)
{
TEST_ASSERT_INT8_WITHIN(1, 127, 126);
TEST_ASSERT_INT8_WITHIN(5, -2, 2);
TEST_ASSERT_INT8_WITHIN(5, 2, -2);
}
void testINT8sWithinDeltaAndCustomMessage(void)
{
TEST_ASSERT_INT8_WITHIN_MESSAGE(5, 1, 4, "Custom Message.");
}
void testINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)
{
TEST_ASSERT_INT8_WITHIN(5, 0x123, 0xF23);
}
void testINT8sWithinDeltaWhenThereAreDifferenceOutsideOf8BitsAndCustomMessage(void)
{
TEST_ASSERT_INT8_WITHIN_MESSAGE(5, 0x123, 0xF23, "Custom Message.");
}
void testINT8sNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_INT8_WITHIN(2, -3, 0);
VERIFY_FAILS_END
}
void testINT8sNotWithinDeltaAndCustomMessage(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_INT8_WITHIN_MESSAGE(2, -4, 0, "Custom Message.");
VERIFY_FAILS_END
}
void testEqualStrings(void)
{
const char *testString = "foo";
TEST_ASSERT_EQUAL_STRING(testString, testString);
TEST_ASSERT_EQUAL_STRING_MESSAGE("foo", "foo", "foo isn't foo");
TEST_ASSERT_EQUAL_STRING("foo", testString);
TEST_ASSERT_EQUAL_STRING(testString, "foo");
TEST_ASSERT_EQUAL_STRING("", "");
}
void testEqualStringsLen(void)
{
const char *testString = "foobar";
TEST_ASSERT_EQUAL_STRING_LEN(testString, testString, strlen(testString));
TEST_ASSERT_EQUAL_STRING_LEN_MESSAGE("foobar", "foobaz", 5, "fooba isn't fooba");
TEST_ASSERT_EQUAL_STRING_LEN("foo", testString, 3);
TEST_ASSERT_EQUAL_STRING_LEN(testString, "foo", 3);
TEST_ASSERT_EQUAL_STRING_LEN("", "", 3);
}
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 testNotEqualStringLen1(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING_LEN("foobar", "foobaz", 6);
VERIFY_FAILS_END
}
void testNotEqualString2(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING("foo", "");
VERIFY_FAILS_END
}
void testNotEqualStringLen2(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING_LEN("foo", "", 3);
VERIFY_FAILS_END
}
void testNotEqualString3(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING("", "bar");
VERIFY_FAILS_END
}
void testNotEqualStringLen3(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING_LEN("", "bar", 3);
VERIFY_FAILS_END
}
void testNotEqualString4(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING("bar\r", "bar\n");
VERIFY_FAILS_END
}
void testNotEqualStringLen4(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING_LEN("ba\r\x16", "ba\r\n", 4);
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 testNotEqualStringLen_ExpectedStringIsNull(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING_LEN(NULL, "bar", 1);
VERIFY_FAILS_END
}
void testNotEqualString_ActualStringIsNull(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING("foo", NULL);
VERIFY_FAILS_END
}
void testNotEqualStringLen_ActualStringIsNull(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING_LEN("foo", NULL, 1);
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 testNotEqualStringArrayLengthZero(void)
{
const char *testStrings[] = {NULL};
const char **expStrings = NULL;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 0);
VERIFY_FAILS_END
}
void testEqualStringEachEqual(void)
{
const char *testStrings1[] = { "foo", "foo", "foo", "foo" };
const char *testStrings2[] = { "boo", "boo", "boo", "zoo" };
const char *testStrings3[] = { "", "", "", "" };
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings1, 4);
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings1, 1);
TEST_ASSERT_EACH_EQUAL_STRING("boo", testStrings2, 3);
TEST_ASSERT_EACH_EQUAL_STRING("", testStrings3, 4);
}
void testNotEqualStringEachEqual1(void)
{
const char *testStrings[] = { "foo", "foo", "foo", "moo" };
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
VERIFY_FAILS_END
}
void testNotEqualStringEachEqual2(void)
{
const char *testStrings[] = { "boo", "foo", "foo", "foo" };
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
VERIFY_FAILS_END
}
void testNotEqualStringEachEqual3(void)
{
const char *testStrings[] = { "foo", "foo", "foo", NULL };
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
VERIFY_FAILS_END
}
void testNotEqualStringEachEqual4(void)
{
const char *testStrings[] = { "foo", "foo", "woo", "foo" };
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_STRING("foo", testStrings, 4);
VERIFY_FAILS_END
}
void testNotEqualStringEachEqual5(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_STRING("foo", NULL, 1);
VERIFY_FAILS_END
}
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 testNotEqualMemoryLengthZero(void)
{
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_MEMORY(NULL, NULL, 0);
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);
TEST_ASSERT_EQUAL_INT_ARRAY(NULL, NULL, 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 testNotEqualIntArraysLengthZero(void)
{
UNITY_UINT32 p0[1] = {1};
UNITY_UINT32 p1[1] = {1};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 0);
VERIFY_FAILS_END
}
void testEqualIntEachEqual(void)
{
int p0[] = {1, 1, 1, 1};
int p1[] = {987, 987, 987, 987};
int p2[] = {-2, -2, -2, -3};
int p3[] = {1, 5, 600, 700};
TEST_ASSERT_EACH_EQUAL_INT(1, p0, 1);
TEST_ASSERT_EACH_EQUAL_INT(1, p0, 4);
TEST_ASSERT_EACH_EQUAL_INT(987, p1, 4);
TEST_ASSERT_EACH_EQUAL_INT(-2, p2, 3);
TEST_ASSERT_EACH_EQUAL_INT(1, p3, 1);
}
void testNotEqualIntEachEqualNullActual(void)
{
int* p1 = NULL;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_INT(1, p1, 4);
VERIFY_FAILS_END
}
void testNotEqualIntEachEqual1(void)
{
int p0[] = {1, 1, 1, -2};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_INT(1, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualIntEachEqual2(void)
{
int p0[] = {-5, -5, -1, -5};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_INT(-5, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualIntEachEqual3(void)
{
int p0[] = {1, 88, 88, 88};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_INT(88, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualEachEqualLengthZero(void)
{
UNITY_UINT32 p0[1] = {1};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_INT(0, p0, 0);
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 testEqualPtrEachEqual(void)
{
char A = 1;
char B = 2;
char C = 3;
char* p0[] = {&A, &A, &A};
char* p1[] = {&A, &B, &C, &A};
char* p2[] = {&B, &B};
char* p3[] = {&C};
TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 1);
TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 3);
TEST_ASSERT_EACH_EQUAL_PTR(&A, p1, 1);
TEST_ASSERT_EACH_EQUAL_PTR(&B, p2, 2);
TEST_ASSERT_EACH_EQUAL_PTR(&C, p3, 1);
}
void testNotEqualPtrEachEqualNullExpected(void)
{
char A = 1;
char B = 1;
char* p0[] = {&A, &B};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 2);
VERIFY_FAILS_END
}
void testNotEqualPtrEachEqualNullActual(void)
{
char A = 1;
char** p0 = NULL;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 2);
VERIFY_FAILS_END
}
void testNotEqualPtrEachEqual1(void)
{
char A = 1;
char B = 1;
char* p0[] = {&A, &A, &A, &B};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_PTR(&A, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualPtrEachEqual2(void)
{
char A = 1;
char B = 1;
char* p0[] = {&B, &B, &A, &B};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_PTR(&B, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualPtrEachEqual3(void)
{
char A = 1;
char B = 1;
char* p0[] = {&A, &B, &B, &B};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_PTR(&B, p0, 4);
VERIFY_FAILS_END
}
void testEqualInt8Arrays(void)
{
UNITY_INT8 p0[] = {1, 8, 117, -2};
UNITY_INT8 p1[] = {1, 8, 117, -2};
UNITY_INT8 p2[] = {1, 8, 117, 2};
UNITY_INT8 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)
{
UNITY_INT8 p0[] = {1, 8, 36, -2};
UNITY_INT8 p1[] = {1, 8, 36, 2};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_INT8_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testEqualInt8EachEqual(void)
{
UNITY_INT8 p0[] = {1, 1, 1, 1};
UNITY_INT8 p1[] = {117, 117, 117, -2};
UNITY_INT8 p2[] = {-1, -1, 117, 2};
UNITY_INT8 p3[] = {1, 50, 60, 70};
TEST_ASSERT_EACH_EQUAL_INT8(1, p0, 1);
TEST_ASSERT_EACH_EQUAL_INT8(1, p0, 4);
TEST_ASSERT_EACH_EQUAL_INT8(117, p1, 3);
TEST_ASSERT_EACH_EQUAL_INT8(-1, p2, 2);
TEST_ASSERT_EACH_EQUAL_INT8(1, p3, 1);
}
void testNotEqualInt8EachEqual(void)
{
UNITY_INT8 p0[] = {1, 8, 36, -2};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_INT8(1, p0, 2);
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 testEqualUIntEachEqual(void)
{
unsigned int p0[] = {1, 1, 1, 1};
unsigned int p1[] = {65132u, 65132u, 65132u, 65132u};
unsigned int p2[] = {8, 8, 987, 2};
unsigned int p3[] = {1, 500, 600, 700};
TEST_ASSERT_EACH_EQUAL_UINT(1, p0, 1);
TEST_ASSERT_EACH_EQUAL_UINT(1, p0, 4);
TEST_ASSERT_EACH_EQUAL_UINT(65132u, p1, 4);
TEST_ASSERT_EACH_EQUAL_UINT(8, p2, 2);
TEST_ASSERT_EACH_EQUAL_UINT(1, p3, 1);
}
void testNotEqualUIntEachEqual1(void)
{
unsigned int p0[] = {1, 65132u, 65132u, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT(65132u, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualUIntEachEqual2(void)
{
unsigned int p0[] = {987, 8, 987, 987};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT(987, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualUIntEachEqual3(void)
{
unsigned int p0[] = {1, 1, 1, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT(1, p0, 4);
VERIFY_FAILS_END
}
void testEqualInt16Arrays(void)
{
UNITY_INT16 p0[] = {1, 8, 117, 3};
UNITY_INT16 p1[] = {1, 8, 117, 3};
UNITY_INT16 p2[] = {1, 8, 117, 2};
UNITY_INT16 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)
{
UNITY_INT16 p0[] = {1, 8, 127, 3};
UNITY_INT16 p1[] = {1, 8, 127, 2};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_INT16_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testEqualInt16EachEqual(void)
{
UNITY_INT16 p0[] = {1, 1, 1, 1};
UNITY_INT16 p1[] = {32111, 32111, 32111, 3};
UNITY_INT16 p2[] = {-1, -1, -1, 2};
UNITY_INT16 p3[] = {1, 50, 60, 70};
TEST_ASSERT_EACH_EQUAL_INT16(1, p0, 1);
TEST_ASSERT_EACH_EQUAL_INT16(1, p0, 4);
TEST_ASSERT_EACH_EQUAL_INT16(32111, p1, 3);
TEST_ASSERT_EACH_EQUAL_INT16(-1, p2, 3);
TEST_ASSERT_EACH_EQUAL_INT16(1, p3, 1);
}
void testNotEqualInt16EachEqual(void)
{
UNITY_INT16 p0[] = {127, 127, 127, 3};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_INT16(127, p0, 4);
VERIFY_FAILS_END
}
void testEqualInt32Arrays(void)
{
UNITY_INT32 p0[] = {1, 8, 117, 3};
UNITY_INT32 p1[] = {1, 8, 117, 3};
UNITY_INT32 p2[] = {1, 8, 117, 2};
UNITY_INT32 p3[] = {1, 50, 60, 70};
TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p0, 1);
TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p0, 4);
TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p1, 4);
TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p2, 3);
TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p3, 1);
}
void testNotEqualInt32Arrays(void)
{
UNITY_INT32 p0[] = {1, 8, 127, 3};
UNITY_INT32 p1[] = {1, 8, 127, 2};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_INT32_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testEqualInt32EachEqual(void)
{
UNITY_INT32 p0[] = {8, 8, 8, 8};
UNITY_INT32 p1[] = {65537, 65537, 65537, 65537};
UNITY_INT32 p2[] = {-3, -3, -3, 2};
UNITY_INT32 p3[] = {1, 50, 60, 70};
TEST_ASSERT_EACH_EQUAL_INT32(8, p0, 1);
TEST_ASSERT_EACH_EQUAL_INT32(8, p0, 4);
TEST_ASSERT_EACH_EQUAL_INT32(65537, p1, 4);
TEST_ASSERT_EACH_EQUAL_INT32(-3, p2, 3);
TEST_ASSERT_EACH_EQUAL_INT32(1, p3, 1);
}
void testNotEqualInt32EachEqual(void)
{
UNITY_INT32 p0[] = {127, 8, 127, 127};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_INT32(127, p0, 4);
VERIFY_FAILS_END
}
void testEqualUINT8Arrays(void)
{
UNITY_UINT8 p0[] = {1, 8, 100, 127};
UNITY_UINT8 p1[] = {1, 8, 100, 127};
UNITY_UINT8 p2[] = {1, 8, 100, 2};
UNITY_UINT8 p3[] = {1, 50, 60, 70};
TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p0, 1);
TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p0, 4);
TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p1, 4);
TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p2, 3);
TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p3, 1);
}
void testNotEqualUINT8Arrays1(void)
{
unsigned char p0[] = {1, 8, 100, 127u};
unsigned char p1[] = {1, 8, 100, 255u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testNotEqualUINT8Arrays2(void)
{
unsigned char p0[] = {1, 8, 100, 127u};
unsigned char p1[] = {1, 8, 100, 255u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT8_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testNotEqualUINT8Arrays3(void)
{
unsigned char p0[] = {1, 8, 100, 127u};
unsigned char p1[] = {1, 8, 100, 255u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT8_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 testEqualUINT32Arrays(void)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {1, 8, 987, 65132u};
UNITY_UINT32 p2[] = {1, 8, 987, 2};
UNITY_UINT32 p3[] = {1, 500, 600, 700};
TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p0, 1);
TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p0, 4);
TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4);
TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p2, 3);
TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p3, 1);
}
void testNotEqualUINT32Arrays1(void)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {1, 8, 987, 65131u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testNotEqualUINT32Arrays2(void)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {2, 8, 987, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testNotEqualUINT32Arrays3(void)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {1, 8, 986, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT32_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testEqualHEXArrays(void)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {1, 8, 987, 65132u};
UNITY_UINT32 p2[] = {1, 8, 987, 2};
UNITY_UINT32 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)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {1, 8, 987, 65131u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testNotEqualHEXArrays2(void)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {2, 8, 987, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testNotEqualHEXArrays3(void)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {1, 8, 986, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testEqualHEX32Arrays(void)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {1, 8, 987, 65132u};
UNITY_UINT32 p2[] = {1, 8, 987, 2};
UNITY_UINT32 p3[] = {1, 500, 600, 700};
TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p0, 1);
TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p0, 4);
TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4);
TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p2, 3);
TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p3, 1);
}
void testNotEqualHEX32Arrays1(void)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {1, 8, 987, 65131u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testNotEqualHEX32Arrays2(void)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {2, 8, 987, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX32_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
}
void testNotEqualHEX32Arrays3(void)
{
UNITY_UINT32 p0[] = {1, 8, 987, 65132u};
UNITY_UINT32 p1[] = {1, 8, 986, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX32_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 char p0[] = {1, 8, 254u, 123};
unsigned char p1[] = {1, 8, 254u, 123};
unsigned char p2[] = {1, 8, 254u, 2};
unsigned char 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 testEqualUINT8EachEqual(void)
{
UNITY_UINT8 p0[] = {127u, 127u, 127u, 127u};
UNITY_UINT8 p1[] = {1u, 1u, 1u, 1u};
UNITY_UINT8 p2[] = {128u, 128u, 128u, 2u};
UNITY_UINT8 p3[] = {1u, 50u, 60u, 70u};
TEST_ASSERT_EACH_EQUAL_UINT8(127u, p0, 1);
TEST_ASSERT_EACH_EQUAL_UINT8(127u, p0, 4);
TEST_ASSERT_EACH_EQUAL_UINT8(1u, p1, 4);
TEST_ASSERT_EACH_EQUAL_UINT8(128u, p2, 3);
TEST_ASSERT_EACH_EQUAL_UINT8(1u, p3, 1);
}
void testNotEqualUINT8EachEqual1(void)
{
unsigned char p0[] = {127u, 127u, 128u, 127u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT8(127u, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualUINT8EachEqual2(void)
{
unsigned char p0[] = {1, 1, 1, 127u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT8(1, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualUINT8EachEqual3(void)
{
unsigned char p0[] = {54u, 55u, 55u, 55u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT8(55u, p0, 4);
VERIFY_FAILS_END
}
void testEqualUINT16EachEqual(void)
{
unsigned short p0[] = {65132u, 65132u, 65132u, 65132u};
unsigned short p1[] = {987, 987, 987, 987};
unsigned short p2[] = {1, 1, 1, 2};
unsigned short p3[] = {1, 500, 600, 700};
TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 1);
TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
TEST_ASSERT_EACH_EQUAL_UINT16(987, p1, 4);
TEST_ASSERT_EACH_EQUAL_UINT16(1, p2, 3);
TEST_ASSERT_EACH_EQUAL_UINT16(1, p3, 1);
}
void testNotEqualUINT16EachEqual1(void)
{
unsigned short p0[] = {1, 65132u, 65132u, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualUINT16EachEqual2(void)
{
unsigned short p0[] = {65132u, 65132u, 987, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualUINT16EachEqual3(void)
{
unsigned short p0[] = {65132u, 65132u, 65132u, 65133u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT16(65132u, p0, 4);
VERIFY_FAILS_END
}
void testEqualUINT32EachEqual(void)
{
UNITY_UINT32 p0[] = {65132u, 65132u, 65132u, 65132u};
UNITY_UINT32 p1[] = {987, 987, 987, 987};
UNITY_UINT32 p2[] = {8, 8, 8, 2};
UNITY_UINT32 p3[] = {1, 500, 600, 700};
TEST_ASSERT_EACH_EQUAL_UINT32(65132u, p0, 1);
TEST_ASSERT_EACH_EQUAL_UINT32(65132u, p0, 4);
TEST_ASSERT_EACH_EQUAL_UINT32(987, p1, 4);
TEST_ASSERT_EACH_EQUAL_UINT32(8, p2, 3);
TEST_ASSERT_EACH_EQUAL_UINT32(1, p3, 1);
}
void testNotEqualUINT32EachEqual1(void)
{
UNITY_UINT32 p0[] = {65132u, 65132u, 987, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT32(65132u, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualUINT32EachEqual2(void)
{
UNITY_UINT32 p0[] = {1, 987, 987, 987};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT32(987, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualUINT32EachEqual3(void)
{
UNITY_UINT32 p0[] = {1, 1, 1, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_UINT32(1, p0, 4);
VERIFY_FAILS_END
}
void testEqualHEXEachEqual(void)
{
UNITY_UINT32 p0[] = {65132u, 65132u, 65132u, 65132u};
UNITY_UINT32 p1[] = {987, 987, 987, 987};
UNITY_UINT32 p2[] = {8, 8, 8, 2};
UNITY_UINT32 p3[] = {1, 500, 600, 700};
TEST_ASSERT_EACH_EQUAL_HEX(65132u, p0, 1);
TEST_ASSERT_EACH_EQUAL_HEX(65132u, p0, 4);
TEST_ASSERT_EACH_EQUAL_HEX(987, p1, 4);
TEST_ASSERT_EACH_EQUAL_HEX(8, p2, 3);
TEST_ASSERT_EACH_EQUAL_HEX(1, p3, 1);
}
void testNotEqualHEXEachEqual1(void)
{
UNITY_UINT32 p0[] = {1, 65132u, 65132u, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualHEXEachEqual2(void)
{
UNITY_UINT32 p0[] = {987, 987, 987, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX32(987, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualHEXEachEqual3(void)
{
UNITY_UINT32 p0[] = {8, 8, 987, 8};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX(8, p0, 4);
VERIFY_FAILS_END
}
void testEqualHEX32EachEqual(void)
{
UNITY_UINT32 p0[] = {65132u, 65132u, 65132u, 65132u};
UNITY_UINT32 p1[] = {987, 987, 987, 987};
UNITY_UINT32 p2[] = {8, 8, 8, 2};
UNITY_UINT32 p3[] = {1, 500, 600, 700};
TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 1);
TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 4);
TEST_ASSERT_EACH_EQUAL_HEX32(987, p1, 4);
TEST_ASSERT_EACH_EQUAL_HEX32(8, p2, 3);
TEST_ASSERT_EACH_EQUAL_HEX32(1, p3, 1);
}
void testNotEqualHEX32EachEqual1(void)
{
UNITY_UINT32 p0[] = {65132u, 8, 65132u, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX32(65132u, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualHEX32EachEqual2(void)
{
UNITY_UINT32 p0[] = {1, 987, 987, 987};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX32(987, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualHEX32EachEqual3(void)
{
UNITY_UINT32 p0[] = {8, 8, 8, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX32(8, p0, 4);
VERIFY_FAILS_END
}
void testEqualHEX16EachEqual(void)
{
UNITY_UINT16 p0[] = {65132u, 65132u, 65132u, 65132u};
UNITY_UINT16 p1[] = {987, 987, 987, 987};
UNITY_UINT16 p2[] = {8, 8, 8, 2};
UNITY_UINT16 p3[] = {1, 500, 600, 700};
TEST_ASSERT_EACH_EQUAL_HEX16(65132u, p0, 1);
TEST_ASSERT_EACH_EQUAL_HEX16(65132u, p0, 4);
TEST_ASSERT_EACH_EQUAL_HEX16(987, p1, 4);
TEST_ASSERT_EACH_EQUAL_HEX16(8, p2, 3);
TEST_ASSERT_EACH_EQUAL_HEX16(1, p3, 1);
}
void testNotEqualHEX16EachEqual1(void)
{
unsigned short p0[] = {65132u, 65132u, 987, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX16(65132u, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualHEX16EachEqual2(void)
{
unsigned short p0[] = {1, 987, 987, 987};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX16(987, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualHEX16EachEqual3(void)
{
unsigned short p0[] = {8, 8, 8, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX16(8, p0, 4);
VERIFY_FAILS_END
}
void testEqualHEX8EachEqual(void)
{
unsigned char p0[] = {254u, 254u, 254u, 254u};
unsigned char p1[] = {123, 123, 123, 123};
unsigned char p2[] = {8, 8, 8, 2};
unsigned char p3[] = {1, 23, 25, 26};
TEST_ASSERT_EACH_EQUAL_HEX8(254u, p0, 1);
TEST_ASSERT_EACH_EQUAL_HEX8(254u, p0, 4);
TEST_ASSERT_EACH_EQUAL_HEX8(123, p1, 4);
TEST_ASSERT_EACH_EQUAL_HEX8(8, p2, 3);
TEST_ASSERT_EACH_EQUAL_HEX8(1, p3, 1);
}
void testNotEqualHEX8EachEqual1(void)
{
unsigned char p0[] = {253u, 253u, 254u, 253u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX8(253u, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualHEX8EachEqual2(void)
{
unsigned char p0[] = {254u, 254u, 254u, 253u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX8(254u, p0, 4);
VERIFY_FAILS_END
}
void testNotEqualHEX8EachEqual3(void)
{
unsigned char p0[] = {1, 8, 8, 8};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_HEX8(8, p0, 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, sizeof(int), 1);
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p0, sizeof(int), 4);
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 4);
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p2, sizeof(int), 3);
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p3, sizeof(int), 1);
}
void testNotEqualMemoryArraysExpectedNull(void)
{
int* p0 = NULL;
int p1[] = {1, 8, 987, 2};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_MEMORY_ARRAY(p0, p1, sizeof(int), 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, sizeof(int), 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, sizeof(int), 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, sizeof(int), 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, sizeof(int), 4);
VERIFY_FAILS_END
}
void testEqualMemoryEachEqual(void)
{
int p0[] = {1, 8, 987, -2};
int p1[] = {1, 8, 987, -2, 1, 8, 987, -2};
int p2[] = {8, 8, 8, 2};
int p3[] = {8, 500, 600, 700};
int v = 8;
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p0, sizeof(int)*4, 1);
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 2);
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 1);
TEST_ASSERT_EACH_EQUAL_MEMORY(&v, p2, sizeof(int), 3);
TEST_ASSERT_EACH_EQUAL_MEMORY(&v, p3, sizeof(int), 1);
}
void testNotEqualMemoryEachEqualExpectedNull(void)
{
int* p0 = NULL;
int p1[] = {1, 8, 987, 2};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int), 4);
VERIFY_FAILS_END
}
void testNotEqualMemoryEachEqualActualNull(void)
{
int p0[] = {1, 8, 987, -2};
int* p1 = NULL;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int), 4);
VERIFY_FAILS_END
}
void testNotEqualMemoryEachEqual1(void)
{
int p0[] = {1, 8, 987, -2};
int p1[] = {9, 8, 987, -2, 1, 8, 987, -2, 1, 8, 987, -2};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 3);
VERIFY_FAILS_END
}
void testNotEqualMemoryEachEqual2(void)
{
int p0[] = {1, 8, 987, -2};
int p1[] = {1, 8, 987, -2, 1, 8, 987, -2, 1, 8, 987, 9};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 3);
VERIFY_FAILS_END
}
void testNotEqualMemoryEachEqual3(void)
{
int p0[] = {1, 8, 987, -2};
int p1[] = {1, 8, 987, -2, 1, 9, 987, -2, 1, 8, 987, -2};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_MEMORY(p0, p1, sizeof(int)*4, 3);
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();
}
// Tricky series of macros to set USING_OUTPUT_SPY
#define USING_SPY_AS(a) EXPAND_AND_USE_2ND(ASSIGN_VALUE(a), 0)
#define ASSIGN_VALUE(a) VAL_##a
#define VAL_putcharSpy 0, 1
#define EXPAND_AND_USE_2ND(a, b) SECOND_PARAM(a, b, throwaway)
#define SECOND_PARAM(a, b, ...) b
#if USING_SPY_AS(UNITY_OUTPUT_CHAR)
#define USING_OUTPUT_SPY // true only if UNITY_OUTPUT_CHAR = putcharSpy
#endif
#ifdef USING_OUTPUT_SPY
#include <stdio.h>
#define SPY_BUFFER_MAX 40
static char putcharSpyBuffer[SPY_BUFFER_MAX];
#endif
static int indexSpyBuffer;
static int putcharSpyEnabled;
void startPutcharSpy(void) {indexSpyBuffer = 0; putcharSpyEnabled = 1;}
void endPutcharSpy(void) {putcharSpyEnabled = 0;}
char* getBufferPutcharSpy(void)
{
#ifdef USING_OUTPUT_SPY
putcharSpyBuffer[indexSpyBuffer] = '\0';
return putcharSpyBuffer;
#else
return NULL;
#endif
}
void putcharSpy(int c)
{
#ifdef USING_OUTPUT_SPY
if (putcharSpyEnabled)
{
if (indexSpyBuffer < SPY_BUFFER_MAX - 1)
putcharSpyBuffer[indexSpyBuffer++] = (char)c;
} else
putchar((char)c);
#endif
}
void testFailureCountIncrementsAndIsReturnedAtEnd(void)
{
UNITY_UINT savedFailures = Unity.TestFailures;
Unity.CurrentTestFailed = 1;
startPutcharSpy(); // Suppress output
UnityConcludeTest();
endPutcharSpy();
TEST_ASSERT_EQUAL(savedFailures + 1, Unity.TestFailures);
startPutcharSpy(); // Suppress output
int failures = UnityEnd();
Unity.TestFailures--;
endPutcharSpy();
TEST_ASSERT_EQUAL(savedFailures + 1, failures);
}
void testCstringsEscapeSequence(void)
{
#ifndef USING_OUTPUT_SPY
TEST_IGNORE();
#else
startPutcharSpy();
UnityPrint("\x16\x10");
endPutcharSpy();
TEST_ASSERT_EQUAL_STRING("\\x16\\x10", getBufferPutcharSpy());
#endif
}
void testHexPrintsUpToMaxNumberOfNibbles(void)
{
#ifndef USING_OUTPUT_SPY
TEST_IGNORE();
#else
startPutcharSpy();
UnityPrintNumberHex(0xBEE, 21);
endPutcharSpy();
TEST_ASSERT_EQUAL_INT(sizeof(UNITY_INT)*2, strlen(getBufferPutcharSpy()));
#endif
}
#define TEST_ASSERT_EQUAL_PRINT_NUMBERS(expected, actual) { \
startPutcharSpy(); UnityPrintNumber((actual)); endPutcharSpy(); \
TEST_ASSERT_EQUAL_STRING((expected), getBufferPutcharSpy()); \
}
#define TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS(expected, actual) { \
startPutcharSpy(); UnityPrintNumberUnsigned((actual)); endPutcharSpy(); \
TEST_ASSERT_EQUAL_STRING((expected), getBufferPutcharSpy()); \
}
void testPrintNumbers32(void)
{
#ifndef USING_OUTPUT_SPY
TEST_IGNORE_MESSAGE("Compile with '-D UNITY_OUTPUT_CHAR=putcharSpy' to enable print testing");
#else
TEST_ASSERT_EQUAL_PRINT_NUMBERS("0", 0);
TEST_ASSERT_EQUAL_PRINT_NUMBERS("1", 1);
TEST_ASSERT_EQUAL_PRINT_NUMBERS("-1", -1);
TEST_ASSERT_EQUAL_PRINT_NUMBERS("2000000000", 2000000000);
TEST_ASSERT_EQUAL_PRINT_NUMBERS("-2147483648", (UNITY_INT32)0x80000000);
TEST_ASSERT_EQUAL_PRINT_NUMBERS("-1", (UNITY_INT32)0xFFFFFFFF);
#endif
}
void testPrintNumbersUnsigned32(void)
{
#ifndef USING_OUTPUT_SPY
TEST_IGNORE();
#else
TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("0", 0);
TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("1", 1);
TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("1500000000", 1500000000);
TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("2147483648", (UNITY_UINT32)0x80000000);
TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("4294967295", (UNITY_UINT32)0xFFFFFFFF);
#endif
}
// ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES 64 BIT SUPPORT ==================
void testPrintNumbersInt64(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
#ifndef USING_OUTPUT_SPY
TEST_IGNORE();
#else
TEST_ASSERT_EQUAL_PRINT_NUMBERS("0", 0);
TEST_ASSERT_EQUAL_PRINT_NUMBERS("10000000000", 10000000000);
TEST_ASSERT_EQUAL_PRINT_NUMBERS("-9223372036854775808", (UNITY_INT)0x8000000000000000);
TEST_ASSERT_EQUAL_PRINT_NUMBERS("-1", (UNITY_INT)0xFFFFFFFFFFFFFFFF);
#endif
#endif
}
void testPrintNumbersUInt64(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
#ifndef USING_OUTPUT_SPY
TEST_IGNORE();
#else
TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("0", 0);
TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("70000000000", 70000000000);
TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("9223372036854775808", (UNITY_UINT)0x8000000000000000);
TEST_ASSERT_EQUAL_PRINT_UNSIGNED_NUMBERS("18446744073709551615", (UNITY_UINT)0xFFFFFFFFFFFFFFFF);
#endif
#endif
}
void testEqualHex64s(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_UINT64 v0, v1;
UNITY_UINT64 *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 testEqualUint64s(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_UINT64 v0, v1;
UNITY_UINT64 *p0, *p1;
v0 = 0x9876543201234567;
v1 = 0x9876543201234567;
p0 = &v0;
p1 = &v1;
TEST_ASSERT_EQUAL_UINT64(0x9876543201234567, 0x9876543201234567);
TEST_ASSERT_EQUAL_UINT64(v0, v1);
TEST_ASSERT_EQUAL_UINT64(0x9876543201234567, v1);
TEST_ASSERT_EQUAL_UINT64(v0, 0x9876543201234567);
TEST_ASSERT_EQUAL_UINT64(*p0, v1);
TEST_ASSERT_EQUAL_UINT64(*p0, *p1);
TEST_ASSERT_EQUAL_UINT64(*p0, 0x9876543201234567);
#endif
}
void testEqualInt64s(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_INT64 v0, v1;
UNITY_INT64 *p0, *p1;
v0 = (UNITY_INT64)0x9876543201234567;
v1 = (UNITY_INT64)0x9876543201234567;
p0 = &v0;
p1 = &v1;
TEST_ASSERT_EQUAL_INT64(0x9876543201234567, 0x9876543201234567);
TEST_ASSERT_EQUAL_INT64(v0, v1);
TEST_ASSERT_EQUAL_INT64(0x9876543201234567, v1);
TEST_ASSERT_EQUAL_INT64(v0, 0x9876543201234567);
TEST_ASSERT_EQUAL_INT64(*p0, v1);
TEST_ASSERT_EQUAL_INT64(*p0, *p1);
TEST_ASSERT_EQUAL_INT64(*p0, 0x9876543201234567);
#endif
}
void testNotEqualHex64s(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_UINT64 v0, v1;
v0 = 9000000000;
v1 = 9100000000;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX64(v0, v1);
VERIFY_FAILS_END
#endif
}
void testNotEqualUint64s(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_UINT64 v0, v1;
v0 = 9000000000;
v1 = 9100000000;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT64(v0, v1);
VERIFY_FAILS_END
#endif
}
void testNotEqualInt64s(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_INT64 v0, v1;
v0 = -9000000000;
v1 = 9100000000;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_INT64(v0, v1);
VERIFY_FAILS_END
#endif
}
void testNotEqualHex64sIfSigned(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_INT64 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 testUINT64sWithinDelta(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
TEST_ASSERT_UINT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF,0x7FFFFFFFFFFFFFFE);
TEST_ASSERT_UINT64_WITHIN(5, 5000, 4996);
TEST_ASSERT_UINT64_WITHIN(5, 5000, 5005);
#endif
}
void testUINT64sNotWithinDelta(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFC);
VERIFY_FAILS_END
#endif
}
void testUINT64sNotWithinDeltaEvenThoughASignedIntWouldPass(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_UINT64_WITHIN(5, 1, -1);
VERIFY_FAILS_END
#endif
}
void testINT64sWithinDelta(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
TEST_ASSERT_INT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF,0x7FFFFFFFFFFFFFFE);
TEST_ASSERT_INT64_WITHIN(5, 5000, 4996);
TEST_ASSERT_INT64_WITHIN(5, 5000, 5005);
#endif
}
void testINT64sNotWithinDelta(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_INT64_WITHIN(1, 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFC);
VERIFY_FAILS_END
#endif
}
void testINT64sNotWithinDeltaAndDifferenceOverflows(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_INT64_WITHIN(1, 0x8000000000000000, 0x7FFFFFFFFFFFFFFF);
VERIFY_FAILS_END
#endif
}
void testEqualHEX64Arrays(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_UINT64 p0[] = {1, 8, 987, 65132u};
UNITY_UINT64 p1[] = {1, 8, 987, 65132u};
UNITY_UINT64 p2[] = {1, 8, 987, 2};
UNITY_UINT64 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 testEqualUint64Arrays(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_UINT64 p0[] = {1, 8, 987, 65132u};
UNITY_UINT64 p1[] = {1, 8, 987, 65132u};
UNITY_UINT64 p2[] = {1, 8, 987, 2};
UNITY_UINT64 p3[] = {1, 500, 600, 700};
TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p0, 1);
TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p0, 4);
TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p1, 4);
TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p2, 3);
TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p3, 1);
#endif
}
void testEqualInt64Arrays(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_INT64 p0[] = {1, 8, 987, -65132};
UNITY_INT64 p1[] = {1, 8, 987, -65132};
UNITY_INT64 p2[] = {1, 8, 987, -2};
UNITY_INT64 p3[] = {1, 500, 600, 700};
TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p0, 1);
TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p0, 4);
TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p1, 4);
TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p2, 3);
TEST_ASSERT_EQUAL_INT64_ARRAY(p0, p3, 1);
#endif
}
void testNotEqualHEX64Arrays1(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_UINT64 p0[] = {1, 8, 987, 65132u};
UNITY_UINT64 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
UNITY_UINT64 p0[] = {1, 8, 987, 65132u};
UNITY_UINT64 p1[] = {2, 8, 987, 65132u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX64_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualUint64Arrays(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_UINT64 p0[] = {1, 8, 987, 65132u};
UNITY_UINT64 p1[] = {1, 8, 987, 65131u};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_UINT64_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualInt64Arrays(void)
{
#ifndef UNITY_SUPPORT_64
TEST_IGNORE();
#else
UNITY_INT64 p0[] = {1, 8, 987, -65132};
UNITY_INT64 p1[] = {1, 8, 987, -65131};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_INT64_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 testFloatsNotEqualActualNaN(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_FLOAT(85.963f, 0.0f / f_zero);
VERIFY_FAILS_END
#endif
}
void testFloatsNotEqualExpectedNaN(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 85.963f);
VERIFY_FAILS_END
#endif
}
void testFloatsEqualBothNaN(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 0.0f / f_zero);
#endif
}
void testFloatsNotEqualInfNaN(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 0.0f / f_zero);
VERIFY_FAILS_END
#endif
}
void testFloatsNotEqualNaNInf(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 1.0f / f_zero);
VERIFY_FAILS_END
#endif
}
void testFloatsNotEqualActualInf(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_FLOAT(321.642f, 1.0f / f_zero);
VERIFY_FAILS_END
#endif
}
void testFloatsNotEqualExpectedInf(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 321.642f);
VERIFY_FAILS_END
#endif
}
void testFloatsEqualBothInf(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 1.0f / f_zero);
#endif
}
void testFloatsNotEqualPlusMinusInf(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, -1.0f / f_zero);
VERIFY_FAILS_END
#endif
}
void testFloatIsPosInf1(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
TEST_ASSERT_FLOAT_IS_INF(2.0f / f_zero);
#endif
}
void testFloatIsPosInf2(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_NOT_INF(2.0f / f_zero);
VERIFY_FAILS_END
#endif
}
void testFloatIsNegInf1(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
TEST_ASSERT_FLOAT_IS_NEG_INF(-3.0f / f_zero);
#endif
}
void testFloatIsNegInf2(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(-3.0f / f_zero);
VERIFY_FAILS_END
#endif
}
void testFloatIsNotPosInf1(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_INF(2.0f);
VERIFY_FAILS_END
#endif
}
void testFloatIsNotPosInf2(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
TEST_ASSERT_FLOAT_IS_NOT_INF(2.0f);
#endif
}
void testFloatIsNotNegInf(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_NEG_INF(-999.876f);
VERIFY_FAILS_END
#endif
}
void testFloatIsNan1(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
TEST_ASSERT_FLOAT_IS_NAN(0.0f / f_zero);
#endif
}
void testFloatIsNan2(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_NOT_NAN(0.0f / f_zero);
VERIFY_FAILS_END
#endif
}
void testFloatIsNotNan1(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_NAN(234.9f);
VERIFY_FAILS_END
#endif
}
void testFloatIsNotNan2(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
TEST_ASSERT_FLOAT_IS_NOT_NAN(234.9f);
#endif
}
void testFloatInfIsNotNan(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_NAN(1.0f / f_zero);
VERIFY_FAILS_END
#endif
}
void testFloatNanIsNotInf(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_INF(0.0f / f_zero);
VERIFY_FAILS_END
#endif
}
void testFloatIsDeterminate1(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
TEST_ASSERT_FLOAT_IS_DETERMINATE(0.0f);
TEST_ASSERT_FLOAT_IS_DETERMINATE(123.3f);
TEST_ASSERT_FLOAT_IS_DETERMINATE(-88.3f);
#endif
}
void testFloatIsDeterminate2(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(-88.3f);
VERIFY_FAILS_END
#endif
}
void testFloatIsNotDeterminate1(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(1.0f / f_zero);
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(-1.0f / f_zero);
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(0.0f / f_zero);
#endif
}
void testFloatIsNotDeterminate2(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_DETERMINATE(-1.0f / f_zero);
VERIFY_FAILS_END
#endif
}
void testFloatTraitFailsOnInvalidTrait(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
UnityAssertFloatSpecial(1.0f, NULL, __LINE__, UNITY_FLOAT_INVALID_TRAIT);
VERIFY_FAILS_END
#endif
}
void testEqualFloatArrays(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {1.0f, -8.0f, 25.4f, -0.123f};
float p1[] = {1.0f, -8.0f, 25.4f, -0.123f};
float p2[] = {1.0f, -8.0f, 25.4f, -0.2f};
float p3[] = {1.0f, -23.0f, 25.0f, -0.26f};
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);
TEST_ASSERT_EQUAL_FLOAT_ARRAY(NULL, NULL, 1);
#endif
}
void testNotEqualFloatArraysExpectedNull(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float* p0 = NULL;
float p1[] = {1.0f, 8.0f, 25.4f, 0.252f};
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.0f, 8.0f, 25.4f, 0.253f};
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.0f, 8.0f, 25.4f, 0.253f};
float p1[] = {1.0f, 8.0f, 25.4f, 0.252f};
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.0f, 8.0f, 25.4f, 0.253f};
float p1[] = {2.0f, 8.0f, 25.4f, 0.253f};
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.0f, 8.0f, 25.4f, 0.253f};
float p1[] = {1.0f, 8.0f, 25.5f, 0.253f};
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.0f, -8.0f, -25.4f, -0.253f};
float p1[] = {-1.0f, -8.0f, -25.4f, -0.252f};
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.0f, -8.0f, -25.4f, -0.253f};
float p1[] = {-2.0f, -8.0f, -25.4f, -0.253f};
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.0f, -8.0f, -25.4f, -0.253f};
float p1[] = {-1.0f, -8.0f, -25.5f, -0.253f};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
VERIFY_FAILS_END
#endif
}
void testEqualFloatArraysNaN(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f};
float p1[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f};
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
#endif
}
void testEqualFloatArraysInf(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f};
float p1[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f};
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
#endif
}
void testNotEqualFloatArraysLengthZero(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[1] = {0.0f};
float p1[1] = {0.0f};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 0);
VERIFY_FAILS_END
#endif
}
void testEqualFloatEachEqual(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {1.0f, 1.0f, 1.0f, 1.0f};
float p1[] = {-0.123f, -0.123f, -0.123f, -0.123f};
float p2[] = {25.4f, 25.4f, 25.4f, -0.2f};
float p3[] = {1.0f, -23.0f, 25.0f, -0.26f};
TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 1);
TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 4);
TEST_ASSERT_EACH_EQUAL_FLOAT(-0.123f, p1, 4);
TEST_ASSERT_EACH_EQUAL_FLOAT(25.4f, p2, 3);
TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p3, 1);
#endif
}
void testNotEqualFloatEachEqualActualNull(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float* p0 = NULL;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_FLOAT(5, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualFloatEachEqual1(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {0.253f, 8.0f, 0.253f, 0.253f};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_FLOAT(0.253f, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualFloatEachEqual2(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {8.0f, 8.0f, 8.0f, 0.253f};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_FLOAT(8.0f, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualFloatEachEqual3(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {1.0f, 1.0f, 1.0f, 0.253f};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualFloatEachEqualNegative1(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {-1.0f, -0.253f, -0.253f, -0.253f};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_FLOAT(-0.253f, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualFloatEachEqualNegative2(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {-25.4f, -8.0f, -25.4f, -25.4f};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_FLOAT(-25.4f, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualFloatEachEqualNegative3(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {-8.0f, -8.0f, -8.0f, -0.253f};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_FLOAT(-8.0f, p0, 4);
VERIFY_FAILS_END
#endif
}
void testEqualFloatEachEqualNaN(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {0.0f / f_zero, 0.0f / f_zero, 0.0f / f_zero, 0.0f / f_zero};
TEST_ASSERT_EACH_EQUAL_FLOAT(0.0f / f_zero, p0, 4);
#endif
}
void testEqualFloatEachEqualInf(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[] = {1.0f / f_zero, 1.0f / f_zero, 25.4f, 0.253f};
TEST_ASSERT_EACH_EQUAL_FLOAT(1.0f / f_zero, p0, 2);
#endif
}
void testNotEqualFloatEachEqualLengthZero(void)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE();
#else
float p0[1] = {0.0f};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_FLOAT(0.0f, p0, 0);
VERIFY_FAILS_END
#endif
}
#define TEST_ASSERT_EQUAL_PRINT_FLOATING(expected, actual) { \
startPutcharSpy(); UnityPrintFloat((actual)); endPutcharSpy(); \
TEST_ASSERT_EQUAL_STRING((expected), getBufferPutcharSpy()); \
}
void testFloatPrinting(void)
{
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || !defined(USING_OUTPUT_SPY)
TEST_IGNORE();
#else
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.0", 0.0f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.000000...", 0.000000499f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.000001", 0.00000050000005f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.100469", 0.100469499f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0", 0.9999995f); /*Rounding to int place*/
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0", 1.0f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.25", 1.25f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("7.999999", 7.999999f); /*Not rounding*/
TEST_ASSERT_EQUAL_PRINT_FLOATING("16.000002", 16.000002f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("16.000004", 16.000004f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("16.000006", 16.000006f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("4294967040.0", 4294967040.0f); /*Last full print integer*/
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.0", -0.0f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.000000...",-0.000000499f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.000001", -0.00000050000005f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.100469", -0.100469499f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-1.0", -0.9999995f); /*Rounding to int place*/
TEST_ASSERT_EQUAL_PRINT_FLOATING("-1.0", -1.0f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-1.25", -1.25f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-7.999999", -7.999999f); /*Not rounding*/
TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.000002", -16.000002f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.000004", -16.000004f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-16.000006", -16.000006f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-4294967040.0",-4294967040.0f); /*Last full print integer*/
TEST_ASSERT_EQUAL_PRINT_FLOATING("4.2949673e+09", 4294967296.0f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("5.0e+09", 5000000000.0f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("8.0e+09", 8.0e+09f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("8.3099991e+09", 8309999104.0f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0e+10", 1.0e+10f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0e+10", 10000000000.0f);
/* Some compilers have trouble with inexact float constants, a float cast works generally */
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.00005499e+10", (float)1.000055e+10f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.10000006e+38", (float)1.10000005e+38f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.63529943e+10", 1.63529943e+10f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("3.40282347e+38", 3.40282346638e38f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-1.0e+10", -1.0e+10f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-3.40282347e+38",-3.40282346638e38f);
#endif
}
void testFloatPrintingRoundTiesToEven(void)
{
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || !defined(USING_OUTPUT_SPY)
TEST_IGNORE();
#else
#ifdef UNITY_ROUND_TIES_AWAY_FROM_ZERO
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.007813", 0.0078125f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.976563", 0.9765625f);
#else /* Default to Round ties to even */
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.007182", 0.0071825f);
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.976562", 0.9765625f);
#endif
#endif
}
void testFloatPrintingInfinityAndNaN(void)
{
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || !defined(USING_OUTPUT_SPY)
TEST_IGNORE();
#else
TEST_ASSERT_EQUAL_PRINT_FLOATING("Inf", 1.0f / f_zero);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-Inf", -1.0f / f_zero);
TEST_ASSERT_EQUAL_PRINT_FLOATING("NaN", 0.0f / f_zero);
#endif
}
#if defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) && defined(USING_OUTPUT_SPY)
static void AllFloatPrinting_LessThan32Bits(void)
{
char expected[18];
union { float f_value; int32_t int_value; } u;
/* Float representations are laid out in integer order, walk up the list */
for (u.f_value = 0.00000050000005f; u.f_value <= 4294967040.0f; u.int_value += 1)
{
startPutcharSpy();
UnityPrintFloat(u.f_value); /*1.5x as fast as sprintf 5e-7f - 0.01f, 20s vs 30s*/
int len = sprintf(expected, "%.6f", u.f_value);
while (expected[len - 1] == '0' && expected[len - 2] != '.') { len--; }
expected[len] = '\0'; /* delete trailing 0's */
if (strcmp(expected, getBufferPutcharSpy()) != 0)
{
double six_digits = ((double)u.f_value - (uint32_t)u.f_value)*1000000.0;
/* Not a tie (remainder != 0.5) => Can't explain the different strings */
if (six_digits - (uint32_t)six_digits != 0.5)
{
/* Fail with diagnostic printing */
TEST_ASSERT_EQUAL_PRINT_FLOATING(expected, u.f_value);
}
}
}
}
/* Compared to perfect, floats are occasionally rounded wrong. It doesn't affect
* correctness, though. Two examples (of 13 total found during testing):
* Printed: 6.19256349e+20, Exact: 619256348499999981568.0f <= Eliminated by ROUND_TIES_TO_EVEN
* Printed: 2.19012272e+35, Exact: 219012271499999993621766990196637696.0f */
static void AllFloatPrinting_Larger(const float start, const float end)
{
unsigned int wrong = 0;
char expected[18];
union { float f_value; int32_t int_value; } u;
for (u.f_value = start; u.f_value <= end; u.int_value += 1)
{
startPutcharSpy();
UnityPrintFloat(u.f_value); /*Twice as fast as sprintf 2**32-1e12, 10s vs 21s*/
sprintf(expected, "%.8e", u.f_value);
int len = 11 - 1; /* 11th char is 'e' in exponential format */
while (expected[len - 1] == '0' && expected[len - 2] != '.') { len --; }
if (expected[14] != '\0') memmove(&expected[12], &expected[13], 3); /* Two char exponent */
memmove(&expected[len], &expected[11 - 1], sizeof "e+09"); /* 5 char length */
if (strcmp(expected, getBufferPutcharSpy()) != 0)
{
wrong++;
/* endPutcharSpy(); UnityPrint("Expected "); UnityPrint(expected);
UnityPrint(" Was "); UnityPrint(getBufferPutcharSpy()); UNITY_OUTPUT_CHAR('\n'); */
if (wrong > 10 || (wrong > 3 && end <= 1e25f))
TEST_ASSERT_EQUAL_PRINT_FLOATING(expected, u.f_value);
/* Empirical values from the current routine, don't be worse when making changes */
}
}
}
#endif
/* Exhaustive testing of all float values we differentiate when printing. Doubles
* are not explored here -- too many. These tests confirm that the routine works
* for all floats > 5e-7, positives only. Off by default due to test time.
* Compares Unity's routine to your sprintf() C lib, tested to pass on 3 platforms.
* Part1 takes a long time, around 3 minutes compiled with -O2
* Runs through all floats from 0.000001 - 2**32, ~300 million values */
void testAllFloatPrintingPart1_LessThan32Bits(void)
{
#if defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) && defined(USING_OUTPUT_SPY)
AllFloatPrinting_LessThan32Bits();
#else
TEST_IGNORE(); /* Ignore one of three */
#endif
}
/* Test takes a long time, around 3.5 minutes compiled with -O2, try ~500 million values */
void testAllFloatPrintingPart2_Larger(void)
{
#if defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) && defined(USING_OUTPUT_SPY)
AllFloatPrinting_Larger(4294967296.0f, 1e25f);
#endif
}
/* Test takes a long time, around 3.5 minutes compiled with -O2, try ~500 million values */
void testAllFloatPrintingPart3_LargerStill(void)
{
#if defined(UNITY_TEST_ALL_FLOATS_PRINT_OK) && defined(USING_OUTPUT_SPY)
AllFloatPrinting_Larger(1e25f, 3.40282347e+38f);
#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 testDoublesNotEqualActualNaN(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_DOUBLE(85.963, 0.0 / d_zero);
VERIFY_FAILS_END
#endif
}
void testDoublesNotEqualExpectedNaN(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_DOUBLE(0.0 / d_zero, 85.963);
VERIFY_FAILS_END
#endif
}
void testDoublesEqualBothNaN(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
TEST_ASSERT_EQUAL_DOUBLE(0.0 / d_zero, 0.0 / d_zero);
#endif
}
void testDoublesNotEqualInfNaN(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, 0.0 / d_zero);
VERIFY_FAILS_END
#endif
}
void testDoublesNotEqualNaNInf(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_DOUBLE(0.0 / d_zero, 1.0 / d_zero);
VERIFY_FAILS_END
#endif
}
void testDoublesNotEqualActualInf(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_DOUBLE(321.642, 1.0 / d_zero);
VERIFY_FAILS_END
#endif
}
void testDoublesNotEqualExpectedInf(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, 321.642);
VERIFY_FAILS_END
#endif
}
void testDoublesEqualBothInf(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, 1.0 / d_zero);
#endif
}
void testDoublesNotEqualPlusMinusInf(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, -1.0 / d_zero);
VERIFY_FAILS_END
#endif
}
void testDoubleIsPosInf1(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
TEST_ASSERT_DOUBLE_IS_INF(2.0 / d_zero);
#endif
}
void testDoubleIsPosInf2(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_NOT_INF(2.0 / d_zero);
VERIFY_FAILS_END
#endif
}
void testDoubleIsNegInf1(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
TEST_ASSERT_DOUBLE_IS_NEG_INF(-3.0 / d_zero);
#endif
}
void testDoubleIsNegInf2(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(-3.0 / d_zero);
VERIFY_FAILS_END
#endif
}
void testDoubleIsNotPosInf1(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_INF(2.0);
VERIFY_FAILS_END
#endif
}
void testDoubleIsNotPosInf2(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
TEST_ASSERT_DOUBLE_IS_NOT_INF(2.0);
#endif
}
void testDoubleIsNotNegInf(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_NEG_INF(-999.876);
VERIFY_FAILS_END
#endif
}
void testDoubleIsNan1(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
TEST_ASSERT_DOUBLE_IS_NAN(0.0 / d_zero);
#endif
}
void testDoubleIsNan2(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_NOT_NAN(0.0 / d_zero);
VERIFY_FAILS_END
#endif
}
void testDoubleIsNotNan1(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_NAN(234.9);
VERIFY_FAILS_END
#endif
}
void testDoubleIsNotNan2(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
TEST_ASSERT_DOUBLE_IS_NOT_NAN(234.9);
#endif
}
void testDoubleInfIsNotNan(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_NAN(1.0 / d_zero);
VERIFY_FAILS_END
#endif
}
void testDoubleNanIsNotInf(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_INF(0.0 / d_zero);
VERIFY_FAILS_END
#endif
}
void testDoubleIsDeterminate1(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
TEST_ASSERT_DOUBLE_IS_DETERMINATE(0.0);
TEST_ASSERT_DOUBLE_IS_DETERMINATE(123.3);
TEST_ASSERT_DOUBLE_IS_DETERMINATE(-88.3);
#endif
}
void testDoubleIsDeterminate2(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(-88.3);
VERIFY_FAILS_END
#endif
}
void testDoubleIsNotDeterminate1(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(1.0 / d_zero);
TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(-1.0 / d_zero);
TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(0.0 / d_zero);
#endif
}
void testDoubleIsNotDeterminate2(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_DETERMINATE(-1.0 / d_zero);
VERIFY_FAILS_END
#endif
}
void testDoubleTraitFailsOnInvalidTrait(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
EXPECT_ABORT_BEGIN
UnityAssertDoubleSpecial(1.0, NULL, __LINE__, UNITY_FLOAT_INVALID_TRAIT);
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);
TEST_ASSERT_EQUAL_DOUBLE_ARRAY(NULL, NULL, 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
}
void testEqualDoubleArraysNaN(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[] = {1.0, 0.0 / d_zero, 25.4, 0.253};
double p1[] = {1.0, 0.0 / d_zero, 25.4, 0.253};
TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
#endif
}
void testEqualDoubleArraysInf(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[] = {1.0, 1.0 / d_zero, 25.4, 0.253};
double p1[] = {1.0, 1.0 / d_zero, 25.4, 0.253};
TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
#endif
}
void testNotEqualDoubleArraysLengthZero(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[1] = {0.0};
double p1[1] = {0.0};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 0);
VERIFY_FAILS_END
#endif
}
void testEqualDoubleEachEqual(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[] = {1.0, 1.0, 1.0, 1.0};
double p1[] = {-0.123, -0.123, -0.123, -0.123};
double p2[] = {25.4, 25.4, 25.4, -0.2};
double p3[] = {1.0, -23.0, 25.0, -0.26};
TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p0, 1);
TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p0, 4);
TEST_ASSERT_EACH_EQUAL_DOUBLE(-0.123, p1, 4);
TEST_ASSERT_EACH_EQUAL_DOUBLE(25.4, p2, 3);
TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p3, 1);
#endif
}
void testNotEqualDoubleEachEqualActualNull(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double* p0 = NULL;
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_DOUBLE(5, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualDoubleEachEqual1(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[] = {0.253, 8.0, 0.253, 0.253};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_DOUBLE(0.253, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualDoubleEachEqual2(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[] = {8.0, 8.0, 8.0, 0.253};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_DOUBLE(8.0, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualDoubleEachEqual3(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[] = {1.0, 1.0, 1.0, 0.253};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualDoubleEachEqualNegative1(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[] = {-1.0, -0.253, -0.253, -0.253};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_DOUBLE(-0.253, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualDoubleEachEqualNegative2(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[] = {-25.4, -8.0, -25.4, -25.4};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_DOUBLE(-25.4, p0, 4);
VERIFY_FAILS_END
#endif
}
void testNotEqualDoubleEachEqualNegative3(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[] = {-8.0, -8.0, -8.0, -0.253};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_DOUBLE(-8.0, p0, 4);
VERIFY_FAILS_END
#endif
}
void testEqualDoubleEachEqualNaN(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[] = {0.0 / d_zero, 0.0 / d_zero, 0.0 / d_zero, 0.0 / d_zero};
TEST_ASSERT_EACH_EQUAL_DOUBLE(0.0 / d_zero, p0, 4);
#endif
}
void testEqualDoubleEachEqualInf(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[] = {1.0 / d_zero, 1.0 / d_zero, 25.4, 0.253};
TEST_ASSERT_EACH_EQUAL_DOUBLE(1.0 / d_zero, p0, 2);
#endif
}
void testNotEqualDoubleEachEqualLengthZero(void)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE();
#else
double p0[1] = {0.0};
EXPECT_ABORT_BEGIN
TEST_ASSERT_EACH_EQUAL_DOUBLE(0.0, p0, 0);
VERIFY_FAILS_END
#endif
}
void testDoublePrinting(void)
{
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
TEST_IGNORE();
#else
TEST_ASSERT_EQUAL_PRINT_FLOATING("0.100469", 0.10046949999999999);
TEST_ASSERT_EQUAL_PRINT_FLOATING("4294967295.999999", 4294967295.999999);
TEST_ASSERT_EQUAL_PRINT_FLOATING("4.2949673e+09", 4294967295.9999995);
TEST_ASSERT_EQUAL_PRINT_FLOATING("4.2949673e+09", 4294967296.0);
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0e+10", 9999999995.0);
TEST_ASSERT_EQUAL_PRINT_FLOATING("9.00719925e+15", 9007199254740990.0);
TEST_ASSERT_EQUAL_PRINT_FLOATING("7.0e+100", 7.0e+100);
TEST_ASSERT_EQUAL_PRINT_FLOATING("3.0e+200", 3.0e+200);
TEST_ASSERT_EQUAL_PRINT_FLOATING("9.23456789e+300", 9.23456789e+300);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-0.100469", -0.10046949999999999);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-4294967295.999999", -4294967295.999999);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-4.2949673e+09", -4294967295.9999995);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-7.0e+100", -7.0e+100);
#endif
}
void testDoublePrintingRoundTiesToEven(void)
{
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
TEST_IGNORE();
#else
#ifdef UNITY_ROUND_TIES_AWAY_FROM_ZERO
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.00000001e+10", 10000000050.0);
TEST_ASSERT_EQUAL_PRINT_FLOATING("9.00719925e+15", 9007199245000000.0);
#else /* Default to Round ties to even */
TEST_ASSERT_EQUAL_PRINT_FLOATING("1.0e+10", 10000000050.0);
TEST_ASSERT_EQUAL_PRINT_FLOATING("9.00719924e+15", 9007199245000000.0);
#endif
#endif
}
void testDoublePrintingInfinityAndNaN(void)
{
#if defined(UNITY_EXCLUDE_FLOAT_PRINT) || defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
TEST_IGNORE();
#else
TEST_ASSERT_EQUAL_PRINT_FLOATING("Inf", 1.0 / d_zero);
TEST_ASSERT_EQUAL_PRINT_FLOATING("-Inf", -1.0 / d_zero);
TEST_ASSERT_EQUAL_PRINT_FLOATING("NaN", 0.0 / d_zero);
#endif
}
// ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES DETAIL SUPPORT ==================
void testThatDetailsCanBeHandleOneDetail(void)
{
#ifdef UNITY_EXCLUDE_DETAILS
TEST_IGNORE();
#else
UNITY_SET_DETAIL("Detail1");
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_INT_MESSAGE(5, 6, "Should Fail And Say Detail1");
VERIFY_FAILS_END
#endif
}
void testThatDetailsCanHandleTestFail(void)
{
#ifdef UNITY_EXCLUDE_DETAILS
TEST_IGNORE();
#else
UNITY_SET_DETAILS("Detail1","Detail2");
EXPECT_ABORT_BEGIN
TEST_FAIL_MESSAGE("Should Fail And Say Detail1 and Detail2");
VERIFY_FAILS_END
#endif
}
void testThatDetailsCanBeHandleTwoDetails(void)
{
#ifdef UNITY_EXCLUDE_DETAILS
TEST_IGNORE();
#else
UNITY_SET_DETAILS("Detail1","Detail2");
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_HEX8_MESSAGE(7, 8, "Should Fail And Say Detail1 and Detail2");
VERIFY_FAILS_END
#endif
}
void testThatDetailsCanBeHandleSingleDetailClearingTwoDetails(void)
{
#ifdef UNITY_EXCLUDE_DETAILS
TEST_IGNORE();
#else
UNITY_SET_DETAILS("Detail1","Detail2");
UNITY_SET_DETAIL("DetailNew");
EXPECT_ABORT_BEGIN
TEST_ASSERT_EQUAL_STRING_MESSAGE("MEH", "GUH", "Should Fail And Say DetailNew");
VERIFY_FAILS_END
#endif
}