* cygrun.c: Move here from ../cygwin.

* Makefile.in: Build cygrun.exe.
	* winsup.api/winsup.exp: Expect cygrun.exe in $rootme.
This commit is contained in:
Corinna Vinschen 2003-01-22 15:18:58 +00:00
parent 89f7e8d1d3
commit 19876644c7
4 changed files with 82 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2003-01-22 Corinna Vinschen <corinna@vinschen.de>
* cygrun.c: Move here from ../cygwin.
* Makefile.in: Build cygrun.exe.
* winsup.api/winsup.exp: Expect cygrun.exe in $rootme.
2003-01-21 Christopher Faylor <cgf@redhat.com>
* Makefile.in: Find tcl library in the right place.

View File

@ -87,7 +87,7 @@ ifdef VERBOSE
RUNTESTFLAGS = -v
endif
RUNTIME=$(cygwin_build)/new-cygwin1.dll $(cygwin_build)/new-libcygwin.a $(cygwin_build)/cygrun.exe
RUNTIME=$(cygwin_build)/new-cygwin1.dll $(cygwin_build)/new-libcygwin.a cygrun.exe
TESTSUP_LIB_NAME:=libltp.a
TESTSUP_OFILES:=${sort ${addsuffix .o,${basename ${notdir ${wildcard $(libltp_srcdir)/lib/*.c}}}}}
@ -180,3 +180,10 @@ check: $(TESTSUP_LIB_NAME) $(RUNTIME) testsuite/site.exp
export TCL_LIBRARY ; fi ; \
PATH=$(bupdir)/cygwin:$${PATH} ;\
$(RUNTEST) --tool winsup $(RUNTESTFLAGS)
cygrun.o: cygrun.c
$(CC) $(MINGW_CFLAGS) -o $@ -c $<
cygrun.exe : cygrun.o
$(CC) ${MINGW_LDFLAGS} -mno-cygwin -o $@ $<

67
winsup/testsuite/cygrun.c Normal file
View File

@ -0,0 +1,67 @@
/* cygrun.c: testsuite support program
Copyright 1999, 2000, 2001, 2002 Red Hat, Inc.
This file is part of Cygwin.
This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
/* This program is intended to be used only by the testsuite. It runs
programs without using the cygwin api, so that the just-built dll
can be tested without interference from the currently installed
dll. */
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
int
main (int argc, char **argv)
{
STARTUPINFO sa;
PROCESS_INFORMATION pi;
DWORD ec = 1;
char *p;
if (argc < 2)
{
fprintf (stderr, "Usage: cygrun [program]\n");
exit (0);
}
SetEnvironmentVariable ("CYGWIN_TESTING", "1");
if ((p = getenv ("CYGWIN")) == NULL || (strstr (p, "ntsec") == NULL))
{
char buf[4096];
if (!p)
{
p = buf;
p[0] = '\0';
}
else
{
strcpy (buf, p);
strcat (buf, " ");
}
strcat(buf, "ntsec");
SetEnvironmentVariable ("CYGWIN", buf);
}
memset (&sa, 0, sizeof (sa));
memset (&pi, 0, sizeof (pi));
if (!CreateProcess (0, argv[1], 0, 0, 1, 0, 0, 0, &sa, &pi))
{
fprintf (stderr, "CreateProcess %s failed\n", argv[1]);
exit (1);
}
WaitForSingleObject (pi.hProcess, INFINITE);
GetExitCodeProcess (pi.hProcess, &ec);
CloseHandle (pi.hProcess);
CloseHandle (pi.hThread);
return ec;
}

View File

@ -58,7 +58,7 @@ foreach src [glob -nocomplain $srcdir/$subdir/*.c $srcdir/$subdir/*/*.c] {
} else {
set redirect_output /dev/null
}
ws_spawn "$runtime_root/cygrun ./$base.exe > $redirect_output"
ws_spawn "$rootme/cygrun ./$base.exe > $redirect_output"
if { $rv != "" } {
verbose -log "$testcase: $rv"
fail "$testcase (execute)"