diff --git a/src/unity.c b/src/unity.c index 8d8bb2d9b5909ae32230bc27a4d7098a76a2ca0d..4a1f85e9f8b91f14c856c93990764751d48c9694 100644 --- a/src/unity.c +++ b/src/unity.c @@ -106,6 +106,7 @@ void UnityPrint(const char* string) else { UNITY_OUTPUT_CHAR('\\'); + UNITY_OUTPUT_CHAR('x'); UnityPrintNumberHex((_U_UINT)*pch, 2); } pch++; @@ -143,6 +144,7 @@ void UnityPrintLen(const char* string, const _UU32 length) else { UNITY_OUTPUT_CHAR('\\'); + UNITY_OUTPUT_CHAR('x'); UnityPrintNumberHex((_U_UINT)*pch, 2); } pch++; @@ -163,6 +165,8 @@ void UnityPrintNumberByStyle(const _U_SINT number, const UNITY_DISPLAY_STYLE_T s } else { + UNITY_OUTPUT_CHAR('0'); + UNITY_OUTPUT_CHAR('x'); UnityPrintNumberHex((_U_UINT)number, (char)((style & 0x000F) << 1)); } } @@ -207,8 +211,6 @@ void UnityPrintNumberHex(const _U_UINT number, const char nibbles_to_print) { _U_UINT nibble; char nibbles = nibbles_to_print; - UNITY_OUTPUT_CHAR('0'); - UNITY_OUTPUT_CHAR('x'); while (nibbles > 0) { diff --git a/test/tests/testunity.c b/test/tests/testunity.c index 7f6f965783794dfb1083f832213f5707e39804bd..e750d792bbdd0364d2620e3ad1a1362e1107f683 100644 --- a/test/tests/testunity.c +++ b/test/tests/testunity.c @@ -1381,7 +1381,7 @@ void testNotEqualString4(void) void testNotEqualStringLen4(void) { EXPECT_ABORT_BEGIN - TEST_ASSERT_EQUAL_STRING_LEN("\r\x16", "bar\n", 4); + TEST_ASSERT_EQUAL_STRING_LEN("ba\r\x16", "ba\r\n", 4); VERIFY_FAILS_END } @@ -2283,6 +2283,14 @@ void testFailureCountIncrementsAndIsReturnedAtEnd(void) TEST_ASSERT_EQUAL(1, failures); } +void testCstringsEscapeSequence(void) +{ + startPutcharSpy(); + UnityPrint("\x16\x10"); + endPutcharSpy(); + TEST_ASSERT_EQUAL_STRING("\\x16\\x10", getBufferPutcharSpy()); +} + #define TEST_ASSERT_EQUAL_PRINT_NUMBERS(expected, actual) { \ startPutcharSpy(); UnityPrintNumber((actual)); endPutcharSpy(); \ TEST_ASSERT_EQUAL_STRING((expected), getBufferPutcharSpy()); \