Cygwin: testsuite: Add '-notimeout' option to cygrun

Add '-notimeout' option for cygrun.  This is very useful when using it
to run a test standalone and under a debugger.

Also: warn about excess arguments
This commit is contained in:
Jon Turney 2023-07-20 13:54:09 +01:00
parent 2e7332d6bd
commit c88ac48eab
No known key found for this signature in database
GPG Key ID: C7C86F0370285C81
1 changed files with 22 additions and 4 deletions

View File

@ -23,24 +23,42 @@ main (int argc, char **argv)
DWORD res;
DWORD ec = 1;
char *p;
DWORD timeout = 60 * 1000;
if (argc < 2)
{
fprintf (stderr, "Usage: cygrun [program]\n");
exit (0);
exit (1);
}
int i;
for (i = 1; i < argc; ++i)
{
if (strcmp (argv[i], "-notimeout") == 0)
timeout = INFINITE;
else
break;
}
char *command = argv[i];
if (i < (argc-1))
{
fprintf (stderr, "cygrun: excess arguments\n");
exit (1);
}
SetEnvironmentVariable ("CYGWIN_TESTING", "1");
memset (&sa, 0, sizeof (sa));
memset (&pi, 0, sizeof (pi));
if (!CreateProcess (0, argv[1], 0, 0, 1, 0, 0, 0, &sa, &pi))
if (!CreateProcess (0, command, 0, 0, 1, 0, 0, 0, &sa, &pi))
{
fprintf (stderr, "CreateProcess %s failed\n", argv[1]);
fprintf (stderr, "CreateProcess %s failed\n", command);
exit (1);
}
res = WaitForSingleObject (pi.hProcess, 60 * 1000);
res = WaitForSingleObject (pi.hProcess, timeout);
if (res == WAIT_TIMEOUT)
{