Francois Gouget : kernel32/tests: Add more FormatMessage() line wrapping tests.
Alexandre Julliard
julliard at winehq.org
Thu Sep 20 15:05:36 CDT 2012
Module: wine
Branch: master
Commit: a273cac7474a6da1eef199642e97dbbac2e5b0e2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a273cac7474a6da1eef199642e97dbbac2e5b0e2
Author: Francois Gouget <fgouget at free.fr>
Date: Wed Sep 19 20:36:49 2012 +0200
kernel32/tests: Add more FormatMessage() line wrapping tests.
---
dlls/kernel32/tests/format_msg.c | 73 +++++++++++++++++++++++++++++++++++---
1 files changed, 68 insertions(+), 5 deletions(-)
diff --git a/dlls/kernel32/tests/format_msg.c b/dlls/kernel32/tests/format_msg.c
index 50e13f4..cf711f6 100644
--- a/dlls/kernel32/tests/format_msg.c
+++ b/dlls/kernel32/tests/format_msg.c
@@ -1015,12 +1015,75 @@ static void test_message_wrap(void)
todo_wine ok(ret == 16, "Expected FormatMessageW to return 16, got %d\n", ret);
todo_wine ok(!strcmp("short long\r\nline", out),"failed out=[%s]\n",out);
+ /* Wrap the very last word */
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 20,
+ "short long long line", 0, 0, out, sizeof(out), NULL);
+ todo_wine ok(ret == 21, "Expected FormatMessageW to return 21, got %d\n", ret);
+ todo_wine ok(!strcmp("short long long\r\nline", out),"failed out=[%s]\n",out);
+
/* Strictly less than 10 characters per line! */
ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 10,
"short long line", 0, 0, out, sizeof(out), NULL);
todo_wine ok(ret == 16, "Expected FormatMessageW to return 16, got %d\n", ret);
todo_wine ok(!strcmp("short\r\nlong line", out),"failed out=[%s]\n",out);
+ /* Handling of duplicate spaces */
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 16,
+ "short long line", 0, 0, out, sizeof(out), NULL);
+ todo_wine ok(ret == 16, "Expected FormatMessageW to return 16, got %d\n", ret);
+ todo_wine ok(!strcmp("short long\r\nline", out),"failed out=[%s]\n",out);
+
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 16,
+ "short long wordlongerthanaline", 0, 0, out, sizeof(out), NULL);
+ ok(ret == 33, "Expected FormatMessageW to return 33, got %d\n", ret);
+ todo_wine ok(!strcmp("short long\r\nwordlongerthanal\r\nine", out),"failed out=[%s]\n",out);
+
+ /* Breaking in the middle of spaces */
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 12,
+ "short long line", 0, 0, out, sizeof(out), NULL);
+ ok(ret == 18, "Expected FormatMessageW to return 18, got %d\n", ret);
+ todo_wine ok(!strcmp("short long\r\n line", out),"failed out=[%s]\n",out);
+
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 12,
+ "short long wordlongerthanaline", 0, 0, out, sizeof(out), NULL);
+ todo_wine ok(ret == 35, "Expected FormatMessageW to return 35, got %d\n", ret);
+ todo_wine ok(!strcmp("short long\r\n\r\nwordlongerth\r\nanaline", out),"failed out=[%s]\n",out);
+
+ /* Handling of start-of-string spaces */
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 15,
+ " short line", 0, 0, out, sizeof(out), NULL);
+ ok(ret == 13, "Expected FormatMessageW to return 13, got %d\n", ret);
+ ok(!strcmp(" short line", out),"failed out=[%s]\n",out);
+
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 11,
+ " shortlong line", 0, 0, out, sizeof(out), NULL);
+ ok(ret == 17, "Expected FormatMessageW to return 17, got %d\n", ret);
+ todo_wine ok(!strcmp("\r\nshortlong\r\nline", out),"failed out=[%s]\n",out);
+
+ /* Handling of start-of-line spaces */
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 11,
+ "l1%n shortlong line", 0, 0, out, sizeof(out), NULL);
+ ok(ret == 21, "Expected FormatMessageW to return 21, got %d\n", ret);
+ todo_wine ok(!strcmp("l1\r\n\r\nshortlong\r\nline", out),"failed out=[%s]\n",out);
+
+ /* Pure space wrapping */
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 5,
+ " ", 0, 0, out, sizeof(out), NULL);
+ todo_wine ok(ret == 7, "Expected FormatMessageW to return 7, got %d\n", ret);
+ todo_wine ok(!strcmp("\r\n\r\n\r\n ", out),"failed out=[%s]\n",out);
+
+ /* Handling of trailing spaces */
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 5,
+ "l1 ", 0, 0, out, sizeof(out), NULL);
+ todo_wine ok(ret == 10, "Expected FormatMessageW to return 10, got %d\n", ret);
+ todo_wine ok(!strcmp("l1\r\n\r\n\r\n ", out),"failed out=[%s]\n",out);
+
+ /* Word that just fills the line */
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 8,
+ "shortlon", 0, 0, out, sizeof(out), NULL);
+ todo_wine ok(ret == 10, "Expected FormatMessageW to return 10, got %d\n", ret);
+ todo_wine ok(!strcmp("shortlon\r\n", out),"failed out=[%s]\n",out);
+
/* Word longer than the line */
ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 8,
"shortlongline", 0, 0, out, sizeof(out), NULL);
@@ -1039,11 +1102,11 @@ static void test_message_wrap(void)
todo_wine ok(ret == 16, "Expected FormatMessageW to return 16, got %d\n", ret);
todo_wine ok(!strcmp("short long\r\nline", out),"failed out=[%s]\n",out);
- /* '%n's are converted into line feeds */
- ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 11,
- "short%n%nlong line", 0, 0, out, sizeof(out), NULL);
- ok(ret == 18, "Expected FormatMessageW to return 18, got %d\n", ret);
- ok(!strcmp("short\r\n\r\nlong line", out),"failed out=[%s]\n",out);
+ /* Wrap even before a '%n' */
+ ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 8,
+ "shortlon%n", 0, 0, out, sizeof(out), NULL);
+ todo_wine ok(ret == 12, "Expected FormatMessageW to return 12, got %d\n", ret);
+ todo_wine ok(!strcmp("shortlon\r\n\r\n", out),"failed out=[%s]\n",out);
/* '%n's count as starting a new line and combine with line wrapping */
ret = FormatMessageA(FORMAT_MESSAGE_FROM_STRING | 10,
More information about the wine-cvs
mailing list