BinaryEqualFailure::BinaryEqualFailure(UtestShell* test, const char* fileName, int lineNumber, const unsigned char* expected, const unsigned char* actual, size_t size, const SimpleString& text) : TestFailure(test, fileName, lineNumber) { message_ = createUserText(text); message_ += createButWasString(StringFromBinaryOrNull(expected, size), StringFromBinaryOrNull(actual, size)); if ((expected) && (actual)) { size_t failStart; for (failStart = 0; actual[failStart] == expected[failStart]; failStart++) ; message_ += createDifferenceAtPosString(StringFromBinary(actual, size), failStart, DIFFERENCE_BINARY); } }
SimpleString StringFromBinaryWithSize(const unsigned char* value, size_t size) { SimpleString result = StringFromFormat("Size = %u | HexContents = ", (unsigned) size); size_t displayedSize = ((size > 128) ? 128 : size); result += StringFromBinaryOrNull(value, displayedSize); if (size > displayedSize) { result += " ..."; } return result; }