406{
409 DWORD dwExitCode, dwWait;
413 BOOL bStdOutput, bStdError;
415
416 memset(&si, 0,
sizeof(si));
419
421 {
422 skip(
"PrepareForRedirect failed\n");
423 return;
424 }
425
427 {
431 {
433 }
437 }
438 else
439 {
440 dwExitCode = 8888;
441 }
442
446 bStdOutput = dwRead != 0;
447
451 bStdError = dwRead != 0;
452
459
461 "Line %u: bStdOutput %d vs %d\n",
463
465 "Line %u: bStdError %d vs %d\n",
467
468 ok(
pEntry->dwExitCode == dwExitCode,
469 "Line %u: dwExitCode %ld vs %ld\n",
471
472 if (
pEntry->OutputContains)
473 {
475 "Line %u: szOut was '%s'\n",
477 }
478
479 if (
pEntry->ErrorContains)
480 {
482 "Line %u: szErr was '%s'\n",
484 }
485
486 if (
pEntry->OutputNotContains)
487 {
489 "Line %u: szOut was '%s'\n",
491 }
492
493 if (
pEntry->ErrorNotContains)
494 {
496 "Line %u: szErr was '%s'\n",
498 }
499}
char * strstr(char *String1, char *String2)
BOOL WINAPI GetExitCodeProcess(IN HANDLE hProcess, IN LPDWORD lpExitCode)
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)
BOOL WINAPI TerminateProcess(IN HANDLE hProcess, IN UINT uExitCode)
static BOOL PrepareForRedirect(STARTUPINFOA *psi, PHANDLE phInputWrite, PHANDLE phOutputRead, PHANDLE phErrorRead)
BOOL WINAPI PeekNamedPipe(HANDLE hNamedPipe, LPVOID lpBuffer, DWORD nBufferSize, LPDWORD lpBytesRead, LPDWORD lpTotalBytesAvail, LPDWORD lpBytesLeftThisMessage)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
#define STARTF_USESTDHANDLES