[1/2] webservices/tests: Add a helper to print the contents of the output buffer.
Hans Leidekker
hans at codeweavers.com
Fri Dec 23 05:52:38 CST 2016
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
dlls/webservices/tests/writer.c | 38 +++++++++++++++++++++++++++++++++++++-
1 file changed, 37 insertions(+), 1 deletion(-)
diff --git a/dlls/webservices/tests/writer.c b/dlls/webservices/tests/writer.c
index b5288a5..6ad691f 100644
--- a/dlls/webservices/tests/writer.c
+++ b/dlls/webservices/tests/writer.c
@@ -339,6 +339,41 @@ static void test_WsSetOutputToBuffer(void)
WsFreeHeap( heap );
}
+static char strbuf[512];
+static const char *debugstr_bytes( const BYTE *bytes, ULONG len )
+{
+ const BYTE *src = bytes;
+ char *dst = strbuf;
+
+ while (len)
+ {
+ BYTE c = *src++;
+ if (dst - strbuf > sizeof(strbuf) - 7) break;
+ switch (c)
+ {
+ case '\n': *dst++ = '\\'; *dst++ = 'n'; break;
+ case '\r': *dst++ = '\\'; *dst++ = 'r'; break;
+ case '\t': *dst++ = '\\'; *dst++ = 't'; break;
+ default:
+ if (c >= ' ' && c < 127) *dst++ = c;
+ else
+ {
+ sprintf( dst, "\\%02x", c );
+ dst += 3;
+ }
+ }
+ len--;
+ }
+ if (len)
+ {
+ *dst++ = '.';
+ *dst++ = '.';
+ *dst++ = '.';
+ }
+ *dst = 0;
+ return strbuf;
+}
+
static void check_output( WS_XML_WRITER *writer, const char *expected, unsigned int line )
{
WS_BYTES bytes;
@@ -351,7 +386,8 @@ static void check_output( WS_XML_WRITER *writer, const char *expected, unsigned
ok( hr == S_OK, "%u: got %08x\n", line, hr );
ok( bytes.length == len, "%u: got %u expected %u\n", line, bytes.length, len );
if (bytes.length != len) return;
- ok( !memcmp( bytes.bytes, expected, len ), "%u: got %s expected %s\n", line, bytes.bytes, expected );
+ ok( !memcmp( bytes.bytes, expected, len ),
+ "%u: got %s expected %s\n", line, debugstr_bytes(bytes.bytes, bytes.length), expected );
}
static void test_WsWriteStartElement(void)
--
2.1.4
More information about the wine-patches
mailing list