27 { __LINE__, 0,
"cmd /c exit" },
28 { __LINE__, 0,
"cmd /c exit 0" },
29 { __LINE__, 0,
"cmd /c exit \"\"" },
30 { __LINE__, 0,
"cmd /c exit ABC" },
31 { __LINE__, 0,
"cmd /c exit \"ABC" },
32 { __LINE__, 0,
"cmd /c exit \"ABC\"" },
33 { __LINE__, 1234,
"cmd /c exit 1234" },
39 { __LINE__, 0,
"cmd /c echo.",
TRUE,
FALSE,
"\r\n" },
40 { __LINE__, 0,
"cmd /c echo ABC",
TRUE,
FALSE,
"ABC\r\n" },
45 { __LINE__, 0,
"cmd /c cd \"C:\\ " },
46 { __LINE__, 0,
"cmd /c cd C:/" },
47 { __LINE__, 0,
"cmd /c cd \"\"",
TRUE,
FALSE },
48 { __LINE__, 0,
"cmd /c cd",
TRUE,
FALSE },
49 { __LINE__, 1234,
"cmd /c cd C:\\Program Files && exit 1234" },
50 { __LINE__, 1234,
"cmd /c cd \"C:\\ \" && exit 1234" },
51 { __LINE__, 1234,
"cmd /c cd \"C:\\Program Files\" && exit 1234" },
52 { __LINE__, 1234,
"cmd /c cd \"\" && exit 1234",
TRUE,
FALSE },
53 { __LINE__, 1234,
"cmd /c cd \\ && exit 1234" },
58 { __LINE__, 0,
"cmd /c pushd C:\\ " },
59 { __LINE__, 0,
"cmd /c pushd C:\\ \"" },
60 { __LINE__, 0,
"cmd /c pushd C:\\ \"\"" },
61 { __LINE__, 0,
"cmd /c pushd C:\\ \"\"\"" },
62 { __LINE__, 0,
"cmd /c pushd C:\\ \"\"\"\"" },
63 { __LINE__, 0,
"cmd /c pushd C:\\ \" " },
64 { __LINE__, 0,
"cmd /c pushd C:\\ \"\" " },
65 { __LINE__, 0,
"cmd /c pushd C:\\ \"\"\" " },
66 { __LINE__, 0,
"cmd /c pushd C:\\ \"\"\"\" " },
67 { __LINE__, 0,
"cmd /c pushd C:\\" },
68 { __LINE__, 0,
"cmd /c pushd C:\\\"" },
69 { __LINE__, 0,
"cmd /c pushd C:\\\"\"" },
70 { __LINE__, 0,
"cmd /c pushd C:\\\"\"\"" },
71 { __LINE__, 0,
"cmd /c pushd C:\\\"\"\"\"" },
72 { __LINE__, 0,
"cmd /c pushd C:\\\" " },
73 { __LINE__, 0,
"cmd /c pushd C:\\\"\" " },
74 { __LINE__, 0,
"cmd /c pushd C:\\\"\"\" " },
75 { __LINE__, 0,
"cmd /c pushd C:\\\"\"\"\" " },
76 { __LINE__, 0,
"cmd /c pushd \"C:\\ " },
77 { __LINE__, 0,
"cmd /c pushd \"C:\\ \"" },
78 { __LINE__, 0,
"cmd /c pushd \"C:\\ \"\"" },
79 { __LINE__, 0,
"cmd /c pushd \"C:\\ \"\"\"" },
80 { __LINE__, 0,
"cmd /c pushd \"C:\\ \"\"\"\"" },
81 { __LINE__, 0,
"cmd /c pushd \"C:\\ \" " },
82 { __LINE__, 0,
"cmd /c pushd \"C:\\ \"\" " },
83 { __LINE__, 0,
"cmd /c pushd \"C:\\ \"\"\" " },
84 { __LINE__, 0,
"cmd /c pushd \"C:\\ \"\"\"\" " },
85 { __LINE__, 0,
"cmd /c pushd \"C:\\" },
86 { __LINE__, 0,
"cmd /c pushd \"C:\\\"" },
87 { __LINE__, 0,
"cmd /c pushd \"C:\\\"\"" },
88 { __LINE__, 0,
"cmd /c pushd \"C:\\\"\"\"" },
89 { __LINE__, 0,
"cmd /c pushd \"C:\\\"\"\"\"" },
90 { __LINE__, 0,
"cmd /c pushd \"C:\\\"" },
91 { __LINE__, 1,
"cmd /c pushd \" C:\\ ",
FALSE,
TRUE },
92 { __LINE__, 1,
"cmd /c pushd \" C:\\ \"",
FALSE,
TRUE },
93 { __LINE__, 1,
"cmd /c pushd \" C:\\ \"\"",
FALSE,
TRUE },
94 { __LINE__, 1,
"cmd /c pushd \" C:\\ \"\"\"",
FALSE,
TRUE },
95 { __LINE__, 1,
"cmd /c pushd \" C:\\ \"\"\"\"",
FALSE,
TRUE },
96 { __LINE__, 1,
"cmd /c pushd \"\" C:\\ ",
FALSE,
TRUE },
97 { __LINE__, 1,
"cmd /c pushd \"\" C:\\ \"",
FALSE,
TRUE },
98 { __LINE__, 1,
"cmd /c pushd \"\" C:\\ \"\"",
FALSE,
TRUE },
99 { __LINE__, 1,
"cmd /c pushd \"\" C:\\ \"\"\"",
FALSE,
TRUE },
100 { __LINE__, 1,
"cmd /c pushd \"\" C:\\ \"\"\"\"",
FALSE,
TRUE },
101 { __LINE__, 1,
"cmd /c pushd \"\" C:\\\"",
FALSE,
TRUE },
102 { __LINE__, 1,
"cmd /c popd ABC" },
103 { __LINE__, 1,
"cmd /c popd \" " },
104 { __LINE__, 1,
"cmd /c popd \"\"" },
105 { __LINE__, 1,
"cmd /c popd" },
106 { __LINE__, 1,
"cmd /c pushd ABC",
FALSE,
TRUE },
107 { __LINE__, 1,
"cmd /c pushd C:/Program Files && popd && exit 1234",
FALSE,
TRUE },
108 { __LINE__, 1,
"cmd /c pushd C:\\ C:\\ && popd && exit 1234",
FALSE,
TRUE },
109 { __LINE__, 1,
"cmd /c pushd C:\\Invalid Directory && exit 1234",
FALSE,
TRUE },
110 { __LINE__, 1,
"cmd /c pushd C:\\Invalid Directory && popd && exit 1234",
FALSE,
TRUE },
111 { __LINE__, 1,
"cmd /c pushd \" C:\\ ",
FALSE,
TRUE },
112 { __LINE__, 1,
"cmd /c pushd \"C:\\ C:\\\" && popd && exit 1234",
FALSE,
TRUE },
113 { __LINE__, 1234,
"cmd /c pushd && exit 1234 " },
114 { __LINE__, 1234,
"cmd /c pushd C:\\ && popd && exit 1234" },
115 { __LINE__, 1234,
"cmd /c pushd C:\\ \"\" && popd && exit 1234" },
116 { __LINE__, 1234,
"cmd /c pushd C:\\Program Files && popd && exit 1234" },
119 { __LINE__, 1234,
"cmd /c pushd \"C:\\ \" && popd && exit 1234" },
120 { __LINE__, 1234,
"cmd /c pushd \"C:\\ \"\"\" && popd && exit 1234" },
121 { __LINE__, 1234,
"cmd /c pushd \"C:\\ \"\"\"\"\" && popd && exit 1234" },
122 { __LINE__, 1234,
"cmd /c pushd \"C:\\Program Files\" && popd && exit 1234" },
123 { __LINE__, 1234,
"cmd /c pushd \"C:\\Program Files\\\" && popd && exit 1234" },
124 { __LINE__, 1234,
"cmd /c pushd \"C:\\\" && popd && exit 1234" },
130 { __LINE__, 0,
"attrib invalid-path.txt",
TRUE,
FALSE },
131 { __LINE__, 0,
"attrib +H invalid-path.txt",
TRUE,
FALSE },
132 { __LINE__, 0,
"attrib -H invalid-path.txt",
TRUE,
FALSE },
135 { __LINE__, 0,
"cmd /c if exist attr-test.txt attrib -H attr-test.txt" },
136 { __LINE__, 0,
"cmd /c if exist attr-test.txt del /Q attr-test.txt" },
137 { __LINE__, 0,
"cmd /c copy NUL attr-test.txt ",
TRUE,
FALSE },
139 { __LINE__, 0,
"attrib +H attr-test.txt",
FALSE,
FALSE },
140 { __LINE__, 0,
"attrib attr-test.txt",
TRUE,
FALSE,
" H " },
141 { __LINE__, 0,
"attrib -H attr-test.txt",
FALSE,
FALSE },
144 { __LINE__, 0,
"attrib +H attr-te*.txt",
FALSE,
FALSE },
145 { __LINE__, 0,
"attrib attr-te*.txt",
TRUE,
FALSE,
" H " },
146 { __LINE__, 0,
"attrib -H attr-te*.txt",
FALSE,
FALSE },
148 { __LINE__, 0,
"cmd /c if exist attr-test.txt attrib -H attr-test.txt" },
149 { __LINE__, 0,
"cmd /c if exist attr-test.txt del /Q attr-test.txt" },
152 { __LINE__, 0,
"cmd /c if exist attr-test.txt attrib -H attr-test.txt" },
153 { __LINE__, 0,
"cmd /c if exist attr-test.txt del /Q attr-test.txt" },
154 { __LINE__, 0,
"cmd /c copy NUL attr-test.txt ",
TRUE,
FALSE },
156 { __LINE__, 0,
"attrib /S +H attr-test.txt",
FALSE,
FALSE },
157 { __LINE__, 0,
"attrib /S attr-test.txt",
TRUE,
FALSE,
" H " },
158 { __LINE__, 0,
"attrib /S -H attr-test.txt",
FALSE,
FALSE },
161 { __LINE__, 0,
"attrib /S +H attr-te*.txt",
FALSE,
FALSE },
162 { __LINE__, 0,
"attrib /S attr-te*.txt",
TRUE,
FALSE,
" H " },
163 { __LINE__, 0,
"attrib /S -H attr-te*.txt",
FALSE,
FALSE },
165 { __LINE__, 0,
"attrib /S +H",
FALSE,
FALSE },
166 { __LINE__, 0,
"attrib /S attr-test.txt",
TRUE,
FALSE,
" H " },
167 { __LINE__, 0,
"attrib /S -H",
FALSE,
FALSE },
169 { __LINE__, 0,
"cmd /c if exist attr-test.txt attrib -H attr-test.txt" },
170 { __LINE__, 0,
"cmd /c if exist attr-test.txt del /Q attr-test.txt" },
173 { __LINE__, 0,
"cmd /c if exist attr-test.txt attrib -H attr-test.txt" },
174 { __LINE__, 0,
"cmd /c if exist attr-test.txt del /Q attr-test.txt" },
175 { __LINE__, 0,
"cmd /c copy NUL attr-test.txt ",
TRUE,
FALSE },
177 { __LINE__, 0,
"attrib /S /D +H attr-test.txt",
FALSE,
FALSE },
178 { __LINE__, 0,
"attrib /S /D attr-test.txt",
TRUE,
FALSE,
" H " },
179 { __LINE__, 0,
"attrib /S /D -H attr-test.txt",
FALSE,
FALSE },
182 { __LINE__, 0,
"attrib /S /D +H attr-te*.txt",
FALSE,
FALSE },
183 { __LINE__, 0,
"attrib /S /D attr-te*.txt",
TRUE,
FALSE,
" H " },
184 { __LINE__, 0,
"attrib /S /D -H attr-te*.txt",
FALSE,
FALSE },
186 { __LINE__, 0,
"cmd /c if exist attr-test.txt attrib -H attr-test.txt" },
187 { __LINE__, 0,
"cmd /c if exist attr-test.txt del /Q attr-test.txt" },
190 { __LINE__, 0,
"cmd /c if exist attr-dir rmdir /s /q attr-dir" },
191 { __LINE__, 0,
"cmd /c mkdir attr-dir",
FALSE,
FALSE },
192 { __LINE__, 0,
"cmd /c if exist attr-dir/test.txt attrib -H attr-dir/test.txt" },
193 { __LINE__, 0,
"cmd /c if exist attr-dir/test.txt del /Q attr-dir/test.txt" },
194 { __LINE__, 1,
"cmd /c copy NUL attr-dir/test.txt ",
TRUE,
FALSE },
196 { __LINE__, 0,
"attrib +H attr-dir/test.txt",
TRUE,
FALSE },
198 { __LINE__, 0,
"attrib -H attr-dir/test.txt",
TRUE,
FALSE,
"test.txt" },
201 { __LINE__, 0,
"attrib attr-dir",
TRUE,
FALSE,
" H " },
205 { __LINE__, 0,
"cmd /c if exist attr-dir/test.txt attrib -H attr-dir/test.txt" },
206 { __LINE__, 0,
"cmd /c if exist attr-dir/test.txt del /Q attr-dir/test.txt" },
207 { __LINE__, 0,
"cmd /c if exist attr-dir rmdir /s /q attr-dir" },
210 { __LINE__, 0,
"cmd /c if exist attr-dir rmdir /s /q attr-dir" },
211 { __LINE__, 0,
"cmd /c mkdir attr-dir",
FALSE,
FALSE },
213 { __LINE__, 0,
"cmd /c if exist attr-dir echo OK",
TRUE,
FALSE,
"OK" },
214 { __LINE__, 0,
"cmd /c mkdir attr-dir\\dir1",
FALSE,
FALSE },
215 { __LINE__, 0,
"cmd /c if exist attr-dir\\dir1 echo OK",
TRUE,
FALSE,
"OK" },
217 { __LINE__, 0,
"attrib +H attr-dir\\dir1",
FALSE,
FALSE },
218 { __LINE__, 0,
"attrib attr-dir\\dir1",
TRUE,
FALSE,
" H " },
219 { __LINE__, 0,
"attrib -H attr-dir\\dir1",
FALSE,
FALSE },
221 { __LINE__, 0,
"attrib +H attr-dir",
FALSE,
FALSE },
223 { __LINE__, 0,
"attrib -H attr-dir",
FALSE,
FALSE },
225 { __LINE__, 0,
"attrib +H attr-d*",
TRUE,
FALSE,
"attr-d*" },
227 { __LINE__, 0,
"attrib -H attr-d*",
TRUE,
FALSE,
"attr-d*" },
229 { __LINE__, 0,
"attrib +H attr-dir\\d*",
TRUE,
FALSE,
"attr-dir\\d*" },
231 { __LINE__, 0,
"attrib -H attr-dir\\d*",
TRUE,
FALSE,
"attr-dir\\d*" },
233 { __LINE__, 0,
"attrib -H attr-dir\\dir1",
FALSE,
FALSE },
234 { __LINE__, 0,
"attrib -H attr-dir",
FALSE,
FALSE },
235 { __LINE__, 0,
"cmd /c if exist attr-dir rmdir /s /q attr-dir" },
238 { __LINE__, 0,
"cmd /c if exist attr-dir rmdir /s /q attr-dir" },
239 { __LINE__, 0,
"cmd /c mkdir attr-dir",
FALSE,
FALSE },
241 { __LINE__, 0,
"cmd /c if exist attr-dir echo OK",
TRUE,
FALSE,
"OK" },
242 { __LINE__, 0,
"cmd /c mkdir attr-dir\\dir1",
FALSE,
FALSE },
243 { __LINE__, 0,
"cmd /c if exist attr-dir\\dir1 echo OK",
TRUE,
FALSE,
"OK" },
245 { __LINE__, 0,
"attrib /S +H attr-dir\\dir1",
TRUE,
FALSE,
"attr-dir\\dir1", },
246 { __LINE__, 0,
"attrib /S attr-dir\\dir1",
TRUE,
FALSE,
"attr-dir\\dir1" },
247 { __LINE__, 0,
"attrib /S -H attr-dir\\dir1",
TRUE,
FALSE,
"attr-dir\\dir1" },
249 { __LINE__, 0,
"attrib /S +H attr-dir",
TRUE,
FALSE,
"attr-dir" },
251 { __LINE__, 0,
"attrib /S -H attr-dir",
TRUE,
FALSE,
"attr-dir" },
253 { __LINE__, 0,
"attrib /S +H attr-d*",
TRUE,
FALSE,
"attr-d*" },
255 { __LINE__, 0,
"attrib /S -H attr-d*",
TRUE,
FALSE,
"attr-d*" },
257 { __LINE__, 0,
"attrib /S +H attr-dir\\d*",
TRUE,
FALSE,
"attr-dir\\d*" },
259 { __LINE__, 0,
"attrib /S -H attr-dir\\d*",
TRUE,
FALSE,
"attr-dir\\d*" },
261 { __LINE__, 0,
"attrib /S -H attr-dir\\dir1",
TRUE,
FALSE,
"attr-dir\\dir1" },
262 { __LINE__, 0,
"attrib /S -H attr-dir",
TRUE,
FALSE,
"attr-dir" },
263 { __LINE__, 0,
"cmd /c if exist attr-dir rmdir /s /q attr-dir" },
266 { __LINE__, 0,
"cmd /c if exist attr-dir rmdir /s /q attr-dir" },
267 { __LINE__, 0,
"cmd /c mkdir attr-dir",
FALSE,
FALSE },
269 { __LINE__, 0,
"cmd /c if exist attr-dir echo OK",
TRUE,
FALSE,
"OK" },
270 { __LINE__, 0,
"cmd /c mkdir attr-dir\\dir1",
FALSE,
FALSE },
271 { __LINE__, 0,
"cmd /c if exist attr-dir\\dir1 echo OK",
TRUE,
FALSE,
"OK" },
273 { __LINE__, 0,
"attrib /S /D +H attr-dir\\dir1",
FALSE,
FALSE },
274 { __LINE__, 0,
"attrib /S /D attr-dir\\dir1",
TRUE,
FALSE,
" H " },
275 { __LINE__, 0,
"attrib /S /D -H attr-dir\\dir1",
FALSE,
FALSE },
277 { __LINE__, 0,
"attrib /S /D +H attr-dir",
FALSE,
FALSE },
279 { __LINE__, 0,
"attrib /S /D -H attr-dir",
FALSE,
FALSE },
281 { __LINE__, 0,
"attrib /S /D +H attr-d*",
FALSE,
FALSE },
283 { __LINE__, 0,
"attrib /S /D -H attr-d*",
FALSE,
FALSE },
285 { __LINE__, 0,
"attrib /S /D +H attr-dir\\d*",
FALSE,
FALSE },
286 { __LINE__, 0,
"attrib /S /D attr-dir\\dir1",
TRUE,
FALSE,
" H " },
287 { __LINE__, 0,
"attrib /S /D -H attr-dir\\d*",
FALSE,
FALSE },
289 { __LINE__, 0,
"attrib /S /D -H attr-dir\\dir1",
FALSE,
FALSE },
290 { __LINE__, 0,
"attrib /S /D -H attr-dir",
FALSE,
FALSE },
291 { __LINE__, 0,
"cmd /c if exist attr-dir rmdir /s /q attr-dir" },
294 { __LINE__, 0,
"cmd /c if exist attr-dir rmdir /s /q attr-dir" },
295 { __LINE__, 0,
"cmd /c mkdir attr-dir",
FALSE,
FALSE },
297 { __LINE__, 0,
"cmd /c if exist attr-dir echo OK",
TRUE,
FALSE,
"OK" },
298 { __LINE__, 0,
"cmd /c mkdir attr-dir\\dir1",
FALSE,
FALSE },
299 { __LINE__, 0,
"cmd /c if exist attr-dir\\dir1 echo OK",
TRUE,
FALSE,
"OK" },
300 { __LINE__, 0,
"cmd /c copy NUL attr-dir\\dir1\\attr-test.txt ",
TRUE,
FALSE },
301 { __LINE__, 0,
"attrib attr-dir\\dir1\\attr-test.txt",
TRUE,
FALSE,
NULL,
NULL,
" H " },
302 { __LINE__, 0,
"attrib /S +H attr-dir\\dir1\\attr-test.txt",
FALSE,
FALSE },
303 { __LINE__, 0,
"attrib /S attr-test.txt",
TRUE,
FALSE,
" H " },
304 { __LINE__, 0,
"attrib /S -H attr-dir\\dir1\\attr-test.txt",
FALSE,
FALSE },
306 { __LINE__, 0,
"attrib /S +H attr-test.txt",
FALSE,
FALSE },
307 { __LINE__, 0,
"attrib /S attr-test.txt",
TRUE,
FALSE,
" H " },
308 { __LINE__, 0,
"attrib /S -H attr-test.txt",
FALSE,
FALSE },
310 { __LINE__, 0,
"attrib /S +H",
FALSE,
FALSE },
311 { __LINE__, 0,
"attrib /S attr-test.txt",
TRUE,
FALSE,
" H " },
312 { __LINE__, 0,
"attrib /S attr-tes*.*",
TRUE,
FALSE,
" H " },
313 { __LINE__, 0,
"attrib /S -H",
FALSE,
FALSE },
316 { __LINE__, 0,
"cmd /c if exist attr-dir/dir1/test.txt attrib -H attr-dir/dir1/test.txt" },
317 { __LINE__, 0,
"cmd /c if exist attr-dir/dir1/test.txt del /Q attr-dir/dir1/test.txt" },
318 { __LINE__, 0,
"cmd /c if exist attr-dir rmdir /s /q attr-dir" },
367 if (phOutputRead && phOutputRead == phErrorRead)
372 else if (phErrorRead)
407 DWORD dwExitCode, dwWait;
411 BOOL bStdOutput, bStdError;
414 memset(&si, 0,
sizeof(si));
420 skip(
"PrepareForRedirect failed\n");
444 bStdOutput = dwRead != 0;
449 bStdError = dwRead != 0;
458 ok(
pEntry->bStdOutput == bStdOutput,
459 "Line %u: bStdOutput %d vs %d\n",
463 "Line %u: bStdError %d vs %d\n",
466 ok(
pEntry->dwExitCode == dwExitCode,
467 "Line %u: dwExitCode %ld vs %ld\n",
470 if (
pEntry->OutputContains)
473 "Line %u: szOut was '%s'\n",
477 if (
pEntry->ErrorContains)
480 "Line %u: szErr was '%s'\n",
484 if (
pEntry->OutputNotContains)
487 "Line %u: szOut was '%s'\n",
491 if (
pEntry->ErrorNotContains)
494 "Line %u: szErr was '%s'\n",
static void DoTestEntry(const TEST_ENTRY *pEntry)
static BOOL MyDuplicateHandle(HANDLE hFile, PHANDLE phFile, BOOL bInherit)
BOOL WINAPI GetExitCodeProcess(IN HANDLE hProcess, IN LPDWORD lpExitCode)
char * strstr(char *String1, char *String2)
static struct cd_image cd
_In_ BOOL _In_ HANDLE hProcess
static const TEST_ENTRY s_echo_entries[]
struct TEST_ENTRY TEST_ENTRY
static const TEST_ENTRY s_attrib_entries[]
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
#define DUPLICATE_SAME_ACCESS
const char * OutputContains
static const TEST_ENTRY s_cd_entries[]
const char * ErrorContains
static const TEST_ENTRY s_exit_entries[]
#define STARTF_USESTDHANDLES
static BOOL PrepareForRedirect(STARTUPINFOA *psi, PHANDLE phInputWrite, PHANDLE phOutputRead, PHANDLE phErrorRead)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
#define GetCurrentProcess()
BOOL WINAPI CreatePipe(PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize)
const char * ErrorNotContains
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
BOOL WINAPI TerminateProcess(IN HANDLE hProcess, IN UINT uExitCode)
const char * OutputNotContains
static struct sockaddr_in sa
BOOL WINAPI DuplicateHandle(IN HANDLE hSourceProcessHandle, IN HANDLE hSourceHandle, IN HANDLE hTargetProcessHandle, OUT LPHANDLE lpTargetHandle, IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwOptions)
static const TEST_ENTRY s_pushd_entries[]
BOOL WINAPI PeekNamedPipe(HANDLE hNamedPipe, LPVOID lpBuffer, DWORD nBufferSize, LPDWORD lpBytesRead, LPDWORD lpTotalBytesAvail, LPDWORD lpBytesLeftThisMessage)