Hi list, On Friday, 13. feb 2009, myself wrote: > would it be possible to use 'pan' to monitoring a test? The timeout option > (-t) would be a nice feature to force a kill after a specified amount of > time to a test that might run amok (at least in my automated test > environment without a human operator in front of the system under test). > But when I'm using the -t option it runs the given command n times until > the time is over. Is there a trick to let 'pan' run the given command only > one times?
Please find attached a small patch to add this simple feature to pan without changing its previous behaviour. Running a test only once by pan for a specific time is currently also possible without this patch. Just give the '-t <time>' option *and* than the '-s 1' option. But it is racy yet, to do so. Adding this patch removes this race. With $ pan <....> -t 60s -s 1 -- my_test the my_test will now run for one time only. If everyhing went ok, it returns happy within the 60 seconds period. If my_test runs amok, it will never return and pan will kill it after 60 seconds. --8<--------8<-------8<-------8<--------8<-------8<-----8<--------8<------ Subject: limit starts when running for certain time, too From: Marc Kleine-Budde <[email protected]> This patches add a feature to limit the number of times a test is started when running for a certain time instead of infinite runs. This could be used to give a timeout for a certain test. Signed-off-by: Marc Kleine-Budde <[email protected]> Acked-by: Juergen Beisert <[email protected]> --- pan/pan.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) Index: ltp-full-20090131/pan/pan.c =================================================================== --- ltp-full-20090131.orig/pan/pan.c +++ ltp-full-20090131/pan/pan.c @@ -164,6 +164,7 @@ main(int argc, char **argv) int failcnt = 0; /* count of total testcases that failed. */ int err, i; int starts = -1; + int timed = 0; int run_time = -1; char modifier = 'm'; int ret = 0; int stop; int go_idle; @@ -254,7 +255,7 @@ main(int argc, char **argv) } printf("PAN will run for %d seconds\n", run_time); } - starts = 0; //-t implies run as many starts as possible + timed = 1; //-t implies run as many starts as possible, by default break; case 'x': /* number of tags to keep running */ keep_active = atoi(optarg); @@ -347,7 +348,9 @@ main(int argc, char **argv) /* Supply a default for starts. If we are in sequential mode, use * the number of commands available; otherwise 1. */ - if (starts == -1) { + if (timed == 1 && starts == -1) { /* timed, infinite by default */ + starts = -1; + } else if (starts == -1) { if (sequential) { starts = coll->cnt; } else { Regards, Juergen -- Pengutronix e.K. | Juergen Beisert | Linux Solutions for Science and Industry | Phone: +49-8766-939 228 | Vertretung Sued/Muenchen, Germany | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de/ | ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
