kernel32/tests: Do not assume the signedness of plain char

Andrew Talbot andrew.talbot at talbotville.com
Thu Feb 28 16:47:11 CST 2013


Changelog:
   kernel32/tests: Do not assume the signedness of plain char.

The signedness of plain char is implementation-defined, but the type conversion of the character code of a character literal from char to int will either be sign-extended or not in accordance with the local signedness.

---

diff --git a/dlls/kernel32/tests/codepage.c b/dlls/kernel32/tests/codepage.c
index c980348..36ea66d 100644
--- a/dlls/kernel32/tests/codepage.c
+++ b/dlls/kernel32/tests/codepage.c
@@ -285,7 +285,7 @@ static void test_string_conversion(LPBOOL bUsedDefaultChar)
     SetLastError(0xdeadbeef);
     ret = WideCharToMultiByte(1252, 0, &wc1, 1, &mbc, 1, NULL, bUsedDefaultChar);
     ok(ret == 1, "ret is %d\n", ret);
-    ok(mbc == -28, "mbc is %d\n", mbc);
+    ok(mbc == '\xe4', "mbc is %d\n", mbc);
     if(bUsedDefaultChar) ok(*bUsedDefaultChar == FALSE, "bUsedDefaultChar is %d\n", *bUsedDefaultChar);
     ok(GetLastError() == 0xdeadbeef, "GetLastError() is %u\n", GetLastError());
 
@@ -301,7 +301,7 @@ static void test_string_conversion(LPBOOL bUsedDefaultChar)
         SetLastError(0xdeadbeef);
         ret = WideCharToMultiByte(1251, 0, &wc2, 1, &mbc, 1, NULL, bUsedDefaultChar);
         ok(ret == 1, "ret is %d\n", ret);
-        ok(mbc == -16, "mbc is %d\n", mbc);
+        ok(mbc == '\xf0', "mbc is %d\n", mbc);
         if(bUsedDefaultChar) ok(*bUsedDefaultChar == FALSE, "bUsedDefaultChar is %d\n", *bUsedDefaultChar);
         ok(GetLastError() == 0xdeadbeef ||
            broken(GetLastError() == 0), /* win95 */




More information about the wine-patches mailing list