提交 43b4c94f 编写于 作者: M mvandervoord

- protect against ints that only have differences in higher nibbles that...

- protect against ints that only have differences in higher nibbles that shouldn't be part of comparison

git-svn-id: http://unity.svn.sourceforge.net/svnroot/unity/trunk@130 e7d17a6e-8845-0410-bbbc-c8efb4fdad7e
上级 114755e2
......@@ -296,24 +296,23 @@ void UnityAssertEqualFloatArray(const _UF* expected,
#define UNITY_TEST_ASSERT_NOT_NULL(pointer, line, message) UNITY_TEST_ASSERT(((pointer) != NULL), (UNITY_LINE_TYPE)line, message)
#define UNITY_TEST_ASSERT_EQUAL_INT(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
#define UNITY_TEST_ASSERT_EQUAL_INT8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
#define UNITY_TEST_ASSERT_EQUAL_INT16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
#define UNITY_TEST_ASSERT_EQUAL_INT32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
#define UNITY_TEST_ASSERT_EQUAL_INT8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
#define UNITY_TEST_ASSERT_EQUAL_INT16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
#define UNITY_TEST_ASSERT_EQUAL_INT32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
#define UNITY_TEST_ASSERT_EQUAL_UINT(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT)
#define UNITY_TEST_ASSERT_EQUAL_UINT8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT)
#define UNITY_TEST_ASSERT_EQUAL_UINT16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT)
#define UNITY_TEST_ASSERT_EQUAL_UINT32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT)
#define UNITY_TEST_ASSERT_EQUAL_HEX8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX8)
#define UNITY_TEST_ASSERT_EQUAL_HEX16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX16)
#define UNITY_TEST_ASSERT_EQUAL_HEX32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX32)
#define UNITY_TEST_ASSERT_EQUAL_UINT8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT)
#define UNITY_TEST_ASSERT_EQUAL_UINT16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT)
#define UNITY_TEST_ASSERT_EQUAL_UINT32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT)
#define UNITY_TEST_ASSERT_EQUAL_HEX8(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX8)
#define UNITY_TEST_ASSERT_EQUAL_HEX16(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX16)
#define UNITY_TEST_ASSERT_EQUAL_HEX32(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX32)
#define UNITY_TEST_ASSERT_BITS(mask, expected, actual, line, message) UnityAssertBits((_U_SINT)(mask), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)line)
#define UNITY_TEST_ASSERT_INT_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT)
#define UNITY_TEST_ASSERT_UINT_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT)
#define UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX8)
#define UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX16)
#define UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX32)
#define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX64)
#define UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_U_UINT)(_UU8 )(delta), (_U_SINT)(_U_UINT)(_UU8 )(expected), (_U_SINT)(_U_UINT)(_UU8 )(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX8)
#define UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_U_UINT)(_UU16)(delta), (_U_SINT)(_U_UINT)(_UU16)(expected), (_U_SINT)(_U_UINT)(_UU16)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX16)
#define UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(_U_UINT)(_UU32)(delta), (_U_SINT)(_U_UINT)(_UU32)(expected), (_U_SINT)(_U_UINT)(_UU32)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX32)
#define UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, line, message) UnityAssertEqualNumber((_U_SINT)(_UP)(expected), (_U_SINT)(_UP)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_POINTER)
#define UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, line, message) UnityAssertEqualString((const char*)(expected), (const char*)(actual), (message), (UNITY_LINE_TYPE)line)
......@@ -340,6 +339,7 @@ void UnityAssertEqualFloatArray(const _UF* expected,
#define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((const _U_SINT*)(expected), (const _U_SINT*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_INT64)
#define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((const _U_SINT*)(expected), (const _U_SINT*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_UINT64)
#define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((const _U_SINT*)(expected), (const _U_SINT*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX64)
#define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) UnityAssertNumbersWithin((_U_SINT)(delta), (_U_SINT)(expected), (_U_SINT)(actual), NULL, (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_HEX64)
#endif
#ifdef UNITY_EXCLUDE_FLOAT
......
......@@ -329,6 +329,56 @@ void testEqualInts(void)
TEST_ASSERT_EQUAL_INT(*p0, 19467);
}
void testEqualInt8s(void)
{
_US8 v0, v1;
_US8 *p0, *p1;
v0 = 0x22;
v1 = 0x22;
p0 = &v0;
p1 = &v1;
TEST_ASSERT_EQUAL_INT8(0x22, 0x22);
TEST_ASSERT_EQUAL_INT8(v0, v1);
TEST_ASSERT_EQUAL_INT8(0x22, v1);
TEST_ASSERT_EQUAL_INT8(v0, 0x22);
TEST_ASSERT_EQUAL_INT8(*p0, v1);
TEST_ASSERT_EQUAL_INT8(*p0, *p1);
TEST_ASSERT_EQUAL_INT8(*p0, 0x22);
}
void testEqualInt8sWhenThereAreDifferencesOutside8Bits(void)
{
TEST_ASSERT_EQUAL_INT8(0x321,0x421);
TEST_ASSERT_EQUAL_INT8(0xFF21,0x0021);
}
void testEqualInt16s(void)
{
_US16 v0, v1;
_US16 *p0, *p1;
v0 = 0x9876;
v1 = 0x9876;
p0 = &v0;
p1 = &v1;
TEST_ASSERT_EQUAL_INT16(0x9876, 0x9876);
TEST_ASSERT_EQUAL_INT16(v0, v1);
TEST_ASSERT_EQUAL_INT16(0x9876, v1);
TEST_ASSERT_EQUAL_INT16(v0, 0x9876);
TEST_ASSERT_EQUAL_INT16(*p0, v1);
TEST_ASSERT_EQUAL_INT16(*p0, *p1);
TEST_ASSERT_EQUAL_INT16(*p0, 0x9876);
}
void testEqualInt16sWhenThereAreDifferencesOutside16Bits(void)
{
TEST_ASSERT_EQUAL_INT16(0x54321,0x64321);
TEST_ASSERT_EQUAL_INT16(0xFFFF4321,0x00004321);
}
void testEqualUints(void)
{
unsigned int v0, v1;
......@@ -349,6 +399,57 @@ void testEqualUints(void)
TEST_ASSERT_EQUAL_UINT(60872u, 60872u);
}
void testEqualUint8s(void)
{
_UU8 v0, v1;
_UU8 *p0, *p1;
v0 = 0x22;
v1 = 0x22;
p0 = &v0;
p1 = &v1;
TEST_ASSERT_EQUAL_UINT8(0x22, 0x22);
TEST_ASSERT_EQUAL_UINT8(v0, v1);
TEST_ASSERT_EQUAL_UINT8(0x22, v1);
TEST_ASSERT_EQUAL_UINT8(v0, 0x22);
TEST_ASSERT_EQUAL_UINT8(*p0, v1);
TEST_ASSERT_EQUAL_UINT8(*p0, *p1);
TEST_ASSERT_EQUAL_UINT8(*p0, 0x22);
}
void testEqualUint8sWhenThereAreDifferencesOutside8Bits(void)
{
TEST_ASSERT_EQUAL_UINT8(0x321,0x421);
TEST_ASSERT_EQUAL_UINT8(0xFF21,0x0021);
}
void testEqualUint16s(void)
{
_UU16 v0, v1;
_UU16 *p0, *p1;
v0 = 0x9876;
v1 = 0x9876;
p0 = &v0;
p1 = &v1;
TEST_ASSERT_EQUAL_UINT16(0x9876, 0x9876);
TEST_ASSERT_EQUAL_UINT16(v0, v1);
TEST_ASSERT_EQUAL_UINT16(0x9876, v1);
TEST_ASSERT_EQUAL_UINT16(v0, 0x9876);
TEST_ASSERT_EQUAL_UINT16(*p0, v1);
TEST_ASSERT_EQUAL_UINT16(*p0, *p1);
TEST_ASSERT_EQUAL_UINT16(*p0, 0x9876);
}
void testEqualUint16sWhenThereAreDifferencesOutside16Bits(void)
{
TEST_ASSERT_EQUAL_UINT16(0x54321,0x64321);
TEST_ASSERT_EQUAL_UINT16(0xFFFF4321,0x00004321);
}
void testNotEqual(void)
{
TEST_ASSERT_NOT_EQUAL(0, 1);
......@@ -379,6 +480,12 @@ void testEqualHex8s(void)
TEST_ASSERT_EQUAL_HEX8(*p0, 0x22);
}
void testEqualHex8sWhenThereAreDifferencesOutside8Bits(void)
{
TEST_ASSERT_EQUAL_HEX8(0x321,0x421);
TEST_ASSERT_EQUAL_HEX8(0xFF21,0x0021);
}
void testEqualHex8sNegatives(void)
{
_UU8 v0, v1;
......@@ -417,6 +524,12 @@ void testEqualHex16s(void)
TEST_ASSERT_EQUAL_HEX16(*p0, 0x9876);
}
void testEqualHex16sWhenThereAreDifferencesOutside16Bits(void)
{
TEST_ASSERT_EQUAL_HEX16(0x54321,0x64321);
TEST_ASSERT_EQUAL_HEX16(0xFFFF4321,0x00004321);
}
void testEqualHex32s(void)
{
_UU32 v0, v1;
......@@ -630,6 +743,11 @@ void testHEX16sWithinDelta(void)
TEST_ASSERT_HEX16_WITHIN(5, 5000, 5005);
}
void testHEX16sWithinDeltaWhenThereAreDifferenceOutsideOf16Bits(void)
{
TEST_ASSERT_HEX16_WITHIN(5, 0x54321, 0x44321);
}
void testHEX16sNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
......@@ -644,6 +762,11 @@ void testHEX8sWithinDelta(void)
TEST_ASSERT_HEX8_WITHIN(5, 1, 4);
}
void testHEX8sWithinDeltaWhenThereAreDifferenceOutsideOf8Bits(void)
{
TEST_ASSERT_HEX8_WITHIN(5, 0x123, 0xF23);
}
void testHEX8sNotWithinDelta(void)
{
EXPECT_ABORT_BEGIN
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册