From: Akihiro Sagawa sagawa.aki@gmail.com
--- programs/cmd/tests/batch.c | 26 +++++++++++++++++++++++++- programs/cmd/tests/rsrc.rc | 6 ++++++ programs/cmd/tests/test_utf8.cmd | 4 ++++ programs/cmd/tests/test_utf8.cmd.exp | 2 ++ 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 programs/cmd/tests/test_utf8.cmd create mode 100644 programs/cmd/tests/test_utf8.cmd.exp
diff --git a/programs/cmd/tests/batch.c b/programs/cmd/tests/batch.c index 6bc5e916ea9..c6016733709 100644 --- a/programs/cmd/tests/batch.c +++ b/programs/cmd/tests/batch.c @@ -500,6 +500,28 @@ void create_nul_test_file(void) CloseHandle(file); }
+static void test_utf8_cmd(void) +{ + UINT prev_cp = GetConsoleOutputCP(); + BOOL ret; + + if (!prev_cp) { + /* Detach Wine's shell-no-window kind of console. + See test_Console() in kernel32/tests/process.c for details. */ + FreeConsole(); + AllocConsole(); + prev_cp = GetConsoleOutputCP(); + } + ok(prev_cp, "Can't get the console codepage, err %lu\n", GetLastError()); + + ret = SetConsoleOutputCP(CP_UTF8); + ok(ret, "Can't update the console codepage, err %lu\n", GetLastError()); + + EnumResourceNamesA(NULL, "TESTCMD_UTF8", test_enum_proc, 0); + + SetConsoleOutputCP(prev_cp); +} + START_TEST(batch) { int argc; @@ -529,8 +551,10 @@ START_TEST(batch) argc = winetest_get_mainargs(&argv); if(argc > 2) run_from_file(argv[2]); - else + else { EnumResourceNamesA(NULL, "TESTCMD", test_enum_proc, 0); + test_utf8_cmd(); + }
DeleteFileA("nul_test_file"); } diff --git a/programs/cmd/tests/rsrc.rc b/programs/cmd/tests/rsrc.rc index 0336863963f..6626c968a68 100644 --- a/programs/cmd/tests/rsrc.rc +++ b/programs/cmd/tests/rsrc.rc @@ -33,3 +33,9 @@ test_cmdline.cmd TESTCMD "test_cmdline.cmd"
/* @makedep: test_cmdline.cmd.exp */ test_cmdline.cmd.exp TESTOUT "test_cmdline.cmd.exp" + +/* @makedep: test_utf8.cmd */ +test_utf8.cmd TESTCMD_UTF8 "test_utf8.cmd" + +/* @makedep: test_utf8.cmd.exp */ +test_utf8.cmd.exp TESTOUT "test_utf8.cmd.exp" diff --git a/programs/cmd/tests/test_utf8.cmd b/programs/cmd/tests/test_utf8.cmd new file mode 100644 index 00000000000..c71e51b5ee6 --- /dev/null +++ b/programs/cmd/tests/test_utf8.cmd @@ -0,0 +1,4 @@ +@echo off +echo --- Test 1 +set ALPHA=α +if %ALPHA:~0,1% == α (echo alpha) else echo not alpha diff --git a/programs/cmd/tests/test_utf8.cmd.exp b/programs/cmd/tests/test_utf8.cmd.exp new file mode 100644 index 00000000000..0b767fed5d9 --- /dev/null +++ b/programs/cmd/tests/test_utf8.cmd.exp @@ -0,0 +1,2 @@ +--- Test 1 +@todo_wine@alpha