From d3027a30a73315cd901a935e0ffcb8fe82eaefa0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Tue, 7 Mar 2000 00:15:03 -0800
Subject: [PATCH] no watchdog when running testsuite in GDB

Rev: bin/test_pike.pike:1.37
Rev: src/Makefile.in:1.180
---
 bin/test_pike.pike | 44 ++++++++++++++++++++++++++++++--------------
 src/Makefile.in    |  4 ++--
 2 files changed, 32 insertions(+), 16 deletions(-)

diff --git a/bin/test_pike.pike b/bin/test_pike.pike
index 5da02d956d..43d76fc72e 100755
--- a/bin/test_pike.pike
+++ b/bin/test_pike.pike
@@ -1,6 +1,6 @@
 #!/usr/local/bin/pike
 
-/* $Id: test_pike.pike,v 1.36 2000/03/01 20:30:10 hubbe Exp $ */
+/* $Id: test_pike.pike,v 1.37 2000/03/07 08:14:57 hubbe Exp $ */
 
 import Stdio;
 
@@ -73,10 +73,13 @@ array find_testsuites(string dir)
   return ret;
 }
 
-
 #if constant(thread_create)
 #define WATCHDOG
+
+object watchdog;
+
 #define WATCHDOG_PIPE
+object watchdog_pipe;
 #else
 #if constant(signal) && constant(signum)
 #define WATCHDOG
@@ -84,6 +87,11 @@ array find_testsuites(string dir)
 #endif
 #endif	  
 
+
+#ifdef WATCHDOG
+int use_watchdog=1;
+#endif
+
 int main(int argc, string *argv)
 {
   int e, verbose, successes, errors, t, check;
@@ -112,6 +120,7 @@ int main(int argc, string *argv)
   add_constant("RUNPIKE",Array.map(args,Process.sh_quote)*" ");
 
   foreach(Getopt.find_all_options(argv,aggregate(
+    ({"no-watchdog",Getopt.NO_ARG,({"--no-watchdog"})}),
     ({"watchdog",Getopt.HAS_ARG,({"--watchdog"})}),
     ({"help",Getopt.NO_ARG,({"-h","--help"})}),
     ({"verbose",Getopt.NO_ARG,({"-v","--verbose"})}),
@@ -131,6 +140,10 @@ int main(int argc, string *argv)
     {
       switch(opt[0])
       {
+	case "no-watchdog":
+	  use_watchdog=0;
+	  break;
+
 	case "watchdog":
 #ifdef WATCHDOG
 	  int cnt=0;
@@ -252,20 +265,22 @@ int main(int argc, string *argv)
 #ifdef WATCHDOG
   int watchdog_time=time();
 
+  if(use_watchdog)
+  {
 #ifdef WATCHDOG_PIPE
-  object watchdog_tmp=Stdio.File();
-  object watchdog_pipe=watchdog_tmp->pipe(Stdio.PROP_IPC);
-  object watchdog=Process.create_process(
-    backtrace()[0][3] + ({  "--watchdog="+getpid() }),
-    (["stdin":watchdog_tmp ]));
-  destruct(watchdog_tmp);
+    object watchdog_tmp=Stdio.File();
+    watchdog_pipe=watchdog_tmp->pipe(Stdio.PROP_IPC);
+    watchdog=Process.create_process(
+      backtrace()[0][3] + ({  "--watchdog="+getpid() }),
+      (["stdin":watchdog_tmp ]));
+    destruct(watchdog_tmp);
 #endif
-
+    
 #ifdef WATCHDOG_SIGNAL
-  object watchdog=Process.create_process(
-    backtrace()[0][3] + ({  "--watchdog="+getpid() }) );
+    watchdog=Process.create_process(
+      backtrace()[0][3] + ({  "--watchdog="+getpid() }) );
 #endif
-
+  }
 #endif
 
   argv=Getopt.get_args(argv,1)+testsuites;
@@ -299,7 +314,7 @@ int main(int argc, string *argv)
 	for(e=start;e<sizeof(tests);e++)
 	{
 #ifdef WATCHDOG
-	  if(time() - watchdog_time > 30)
+	  if(use_watchdog && time() - watchdog_time > 30)
 	  {
 	    watchdog_time=time();
 //	    werror("{WATCHDOG} Ping!\n");
@@ -625,7 +640,8 @@ int main(int argc, string *argv)
   werror("Total tests: %d  (%d tests skipped)\n",successes+errors,skipped);
 
 #ifdef WATCHDOG_SIGNAL
-  watchdog->kill(signum("SIGKILL"));
+  if(use_watchdog)
+    watchdog->kill(signum("SIGKILL"));
 #endif
 
   return errors;
diff --git a/src/Makefile.in b/src/Makefile.in
index 9b03edf9de..bc02700e86 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,5 +1,5 @@
 #
-# $Id: Makefile.in,v 1.179 2000/02/26 03:08:49 hubbe Exp $
+# $Id: Makefile.in,v 1.180 2000/03/07 08:15:03 hubbe Exp $
 #
 
 # This line is needed on some machines.
@@ -370,7 +370,7 @@ gdb_verify: module_testsuites testsuite master.pike
 	@echo >>.gdbinit handle SIGUSR2 nostop noprint pass
 	@echo >>.gdbinit handle SIGLWP nostop noprint pass
 	@echo >>.gdbinit break debug_fatal
-	@echo >>.gdbinit run -m$(TMP_BUILDDIR)/master.pike $(PIKEOPTS) $(TMP_BINDIR)/test_pike.pike -v -v -f $(TESTARGS)
+	@echo >>.gdbinit run -m$(TMP_BUILDDIR)/master.pike $(PIKEOPTS) $(TMP_BINDIR)/test_pike.pike --no-watchdog -v -v -f $(TESTARGS)
 	gdb ./pike
 	@rm .gdbinit
 
-- 
GitLab