OSDN Git Service

* cygrun.c: Move here from ../cygwin.
authorcorinna <corinna>
Wed, 22 Jan 2003 15:18:58 +0000 (15:18 +0000)
committercorinna <corinna>
Wed, 22 Jan 2003 15:18:58 +0000 (15:18 +0000)
* Makefile.in: Build cygrun.exe.
* winsup.api/winsup.exp: Expect cygrun.exe in $rootme.

winsup/testsuite/ChangeLog
winsup/testsuite/Makefile.in
winsup/testsuite/cygrun.c [new file with mode: 0644]
winsup/testsuite/winsup.api/winsup.exp

index d16f1f4..210f06f 100644 (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.
index b74f4c0..9d48e1f 100644 (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 $@ $<
+
diff --git a/winsup/testsuite/cygrun.c b/winsup/testsuite/cygrun.c
new file mode 100644 (file)
index 0000000..63d9863
--- /dev/null
@@ -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;
+}
index 6d71fa9..c79889e 100644 (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)"