提交 152e78a4 编写于 作者: M mvandervoord

- cleaned up pointer support to handle arrays and to give error when you have...

- 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
上级 504bf2ed
......@@ -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};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册