diff --git a/bin/test_pike.pike b/bin/test_pike.pike index 43d76fc72e8bf04706e1f9b9ca0fef9c14448c75..237f42195dce7c30c82a82148357cd6391a50f89 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.37 2000/03/07 08:14:57 hubbe Exp $ */ +/* $Id: test_pike.pike,v 1.38 2000/03/20 20:57:34 hubbe Exp $ */ import Stdio; @@ -181,9 +181,9 @@ int main(int argc, string *argv) while(1) { sleep(10); - if(exit_quietly) exit(0); + if(exit_quietly) _exit(0); #ifndef __NT__ - if(!kill(pid, 0)) exit(0); + if(!kill(pid, 0)) _exit(0); #endif // werror("[WATCHDOG] t=%d\n",time()-last_time); @@ -192,12 +192,12 @@ int main(int argc, string *argv) { werror("\n[WATCHDOG] Pike testsuite timeout, sending SIGABRT.\n"); kill(pid, signum("SIGABRT")); - for(int q=0;q<60;q++) if(!kill(pid,0)) exit(0); else sleep(1); + for(int q=0;q<60;q++) if(!kill(pid,0)) _exit(0); else sleep(1); werror("\n" "[WATCHDOG] This is your friendly watchdog again...\n" "[WATCHDOG] testsuite failed to die from SIGABRT, sending SIGKILL\n"); kill(pid, signum("SIGKILL")); - for(int q=0;q<60;q++) if(!kill(pid,0)) exit(0); else sleep(1); + for(int q=0;q<60;q++) if(!kill(pid,0)) _exit(0); else sleep(1); werror("\n" "[WATCHDOG] This is your friendly watchdog AGAIN...\n" "[WATCHDOG] SIGKILL, SIGKILL, SIGKILL, DIE!\n"); @@ -205,14 +205,14 @@ int main(int argc, string *argv) kill(pid, signum("SIGKILL")); kill(pid, signum("SIGKILL")); kill(pid, signum("SIGKILL")); - for(int q=0;q<60;q++) if(!kill(pid,0)) exit(0); else sleep(1); + for(int q=0;q<60;q++) if(!kill(pid,0)) _exit(0); else sleep(1); werror("\n" "[WATCHDOG] Giving up, must be a device wait.. :(\n"); - exit(0); + _exit(0); } } #else - exit(1); + _exit(1); #endif break; @@ -641,7 +641,21 @@ int main(int argc, string *argv) #ifdef WATCHDOG_SIGNAL if(use_watchdog) + { watchdog->kill(signum("SIGKILL")); + watchdog->wait(); + } +#endif + +#ifdef WATCHDOG_PIPE + if(use_watchdog) + { + destruct(watchdog_pipe); +#if constant(signum) + catch { watchdog->kill(signum("SIGKILL")); }; +#endif + watchdog->wait(); + } #endif return errors;