404{
407 DWORD dwExitCode, dwWait;
411 BOOL bStdOutput, bStdError;
413
414 memset(&si, 0,
sizeof(si));
417
419 {
420 skip(
"PrepareForRedirect failed\n");
421 return;
422 }
423
425 {
429 {
431 }
435 }
436 else
437 {
438 dwExitCode = 8888;
439 }
440
444 bStdOutput = dwRead != 0;
445
449 bStdError = dwRead != 0;
450
457
458 ok(
pEntry->bStdOutput == bStdOutput,
459 "Line %u: bStdOutput %d vs %d\n",
461
463 "Line %u: bStdError %d vs %d\n",
465
466 ok(
pEntry->dwExitCode == dwExitCode,
467 "Line %u: dwExitCode %ld vs %ld\n",
469
470 if (
pEntry->OutputContains)
471 {
473 "Line %u: szOut was '%s'\n",
475 }
476
477 if (
pEntry->ErrorContains)
478 {
480 "Line %u: szErr was '%s'\n",
482 }
483
484 if (
pEntry->OutputNotContains)
485 {
487 "Line %u: szOut was '%s'\n",
489 }
490
491 if (
pEntry->ErrorNotContains)
492 {
494 "Line %u: szErr was '%s'\n",
496 }
497}
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