mirror of
https://github.com/ThrowTheSwitch/Unity.git
synced 2025-09-27 00:07:17 +08:00
- cleaned up pointer support to handle arrays and to give error when you have an illegal configuration
git-svn-id: http://unity.svn.sourceforge.net/svnroot/unity/trunk@135 e7d17a6e-8845-0410-bbbc-c8efb4fdad7e
This commit is contained in:
@ -134,6 +134,7 @@
|
||||
#define TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements) UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, __LINE__, NULL)
|
||||
|
||||
@ -214,6 +215,7 @@
|
||||
#define TEST_ASSERT_EQUAL_HEX16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, __LINE__, message)
|
||||
#define TEST_ASSERT_EQUAL_HEX32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, __LINE__, message)
|
||||
#define TEST_ASSERT_EQUAL_HEX64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, __LINE__, message)
|
||||
#define TEST_ASSERT_EQUAL_PTR_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, __LINE__, message)
|
||||
#define TEST_ASSERT_EQUAL_STRING_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, __LINE__, message)
|
||||
#define TEST_ASSERT_EQUAL_MEMORY_ARRAY_MESSAGE(expected, actual, len, num_elements, message) UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, __LINE__, message)
|
||||
|
||||
|
@ -79,6 +79,9 @@ typedef _US64 _U_SINT;
|
||||
typedef _UU32 _UP;
|
||||
#define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX32
|
||||
#elif (UNITY_POINTER_WIDTH == 64)
|
||||
#ifndef UNITY_SUPPORT_64
|
||||
#error "You've Specified 64-bit pointers without enabling 64-bit Support. Define UNITY_SUPPORT_64"
|
||||
#endif
|
||||
typedef _UU64 _UP;
|
||||
#define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX64
|
||||
#elif (UNITY_POINTER_WIDTH == 16)
|
||||
@ -374,6 +377,7 @@ void UnityAssertEqualDoubleArray(const _UD* expected,
|
||||
#define UNITY_TEST_ASSERT_EQUAL_HEX8_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_HEX8)
|
||||
#define UNITY_TEST_ASSERT_EQUAL_HEX16_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_HEX16)
|
||||
#define UNITY_TEST_ASSERT_EQUAL_HEX32_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_HEX32)
|
||||
#define UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualIntArray((const _U_SINT*)(_UP*)(expected), (const _U_SINT*)(_UP*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line, UNITY_DISPLAY_STYLE_POINTER)
|
||||
#define UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualStringArray((const char**)(expected), (const char**)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line)
|
||||
#define UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, line, message) UnityAssertEqualMemory((void*)(expected), (void*)(actual), (_UU32)(len), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line)
|
||||
|
||||
|
@ -1049,6 +1049,86 @@ void testNotEqualIntArrays3(void)
|
||||
VERIFY_FAILS_END
|
||||
}
|
||||
|
||||
void testEqualPtrArrays(void)
|
||||
{
|
||||
char A = 1;
|
||||
char B = 2;
|
||||
char C = 3;
|
||||
char* p0[] = {&A, &B, &C};
|
||||
char* p1[] = {&A, &B, &C, &A};
|
||||
char* p2[] = {&A, &B};
|
||||
char* p3[] = {&A};
|
||||
|
||||
TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p0, 1);
|
||||
TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p0, 3);
|
||||
TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 3);
|
||||
TEST_ASSERT_EQUAL_PTR_ARRAY(p1, p2, 2);
|
||||
TEST_ASSERT_EQUAL_PTR_ARRAY(p3, p0, 1);
|
||||
}
|
||||
|
||||
void testNotEqualPtrArraysNullExpected(void)
|
||||
{
|
||||
char A = 1;
|
||||
char B = 2;
|
||||
char** p0 = NULL;
|
||||
char* p1[] = {&A, &B};
|
||||
|
||||
EXPECT_ABORT_BEGIN
|
||||
TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 2);
|
||||
VERIFY_FAILS_END
|
||||
}
|
||||
|
||||
void testNotEqualPtrArraysNullActual(void)
|
||||
{
|
||||
char A = 1;
|
||||
char B = 2;
|
||||
char** p0 = NULL;
|
||||
char* p1[] = {&A, &B};
|
||||
|
||||
EXPECT_ABORT_BEGIN
|
||||
TEST_ASSERT_EQUAL_PTR_ARRAY(p1, p0, 2);
|
||||
VERIFY_FAILS_END
|
||||
}
|
||||
|
||||
void testNotEqualPtrArrays1(void)
|
||||
{
|
||||
char A = 1;
|
||||
char B = 2;
|
||||
char C = 3;
|
||||
char* p0[] = {&A, &B, &C, &B};
|
||||
char* p1[] = {&A, &B, &C, &A};
|
||||
|
||||
EXPECT_ABORT_BEGIN
|
||||
TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4);
|
||||
VERIFY_FAILS_END
|
||||
}
|
||||
|
||||
void testNotEqualPtrArrays2(void)
|
||||
{
|
||||
char A = 1;
|
||||
char B = 2;
|
||||
char C = 3;
|
||||
char* p0[] = {&B, &B, &C, &A};
|
||||
char* p1[] = {&A, &B, &C, &A};
|
||||
|
||||
EXPECT_ABORT_BEGIN
|
||||
TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4);
|
||||
VERIFY_FAILS_END
|
||||
}
|
||||
|
||||
void testNotEqualPtrArrays3(void)
|
||||
{
|
||||
char A = 1;
|
||||
char B = 2;
|
||||
char C = 3;
|
||||
char* p0[] = {&A, &B, &B, &A};
|
||||
char* p1[] = {&A, &B, &C, &A};
|
||||
|
||||
EXPECT_ABORT_BEGIN
|
||||
TEST_ASSERT_EQUAL_PTR_ARRAY(p0, p1, 4);
|
||||
VERIFY_FAILS_END
|
||||
}
|
||||
|
||||
void testEqualInt8Arrays(void)
|
||||
{
|
||||
_US8 p0[] = {1, 8, 117, -2};
|
||||
|
Reference in New Issue
Block a user