1/* ==========================================
2    Unity Project - A Test Framework for C
3    Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4    [Released under MIT License. Please refer to license.txt for details]
5========================================== */
6
7#include "unity.h"
8#define TEST_INSTANCES
9#include "self_assessment_utils.h"
10
11static int SetToOneToFailInTearDown;
12static int SetToOneMeanWeAlreadyCheckedThisGuy;
13
14void setUp(void)
15{
16    SetToOneToFailInTearDown = 0;
17    SetToOneMeanWeAlreadyCheckedThisGuy = 0;
18}
19
20void tearDown(void)
21{
22    endPutcharSpy(); /* Stop suppressing test output */
23    if (SetToOneToFailInTearDown == 1)
24    {
25        /* These will be skipped internally if already failed/ignored */
26        TEST_FAIL_MESSAGE("<= Failed in tearDown");
27        TEST_IGNORE_MESSAGE("<= Ignored in tearDown");
28    }
29    if ((SetToOneMeanWeAlreadyCheckedThisGuy == 0) && (Unity.CurrentTestFailed > 0))
30    {
31        UnityPrint(": [[[[ Test Should Have Passed But Did Not ]]]]");
32        UNITY_OUTPUT_CHAR('\n');
33    }
34}
35
36void testEqualMemory(void)
37{
38    const char *testString = "whatever";
39
40    TEST_ASSERT_EQUAL_MEMORY(testString, testString, 8);
41    TEST_ASSERT_EQUAL_MEMORY("whatever", "whatever", 8);
42    TEST_ASSERT_EQUAL_MEMORY("whatever", testString, 8);
43    TEST_ASSERT_EQUAL_MEMORY(testString, "whatever", 8);
44    TEST_ASSERT_EQUAL_MEMORY(testString, "whatever", 2);
45    TEST_ASSERT_EQUAL_MEMORY(NULL, NULL, 1);
46}
47
48void testNotEqualMemory1(void)
49{
50    EXPECT_ABORT_BEGIN
51    TEST_ASSERT_EQUAL_MEMORY("foo", "bar", 3);
52    VERIFY_FAILS_END
53}
54
55void testNotEqualMemory2(void)
56{
57    EXPECT_ABORT_BEGIN
58    TEST_ASSERT_EQUAL_MEMORY("fool", "food", 4);
59    VERIFY_FAILS_END
60}
61
62void testNotEqualMemory3(void)
63{
64    EXPECT_ABORT_BEGIN
65    TEST_ASSERT_EQUAL_MEMORY(NULL, "food", 4);
66    VERIFY_FAILS_END
67}
68
69void testNotEqualMemory4(void)
70{
71    EXPECT_ABORT_BEGIN
72    TEST_ASSERT_EQUAL_MEMORY("fool", NULL, 4);
73    VERIFY_FAILS_END
74}
75
76void testNotEqualMemoryLengthZero(void)
77{
78    EXPECT_ABORT_BEGIN
79    TEST_ASSERT_EQUAL_MEMORY(NULL, NULL, 0);
80    VERIFY_FAILS_END
81}
82