1 /*
2 * PROJECT: ReactOS CRT
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Tests for _wsystem()
5 * COPYRIGHT: Copyright 2023 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
6 */
7
8 #include <apitest.h>
9 #include <apitest_guard.h>
10
START_TEST(_wsystem)11 START_TEST(_wsystem)
12 {
13 int ret;
14 WCHAR szCmdExe[MAX_PATH];
15
16 GetSystemDirectoryW(szCmdExe, _countof(szCmdExe));
17 lstrcatW(szCmdExe, L"\\cmd.exe");
18
19 SetEnvironmentVariableW(L"COMSPEC", NULL);
20 errno = 0xDEADBEEF;
21 ret = _wsystem(NULL);
22 ok_int(errno, 0xDEADBEEF);
23 ok_int(ret, 1);
24
25 SetEnvironmentVariableW(L"COMSPEC", L"InvalidComSpec");
26 errno = 0xDEADBEEF;
27 ret = _wsystem(NULL);
28 ok_int(errno, 0xDEADBEEF);
29 ok_int(ret, 1);
30
31 SetEnvironmentVariableW(L"COMSPEC", szCmdExe);
32 errno = 0xDEADBEEF;
33 ret = _wsystem(NULL);
34 ok_int(errno, 0xDEADBEEF);
35 ok_int(ret, 1);
36
37 SetEnvironmentVariableW(L"COMSPEC", NULL);
38 errno = 0xDEADBEEF;
39 ret = _wsystem(L"echo This is a test");
40 ok_int(errno, 0);
41 ok_int(ret, 0);
42
43 SetEnvironmentVariableW(L"COMSPEC", L"InvalidComSpec");
44 errno = 0xDEADBEEF;
45 ret = _wsystem(L"echo This is a test");
46 ok_int(errno, 0);
47 ok_int(ret, 0);
48
49 SetEnvironmentVariableW(L"COMSPEC", szCmdExe);
50 errno = 0xDEADBEEF;
51 ret = _wsystem(L"echo This is a test");
52 ok_int(errno, 0);
53 ok_int(ret, 0);
54
55 SetEnvironmentVariableW(L"COMSPEC", NULL);
56 errno = 0xDEADBEEF;
57 ret = _wsystem(L"InvalidCommandLine");
58 ok_int(errno, 0);
59 ok_int(ret, 1);
60
61 SetEnvironmentVariableW(L"COMSPEC", L"InvalidComSpec");
62 errno = 0xDEADBEEF;
63 ret = _wsystem(L"InvalidCommandLine");
64 ok_int(errno, 0);
65 ok_int(ret, 1);
66
67 SetEnvironmentVariableW(L"COMSPEC", szCmdExe);
68 errno = 0xDEADBEEF;
69 ret = _wsystem(L"InvalidCommandLine");
70 ok_int(errno, 0);
71 ok_int(ret, 1);
72 }
73