Hi Thiago, > Qt uses almost exclusively the W versions of the Win32 API. There are a couple > of cases of A use, but those are the exception and you don't have to worry > about them. Those and the "System" codec would be affected by your switch to a > different codepage, but that's your intention anyway and I don't see a > problem.
Thank you for the reassurance! > I think you're right and that code definitely looks fishy. > > And it looks like we lost the tst_Utf8 test in the QStringConverter change, > particularly tst_Utf8::charByChar, which might have caught this. Looks like > tst_QStringConverter does not attempt to test that the system codec very well > either, because we can't statically know what it can do. tst_Utf8 had a > detection to see if the system codec happened to be UTF-8. > > Since you're still on 5.12, tst_Utf8 (qtbase/tests/auto/codecs/utf8) is there. > Can you try to run on with the UTF-8 codepage and see if it passes? Thanks for pointing me to the test. I compiled the test and created an application manifest for it to use UTF-8. It correctly detected the system codec to be UTF-8 and reported several failures and a bunch of warnings. I've attached the test output. This gave me an idea: perhaps the easiest way for Qt to fix it would be to check `GetACP() == CP_UTF8`, and if it is true then just use Qt's built-in UTF-8 support and bypass MultiByteToWideChar completely. > As far as I know, it already does. The Vietnamese locale for Windows has been > using UTF-8 for years (probably since forever) and there's no reason that Qt > shouldn't support it. I don't have first-hand experience with Vietnamese Windows but isn't Windows-1258 the Vietnamese code page? I know vaguely that Unicode-only locales (not Vietnamese) are a thing on Windows, but I thought they had no way to use UTF-8 as the ACP until the beta UTF-8 support landed on Windows 10. Best Regards, Alvin Wong
********* Start testing of tst_Utf8 ********* Config: Using QtTest library 5.12.12, Qt 5.12.12 (x86_64-little_endian-llp64 shared (dynamic) release build; by Clang 14.0.0 (https://github.com/llvm/llvm-project.git 329fda39c507e8740978d10458451dcdb21563be)) QINFO : tst_Utf8::initTestCase() locale is utf8 PASS : tst_Utf8::initTestCase() PASS : tst_Utf8::roundTrip(utf8codec:empty) PASS : tst_Utf8::roundTrip(utf8codec:nul) PASS : tst_Utf8::roundTrip(utf8codec:ascii) PASS : tst_Utf8::roundTrip(utf8codec:ascii2) PASS : tst_Utf8::roundTrip(utf8codec:utf8_1) PASS : tst_Utf8::roundTrip(utf8codec:utf8_2) PASS : tst_Utf8::roundTrip(utf8codec:utf8_4) PASS : tst_Utf8::roundTrip(utf8codec:utf8_5) PASS : tst_Utf8::roundTrip(utf8codec:utf8_6) PASS : tst_Utf8::roundTrip(utf8codec:utf8_7) PASS : tst_Utf8::roundTrip(utf8codec:utf8_8) PASS : tst_Utf8::roundTrip(localecodec:empty) FAIL! : tst_Utf8::roundTrip(localecodec:nul) Compared values are not the same Actual (from8Bit(utf8)): "" Expected (utf16) : "\u0000" D:\dev\krita\src-master-build\clang_db\ext_qt\s\qtbase\tests\auto\corelib\codecs\utf8\tst_utf8.cpp(156) : failure location PASS : tst_Utf8::roundTrip(localecodec:ascii) PASS : tst_Utf8::roundTrip(localecodec:ascii2) PASS : tst_Utf8::roundTrip(localecodec:utf8_1) PASS : tst_Utf8::roundTrip(localecodec:utf8_2) PASS : tst_Utf8::roundTrip(localecodec:utf8_4) PASS : tst_Utf8::roundTrip(localecodec:utf8_5) PASS : tst_Utf8::roundTrip(localecodec:utf8_6) PASS : tst_Utf8::roundTrip(localecodec:utf8_7) PASS : tst_Utf8::roundTrip(localecodec:utf8_8) PASS : tst_Utf8::charByChar(utf8codec:empty) PASS : tst_Utf8::charByChar(utf8codec:nul) PASS : tst_Utf8::charByChar(utf8codec:ascii) PASS : tst_Utf8::charByChar(utf8codec:ascii2) PASS : tst_Utf8::charByChar(utf8codec:utf8_1) PASS : tst_Utf8::charByChar(utf8codec:utf8_2) PASS : tst_Utf8::charByChar(utf8codec:utf8_4) PASS : tst_Utf8::charByChar(utf8codec:utf8_5) PASS : tst_Utf8::charByChar(utf8codec:utf8_6) PASS : tst_Utf8::charByChar(utf8codec:utf8_7) PASS : tst_Utf8::charByChar(utf8codec:utf8_8) PASS : tst_Utf8::charByChar(localecodec:empty) FAIL! : tst_Utf8::charByChar(localecodec:nul) Compared values are not the same Actual (decoded): "" Expected (utf16) : "\u0000" D:\dev\krita\src-master-build\clang_db\ext_qt\s\qtbase\tests\auto\corelib\codecs\utf8\tst_utf8.cpp(205) : failure location PASS : tst_Utf8::charByChar(localecodec:ascii) PASS : tst_Utf8::charByChar(localecodec:ascii2) PASS : tst_Utf8::charByChar(localecodec:utf8_1) FAIL! : tst_Utf8::charByChar(localecodec:utf8_2) Compared values are not the same Actual (decoded): "\uFFFD" Expected (utf16) : "\u20AC" D:\dev\krita\src-master-build\clang_db\ext_qt\s\qtbase\tests\auto\corelib\codecs\utf8\tst_utf8.cpp(205) : failure location PASS : tst_Utf8::charByChar(localecodec:utf8_4) FAIL! : tst_Utf8::charByChar(localecodec:utf8_5) Compared values are not the same Actual (encoded): "\xEF\xBF\xBD\xEF\xBF\xBD" Expected (utf8) : "\xF0\x90\x88\x83" D:\dev\krita\src-master-build\clang_db\ext_qt\s\qtbase\tests\auto\corelib\codecs\utf8\tst_utf8.cpp(193) : failure location FAIL! : tst_Utf8::charByChar(localecodec:utf8_6) Compared values are not the same Actual (encoded): "\xEF\xBF\xBD\xEF\xBF\xBD" Expected (utf8) : "\xF4\x8F\xBF\xBD" D:\dev\krita\src-master-build\clang_db\ext_qt\s\qtbase\tests\auto\corelib\codecs\utf8\tst_utf8.cpp(193) : failure location FAIL! : tst_Utf8::charByChar(localecodec:utf8_7) Compared values are not the same Actual (decoded): "abc\u00A0\u00E1\u00E9\u01FD \uFFFD\uFFFDef" Expected (utf16) : "abc\u00A0\u00E1\u00E9\u01FD \u20ACdef" D:\dev\krita\src-master-build\clang_db\ext_qt\s\qtbase\tests\auto\corelib\codecs\utf8\tst_utf8.cpp(205) : failure location FAIL! : tst_Utf8::charByChar(localecodec:utf8_8) Compared values are not the same Actual (encoded): "abc\xC2\xA0\xC3\xA1\xC3\xA9\xC7\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xE2\x82\xAC""def" Expected (utf8) : "abc\xC2\xA0\xC3\xA1\xC3\xA9\xC7\xBD \xF4\x8F\xBF\xBD \xE2\x82\xAC""def" D:\dev\krita\src-master-build\clang_db\ext_qt\s\qtbase\tests\auto\corelib\codecs\utf8\tst_utf8.cpp(193) : failure location PASS : tst_Utf8::invalidUtf8(utf8codec:bad-continuation-1char) PASS : tst_Utf8::invalidUtf8(utf8codec:bad-continuation-2chars-1) PASS : tst_Utf8::invalidUtf8(utf8codec:bad-continuation-2chars-2) PASS : tst_Utf8::invalidUtf8(utf8codec:bad-continuation-2chars-3) PASS : tst_Utf8::invalidUtf8(utf8codec:bad-continuation-3chars-1) PASS : tst_Utf8::invalidUtf8(utf8codec:bad-continuation-3chars-2) PASS : tst_Utf8::invalidUtf8(utf8codec:bad-continuation-4chars-1) PASS : tst_Utf8::invalidUtf8(utf8codec:bad-continuation-4chars-2) PASS : tst_Utf8::invalidUtf8(utf8codec:bad-continuation-4chars-3) PASS : tst_Utf8::invalidUtf8(utf8codec:too-short-2chars) PASS : tst_Utf8::invalidUtf8(utf8codec:too-short-3chars-1) PASS : tst_Utf8::invalidUtf8(utf8codec:too-short-3chars-2) PASS : tst_Utf8::invalidUtf8(utf8codec:too-short-4chars-1) PASS : tst_Utf8::invalidUtf8(utf8codec:too-short-4chars-2) PASS : tst_Utf8::invalidUtf8(utf8codec:too-short-4chars-3) PASS : tst_Utf8::invalidUtf8(utf8codec:hi-surrogate) PASS : tst_Utf8::invalidUtf8(utf8codec:lo-surrogate) PASS : tst_Utf8::invalidUtf8(utf8codec:surrogate-pair) PASS : tst_Utf8::invalidUtf8(utf8codec:non-unicode-1) PASS : tst_Utf8::invalidUtf8(utf8codec:non-unicode-2) PASS : tst_Utf8::invalidUtf8(utf8codec:non-unicode-3) PASS : tst_Utf8::invalidUtf8(utf8codec:non-unicode-4) PASS : tst_Utf8::invalidUtf8(utf8codec:fe) PASS : tst_Utf8::invalidUtf8(utf8codec:fe-bis) PASS : tst_Utf8::invalidUtf8(utf8codec:ff) PASS : tst_Utf8::invalidUtf8(utf8codec:ff-bis) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-1-2) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-1-3) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-1-4) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-1-5) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-1-6) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-2-3) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-2-4) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-2-5) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-2-6) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-3-4) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-3-5) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-3-6) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-4-5) PASS : tst_Utf8::invalidUtf8(utf8codec:overlong-4-6) QWARN : tst_Utf8::invalidUtf8(localecodec:bad-continuation-1char) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:bad-continuation-1char) QWARN : tst_Utf8::invalidUtf8(localecodec:bad-continuation-2chars-1) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:bad-continuation-2chars-1) QWARN : tst_Utf8::invalidUtf8(localecodec:bad-continuation-2chars-2) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:bad-continuation-2chars-2) QWARN : tst_Utf8::invalidUtf8(localecodec:bad-continuation-2chars-3) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:bad-continuation-2chars-3) QWARN : tst_Utf8::invalidUtf8(localecodec:bad-continuation-3chars-1) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:bad-continuation-3chars-1) QWARN : tst_Utf8::invalidUtf8(localecodec:bad-continuation-3chars-2) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:bad-continuation-3chars-2) QWARN : tst_Utf8::invalidUtf8(localecodec:bad-continuation-4chars-1) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:bad-continuation-4chars-1) QWARN : tst_Utf8::invalidUtf8(localecodec:bad-continuation-4chars-2) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:bad-continuation-4chars-2) QWARN : tst_Utf8::invalidUtf8(localecodec:bad-continuation-4chars-3) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:bad-continuation-4chars-3) QWARN : tst_Utf8::invalidUtf8(localecodec:too-short-2chars) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:too-short-2chars) QWARN : tst_Utf8::invalidUtf8(localecodec:too-short-3chars-1) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:too-short-3chars-1) QWARN : tst_Utf8::invalidUtf8(localecodec:too-short-3chars-2) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:too-short-3chars-2) QWARN : tst_Utf8::invalidUtf8(localecodec:too-short-4chars-1) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:too-short-4chars-1) QWARN : tst_Utf8::invalidUtf8(localecodec:too-short-4chars-2) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:too-short-4chars-2) QWARN : tst_Utf8::invalidUtf8(localecodec:too-short-4chars-3) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:too-short-4chars-3) QWARN : tst_Utf8::invalidUtf8(localecodec:hi-surrogate) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:hi-surrogate) QWARN : tst_Utf8::invalidUtf8(localecodec:lo-surrogate) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:lo-surrogate) QWARN : tst_Utf8::invalidUtf8(localecodec:surrogate-pair) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:surrogate-pair) QWARN : tst_Utf8::invalidUtf8(localecodec:non-unicode-1) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:non-unicode-1) QWARN : tst_Utf8::invalidUtf8(localecodec:non-unicode-2) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:non-unicode-2) QWARN : tst_Utf8::invalidUtf8(localecodec:non-unicode-3) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:non-unicode-3) QWARN : tst_Utf8::invalidUtf8(localecodec:non-unicode-4) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:non-unicode-4) QWARN : tst_Utf8::invalidUtf8(localecodec:fe) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:fe) QWARN : tst_Utf8::invalidUtf8(localecodec:fe-bis) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:fe-bis) QWARN : tst_Utf8::invalidUtf8(localecodec:ff) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:ff) QWARN : tst_Utf8::invalidUtf8(localecodec:ff-bis) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:ff-bis) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-1-2) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-1-2) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-1-3) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-1-3) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-1-4) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-1-4) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-1-5) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-1-5) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-1-6) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-1-6) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-2-3) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-2-3) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-2-4) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-2-4) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-2-5) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-2-5) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-2-6) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-2-6) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-3-4) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-3-4) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-3-5) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-3-5) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-3-6) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-3-6) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-4-5) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-4-5) QWARN : tst_Utf8::invalidUtf8(localecodec:overlong-4-6) System codec does not report failure when it should. Should report bug upstream. PASS : tst_Utf8::invalidUtf8(localecodec:overlong-4-6) PASS : tst_Utf8::nonCharacters(utf8codec:fdd0) PASS : tst_Utf8::nonCharacters(utf8codec:fdd1) PASS : tst_Utf8::nonCharacters(utf8codec:fdd2) PASS : tst_Utf8::nonCharacters(utf8codec:fdd3) PASS : tst_Utf8::nonCharacters(utf8codec:fdd4) PASS : tst_Utf8::nonCharacters(utf8codec:fdd5) PASS : tst_Utf8::nonCharacters(utf8codec:fdd6) PASS : tst_Utf8::nonCharacters(utf8codec:fdd7) PASS : tst_Utf8::nonCharacters(utf8codec:fdd8) PASS : tst_Utf8::nonCharacters(utf8codec:fdd9) PASS : tst_Utf8::nonCharacters(utf8codec:fdda) PASS : tst_Utf8::nonCharacters(utf8codec:fddb) PASS : tst_Utf8::nonCharacters(utf8codec:fddc) PASS : tst_Utf8::nonCharacters(utf8codec:fddd) PASS : tst_Utf8::nonCharacters(utf8codec:fdde) PASS : tst_Utf8::nonCharacters(utf8codec:fddf) PASS : tst_Utf8::nonCharacters(utf8codec:1fffe) PASS : tst_Utf8::nonCharacters(utf8codec:1ffff) PASS : tst_Utf8::nonCharacters(utf8codec:2fffe) PASS : tst_Utf8::nonCharacters(utf8codec:2ffff) PASS : tst_Utf8::nonCharacters(utf8codec:3fffe) PASS : tst_Utf8::nonCharacters(utf8codec:3ffff) PASS : tst_Utf8::nonCharacters(utf8codec:4fffe) PASS : tst_Utf8::nonCharacters(utf8codec:4ffff) PASS : tst_Utf8::nonCharacters(utf8codec:5fffe) PASS : tst_Utf8::nonCharacters(utf8codec:5ffff) PASS : tst_Utf8::nonCharacters(utf8codec:6fffe) PASS : tst_Utf8::nonCharacters(utf8codec:6ffff) PASS : tst_Utf8::nonCharacters(utf8codec:7fffe) PASS : tst_Utf8::nonCharacters(utf8codec:7ffff) PASS : tst_Utf8::nonCharacters(utf8codec:8fffe) PASS : tst_Utf8::nonCharacters(utf8codec:8ffff) PASS : tst_Utf8::nonCharacters(utf8codec:9fffe) PASS : tst_Utf8::nonCharacters(utf8codec:9ffff) PASS : tst_Utf8::nonCharacters(utf8codec:afffe) PASS : tst_Utf8::nonCharacters(utf8codec:affff) PASS : tst_Utf8::nonCharacters(utf8codec:bfffe) PASS : tst_Utf8::nonCharacters(utf8codec:bffff) PASS : tst_Utf8::nonCharacters(utf8codec:cfffe) PASS : tst_Utf8::nonCharacters(utf8codec:cffff) PASS : tst_Utf8::nonCharacters(utf8codec:dfffe) PASS : tst_Utf8::nonCharacters(utf8codec:dffff) PASS : tst_Utf8::nonCharacters(utf8codec:efffe) PASS : tst_Utf8::nonCharacters(utf8codec:effff) PASS : tst_Utf8::nonCharacters(utf8codec:ffffe) PASS : tst_Utf8::nonCharacters(utf8codec:fffff) PASS : tst_Utf8::nonCharacters(utf8codec:10fffe) PASS : tst_Utf8::nonCharacters(utf8codec:10ffff) PASS : tst_Utf8::nonCharacters(utf8codec:fffe) PASS : tst_Utf8::nonCharacters(utf8codec:ffff) PASS : tst_Utf8::nonCharacters(localecodec:fdd0) PASS : tst_Utf8::nonCharacters(localecodec:fdd1) PASS : tst_Utf8::nonCharacters(localecodec:fdd2) PASS : tst_Utf8::nonCharacters(localecodec:fdd3) PASS : tst_Utf8::nonCharacters(localecodec:fdd4) PASS : tst_Utf8::nonCharacters(localecodec:fdd5) PASS : tst_Utf8::nonCharacters(localecodec:fdd6) PASS : tst_Utf8::nonCharacters(localecodec:fdd7) PASS : tst_Utf8::nonCharacters(localecodec:fdd8) PASS : tst_Utf8::nonCharacters(localecodec:fdd9) PASS : tst_Utf8::nonCharacters(localecodec:fdda) PASS : tst_Utf8::nonCharacters(localecodec:fddb) PASS : tst_Utf8::nonCharacters(localecodec:fddc) PASS : tst_Utf8::nonCharacters(localecodec:fddd) PASS : tst_Utf8::nonCharacters(localecodec:fdde) PASS : tst_Utf8::nonCharacters(localecodec:fddf) PASS : tst_Utf8::nonCharacters(localecodec:1fffe) PASS : tst_Utf8::nonCharacters(localecodec:1ffff) PASS : tst_Utf8::nonCharacters(localecodec:2fffe) PASS : tst_Utf8::nonCharacters(localecodec:2ffff) PASS : tst_Utf8::nonCharacters(localecodec:3fffe) PASS : tst_Utf8::nonCharacters(localecodec:3ffff) PASS : tst_Utf8::nonCharacters(localecodec:4fffe) PASS : tst_Utf8::nonCharacters(localecodec:4ffff) PASS : tst_Utf8::nonCharacters(localecodec:5fffe) PASS : tst_Utf8::nonCharacters(localecodec:5ffff) PASS : tst_Utf8::nonCharacters(localecodec:6fffe) PASS : tst_Utf8::nonCharacters(localecodec:6ffff) PASS : tst_Utf8::nonCharacters(localecodec:7fffe) PASS : tst_Utf8::nonCharacters(localecodec:7ffff) PASS : tst_Utf8::nonCharacters(localecodec:8fffe) PASS : tst_Utf8::nonCharacters(localecodec:8ffff) PASS : tst_Utf8::nonCharacters(localecodec:9fffe) PASS : tst_Utf8::nonCharacters(localecodec:9ffff) PASS : tst_Utf8::nonCharacters(localecodec:afffe) PASS : tst_Utf8::nonCharacters(localecodec:affff) PASS : tst_Utf8::nonCharacters(localecodec:bfffe) PASS : tst_Utf8::nonCharacters(localecodec:bffff) PASS : tst_Utf8::nonCharacters(localecodec:cfffe) PASS : tst_Utf8::nonCharacters(localecodec:cffff) PASS : tst_Utf8::nonCharacters(localecodec:dfffe) PASS : tst_Utf8::nonCharacters(localecodec:dffff) PASS : tst_Utf8::nonCharacters(localecodec:efffe) PASS : tst_Utf8::nonCharacters(localecodec:effff) PASS : tst_Utf8::nonCharacters(localecodec:ffffe) PASS : tst_Utf8::nonCharacters(localecodec:fffff) PASS : tst_Utf8::nonCharacters(localecodec:10fffe) PASS : tst_Utf8::nonCharacters(localecodec:10ffff) PASS : tst_Utf8::nonCharacters(localecodec:fffe) PASS : tst_Utf8::nonCharacters(localecodec:ffff) PASS : tst_Utf8::cleanupTestCase() Totals: 219 passed, 7 failed, 0 skipped, 0 blacklisted, 32ms ********* Finished testing of tst_Utf8 *********
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest