blob: ce7c35adceb49cf18269fa98300c21ebe8bd8090 [file] [log] [blame]
plars4a120e82004-09-02 18:56:06 +00001#!/bin/sh
2################################################################################
3## ##
4## Copyright (c) International Business Machines Corp., 2001 ##
5## ##
6## This program is free software; you can redistribute it and#or modify ##
7## it under the terms of the GNU General Public License as published by ##
8## the Free Software Foundation; either version 2 of the License, or ##
9## (at your option) any later version. ##
10## ##
11## This program is distributed in the hope that it will be useful, but ##
12## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
13## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ##
14## for more details. ##
15## ##
16## You should have received a copy of the GNU General Public License ##
17## along with this program; if not, write to the Free Software ##
18## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ##
19## ##
20################################################################################
21# File: runltp
22#
23# Description: This script can be used to the tests in the LTP test suite
24#
25# Authors: Manoj Iyer - manjo@mail.utexas.edu
26# Robbe Williamson - robbiew@us.ibm.com
27#
28# History: Oct 07 2003 - Modified - Manoj Iyer
29# - use functions
30# - clean up on script exit
31# - error checking etc.
32#
33# Oct 08 2003 - Modified - Manoj Iyer
34# - fixed bug in creating results directory
subrata_modaka1fd64b2007-04-11 11:24:49 +000035# - all checks should be enlclosed in " " to avoid bash error
subrata_modak14390fd2009-05-19 09:39:11 +000036# - exit with error if ltp-pan is not found in pan directory
subrata_modakbc833d32007-07-25 10:12:02 +000037#
38# Jul 22 2007 - Modified - Ricardo Salveti de Araujo
39# - added support to put more then one file at CMDLINE (-f)
40# - added a new option, that the user can pass the address of
41# the command file, and it'll use wget to get it (-w)
42# - now -s does the grep at the selected command files (default,
43# -f or -w)
44#
45# Jul 23 2007 - Modified - Ricardo Salveti de Araujo
46# - added flag to get the command file that has all failed tests
subrata_modak6838ec32007-09-14 10:10:12 +000047#
48# Sep 11 2007 - Modified - Subrata Modak
49# - added option to create Failed File if it is not an absolute path
50# - added option to create Output File if it is not an absolute path
51# - added option to create Failed File compulsory, even if user has not mentioned it
52#
subrata_modak5d7deea2007-09-15 13:51:36 +000053# Sep 14 2007 - Modified - Ricardo Salveti de Araujo
54# - cleaning and removing duplicated code
55#
subrata_modake099b2a2007-10-29 12:22:01 +000056# Oct 27 2007 - Modified - Ricardo Salveti de Araujo and Subrata Modak
57# - better ways to integrate "ltp/tools/genload/stress" with "ltp/runltp"
subrata_modake47fb352007-11-25 17:03:49 +000058# Nov 24 2007 - Modified - Subrata Modak
59# - Added a new option to generate output in HTML format also. Also retaining
60# the original test format
subrata_modakf376b482007-11-28 11:30:54 +000061# Nov 28 2007 - Modified - Subrata Modak
62# - Added a new option to mail back LTP reports
subrata_modak43938212008-05-19 08:48:46 +000063# May 19 2008 - Modified - Subrata Modak
64# - Added capability for default Log file generation
subrata_modake099b2a2007-10-29 12:22:01 +000065#
subrata_modak6838ec32007-09-14 10:10:12 +000066#################################################################################
subrata_modakbc833d32007-07-25 10:12:02 +000067
plars4a120e82004-09-02 18:56:06 +000068
69
70setup()
71{
72 cd `dirname $0` || \
73 {
74 echo "FATAL: unable to change directory to $(dirname $0)"
75 exit 1
76 }
77 export LTPROOT=${PWD}
78 export TMPBASE="/tmp"
plars4a120e82004-09-02 18:56:06 +000079 export PATH="${PATH}:${LTPROOT}/testcases/bin"
80
81 [ -d $LTPROOT/testcases/bin ] ||
82 {
83 echo "FATAL: Test suite not installed correctly"
84 echo "INFO: as root user type 'make ; make install'"
85 exit 1
86 }
87
subrata_modak14390fd2009-05-19 09:39:11 +000088 [ -e $LTPROOT/pan/ltp-pan ] ||
plars4a120e82004-09-02 18:56:06 +000089 {
subrata_modak14390fd2009-05-19 09:39:11 +000090 echo "FATAL: Test suite driver 'ltp-pan' not found"
plars4a120e82004-09-02 18:56:06 +000091 echo "INFO: as root user type 'make ; make install'"
92 exit 1
93 }
94}
95
mreed1091696422006-05-03 19:07:22 +000096version_of_ltp()
97{
subrata_modaka1fd64b2007-04-11 11:24:49 +000098 head -n 1 $LTPROOT/ChangeLog
99 exit 0
mreed1091696422006-05-03 19:07:22 +0000100}
plars4a120e82004-09-02 18:56:06 +0000101
102usage()
103{
104 cat <<-EOF >&2
105
subrata_modakf376b482007-11-28 11:30:54 +0000106 usage: ./${0##*/} [ -a EMAIL_TO ] [ -c NUM_PROCS ] [ -C FAILCMDFILE ] [ -d TMPDIR ]
subrata_modake47fb352007-11-25 17:03:49 +0000107 [ -D NUM_PROCS,NUM_FILES,NUM_BYTES,CLEAN_FLAG ] -e [ -f CMDFILES(,...) ] [ -g HTMLFILE]
subrata_modake099b2a2007-10-29 12:22:01 +0000108 [ -i NUM_PROCS ] [ -l LOGFILE ] [ -m NUM_PROCS,CHUNKS,BYTES,HANGUP_FLAG ]
109 -N -n [ -o OUTPUTFILE ] -p -q [ -r LTPROOT ] [ -s PATTERN ] [ -t DURATION ]
subrata_modakd9fb3862008-12-29 11:25:36 +0000110 -v [ -w CMDFILEADDR ] [ -x INSTANCES ] [ -b DEVICE ] [-B DEVICE_FS_TYPE]
plars4a120e82004-09-02 18:56:06 +0000111
subrata_modak08dde6f2007-11-28 11:02:51 +0000112 -a EMAIL_TO EMAIL all your Reports to this E-mail Address
subrata_modake099b2a2007-10-29 12:22:01 +0000113 -c NUM_PROCS Run LTP under additional background CPU load
114 [NUM_PROCS = no. of processes creating the CPU Load by spinning over sqrt()
115 (Defaults to 1 when value)]
subrata_modakbc833d32007-07-25 10:12:02 +0000116 -C FAILCMDFILE Command file with all failed test cases.
plars4a120e82004-09-02 18:56:06 +0000117 -d TMPDIR Directory where temporary files will be created.
subrata_modake099b2a2007-10-29 12:22:01 +0000118 -D NUM_PROCS,NUM_FILES,NUM_BYTES,CLEAN_FLAG
119 Run LTP under additional background Load on Secondary Storage (Seperate by comma)
120 [NUM_PROCS = no. of processes creating Storage Load by spinning over write()]
121 [NUM_FILES = Write() to these many files (Defaults to 1 when value 0 or undefined)]
122 [NUM_BYTES = write these many bytes (defaults to 1GB, when value 0 or undefined)]
123 [CLEAN_FLAG = unlink file to which random data written, when value 1]
mreed1091696422006-05-03 19:07:22 +0000124 -e Prints the date of the current LTP release
subrata_modakbc833d32007-07-25 10:12:02 +0000125 -f CMDFILES Execute user defined list of testcases (separate with ',')
subrata_modake47fb352007-11-25 17:03:49 +0000126 -g HTMLFILE Create an additional HTML output format
plars4a120e82004-09-02 18:56:06 +0000127 -h Help. Prints all available options.
subrata_modake099b2a2007-10-29 12:22:01 +0000128 -i NUM_PROCS Run LTP under additional background Load on IO Bus
129 [NUM_PROCS = no. of processes creating IO Bus Load by spinning over sync()]
plars4a120e82004-09-02 18:56:06 +0000130 -l LOGFILE Log results of test in a logfile.
subrata_modake099b2a2007-10-29 12:22:01 +0000131 -m NUM_PROCS,CHUNKS,BYTES,HANGUP_FLAG
132 Run LTP under additional background Load on Main memory (Seperate by comma)
133 [NUM_PROCS = no. of processes creating main Memory Load by spinning over malloc()]
134 [CHUNKS = malloc these many chunks (default is 1 when value 0 or undefined)]
135 [BYTES = malloc CHUNKS of BYTES bytes (default is 256MB when value 0 or undefined) ]
136 [HANGUP_FLAG = hang in a sleep loop after memory allocated, when value 1]
plars4a120e82004-09-02 18:56:06 +0000137 -N Run all the networking tests.
138 -n Run LTP with network traffic in background.
139 -o OUTPUTFILE Redirect test output to a file.
140 -p Human readable format logfiles.
141 -q Print less verbose output to screen.
142 -r LTPROOT Fully qualified path where testsuite is installed.
subrata_modaka1fd64b2007-04-11 11:24:49 +0000143 -s PATTERN Only run test cases which match PATTERN.
plars4a120e82004-09-02 18:56:06 +0000144 -t DURATION Execute the testsuite for given duration. Examples:
145 -t 60s = 60 seconds
146 -t 45m = 45 minutes
147 -t 24h = 24 hours
148 -t 2d = 2 days
subrata_modak8c138332008-01-28 11:19:32 +0000149 -T REPETITION Execute the testsuite for REPETITION no. of times
robbiew7d43d772005-02-07 20:07:30 +0000150 -v Print more verbose output to screen.
subrata_modakbc833d32007-07-25 10:12:02 +0000151 -w CMDFILEADDR Uses wget to get the user's list of testcases.
plars4a120e82004-09-02 18:56:06 +0000152 -x INSTANCES Run multiple instances of this testsuite.
subrata_modakd9fb3862008-12-29 11:25:36 +0000153 -b DEVICE Some tests require an unmounted block device
154 to run correctly.
155 -B DEVICE_FS_TYPE The file system of test block devices.
156
plars4a120e82004-09-02 18:56:06 +0000157
subrata_modake099b2a2007-10-29 12:22:01 +0000158 example: ./${0##*/} -c 2 -i 2 -m 2,4,10240,1 -D 2,10,10240,1 -p -q -l /tmp/result-log.$$ -o /tmp/result-output.$$ -C /tmp/result-failed.$$ -d ${PWD}
plars4a120e82004-09-02 18:56:06 +0000159
plars4a120e82004-09-02 18:56:06 +0000160
161 EOF
162exit 0
163}
164
plars4a120e82004-09-02 18:56:06 +0000165main()
166{
subrata_modakbc833d32007-07-25 10:12:02 +0000167 local CMDFILES=""
plars4a120e82004-09-02 18:56:06 +0000168 local PRETTY_PRT=""
subrata_modak5d7deea2007-09-15 13:51:36 +0000169 local ALT_DIR_OUT=0
170 local ALT_DIR_RES=0
subrata_modake47fb352007-11-25 17:03:49 +0000171 local ALT_HTML_OUT=0
subrata_modak08dde6f2007-11-28 11:02:51 +0000172 local ALT_EMAIL_OUT=0
plars4a120e82004-09-02 18:56:06 +0000173 local RUN_NETEST=0
subrata_modak8c138332008-01-28 11:19:32 +0000174 local RUN_REPEATED=0
plars4a120e82004-09-02 18:56:06 +0000175 local QUIET_MODE=""
robbiew7d43d772005-02-07 20:07:30 +0000176 local VERBOSE_MODE=""
plars4a120e82004-09-02 18:56:06 +0000177 local NETPIPE=0
178 local GENLOAD=0
179 local MEMSIZE=0
180 local DURATION=""
subrata_modakbc833d32007-07-25 10:12:02 +0000181 local CMDFILEADDR=""
subrata_modak43938212008-05-19 08:48:46 +0000182 local FAILCMDFILE=""
subrata_modake47fb352007-11-25 17:03:49 +0000183 local LOGFILE_NAME=""
plars4a120e82004-09-02 18:56:06 +0000184 local LOGFILE=""
subrata_modake47fb352007-11-25 17:03:49 +0000185 local OUTPUTFILE_NAME=""
186 local OUTPUTFILE=""
187 local HTMLFILE_NAME=""
188 local HTMLFILE=""
subrata_modak08dde6f2007-11-28 11:02:51 +0000189 local EMAIL_TO=""
plars4a120e82004-09-02 18:56:06 +0000190 local SCENFILES=""
robbiew7d43d772005-02-07 20:07:30 +0000191 local TAG_RESTRICT_STRING=""
192 local PAN_COMMAND=""
subrata_modak43938212008-05-19 08:48:46 +0000193 local DEFAULT_FILE_NAME_GENERATION_TIME=`date +"%Y_%b_%d-%Hh_%Mm_%Ss"`
mreed1091696422006-05-03 19:07:22 +0000194 version_date=`head -n 1 $LTPROOT/ChangeLog`
plars4a120e82004-09-02 18:56:06 +0000195
subrata_modakd9fb3862008-12-29 11:25:36 +0000196 while getopts a:c:C:d:D:f:ehi:g:l:m:Nno:pqr:s:t:T:vw:x:b:B: arg
plars4a120e82004-09-02 18:56:06 +0000197 do case $arg in
subrata_modak08dde6f2007-11-28 11:02:51 +0000198 a) EMAIL_TO=$OPTARG
199 ALT_EMAIL_OUT=1;;
plars4a120e82004-09-02 18:56:06 +0000200 c)
subrata_modake099b2a2007-10-29 12:22:01 +0000201 NUM_PROCS=$(($OPTARG))
202 if [ "$NUM_PROCS" -eq 0 ]; then
203 # User Did not Define the Value ,or, User Defined Zero,
204 # hence, prevent from creating infinite processes
205 NUM_PROCS=1
206 fi
plars4a120e82004-09-02 18:56:06 +0000207 $LTPROOT/testcases/bin/genload --cpu $NUM_PROCS >/dev/null 2>&1 &
208 GENLOAD=1 ;;
subrata_modakbc833d32007-07-25 10:12:02 +0000209
subrata_modak5d7deea2007-09-15 13:51:36 +0000210 C)
subrata_modak6838ec32007-09-14 10:10:12 +0000211 case $OPTARG in
212 /*)
213 FAILCMDFILE="-C $OPTARG" ;;
214 *)
215 FAILCMDFILE="-C $LTPROOT/output/$OPTARG"
subrata_modak5d7deea2007-09-15 13:51:36 +0000216 ALT_DIR_OUT=1 ;;
subrata_modak6838ec32007-09-14 10:10:12 +0000217 esac ;;
plars4a120e82004-09-02 18:56:06 +0000218
subrata_modak5ee3e892008-10-21 13:17:56 +0000219 d) # convert the user path to absolute path.
220 export TMPBASE=`cd \`dirname ${OPTARG}\`; pwd`/`basename ${OPTARG}` ;;
subrata_modake099b2a2007-10-29 12:22:01 +0000221
222 D) NUM_PROCS=1; NUM_FILES=1; NUM_BYTES=$((1024 * 1024 * 1024)); CLEAN_FLAG=0
subrata_modak548379d2008-08-20 09:15:49 +0000223 ARGUMENT_LIST=$OPTARG
subrata_modake099b2a2007-10-29 12:22:01 +0000224 TOTAL_ARGUMENTS=1 # Initial Assume
225 for ARGUMENT in `echo "$ARGUMENT_LIST" | sed 's/,/\n/g'` # Store all value in a Loop
226 do
227 case $TOTAL_ARGUMENTS in
228 1) NUM_PROCS="$ARGUMENT" ;;
229 2) NUM_FILES="$ARGUMENT" ;;
230 3) NUM_BYTES="$ARGUMENT" ;;
231 4) CLEAN_FLAG="$ARGUMENT" ;;
232 esac
233 TOTAL_ARGUMENTS=`expr $TOTAL_ARGUMENTS + 1`
234 done
235 # just to get the default values if the user passed 0
236 if [ "$NUM_PROCS" -eq 0 ]; then
237 NUM_PROCS=1
238 fi
239 if [ "$NUM_FILES" -eq 0 ]; then
240 NUM_FILES=1
241 fi
242 if [ "$NUM_BYTES" -eq 0 ]; then
243 NUM_BYTES=$((1024 * 1024 * 1024))
244 fi
245 if [ "$CLEAN_FLAG" -ne 1 ]; then
246 CLEAN_FLAG=0
247 fi
248 if [ "$CLEAN_FLAG" -eq 1 ]; then
249 # Do not unlink file in this case
250 $LTPROOT/testcases/bin/genload --hdd $NUM_PROCS --hdd-files \
251 $NUM_FILES --hdd-bytes $NUM_BYTES >/dev/null 2>&1 &
252 else
253 # Cleanup otherwise
254 $LTPROOT/testcases/bin/genload --hdd $NUM_PROCS --hdd-files \
255 $NUM_FILES --hdd-bytes $NUM_BYTES --hdd-noclean >/dev/null 2>&1 &
256 fi
257 GENLOAD=1;;
258
mreed1091696422006-05-03 19:07:22 +0000259 e) # Print out the version of LTP
260 version_of_ltp
261 ;;
plars4a120e82004-09-02 18:56:06 +0000262 f) # Execute user defined set of testcases.
subrata_modakbc833d32007-07-25 10:12:02 +0000263 # Can be more then one file, just separate it with ',', like:
264 # -f nfs,commands,/tmp/testfile
265 CMDFILES=$OPTARG;;
subrata_modake47fb352007-11-25 17:03:49 +0000266 g) HTMLFILE_NAME="$OPTARG"
267 case $OPTARG in
268 /*)
269 HTMLFILE="$OPTARG";;
270 *)
subrata_modakd48c4d02008-01-23 12:59:40 +0000271 HTMLFILE="$LTPROOT/output/$OPTARG";;
272 esac
273 ALT_DIR_OUT=1
274 ALT_HTML_OUT=1;;
plars4a120e82004-09-02 18:56:06 +0000275 h) usage;;
276
subrata_modake099b2a2007-10-29 12:22:01 +0000277 i)
278 NUM_PROCS=$(($OPTARG))
279 if [ "$NUM_PROCS" -eq 0 ]; then
280 # User Did not Define the Value ,or, User Defined Zero,
281 # hence, prevent from creating infinite processes
282 NUM_PROCS=1
283 fi
284 $LTPROOT/testcases/bin/genload --io $NUM_PROCS >/dev/null 2>&1 &
plars4a120e82004-09-02 18:56:06 +0000285 GENLOAD=1 ;;
286
287 l)
subrata_modak6838ec32007-09-14 10:10:12 +0000288 LOGFILE_NAME="$OPTARG"
plars4a120e82004-09-02 18:56:06 +0000289 case $OPTARG in
subrata_modak5d7deea2007-09-15 13:51:36 +0000290 /*)
plars4a120e82004-09-02 18:56:06 +0000291 LOGFILE="-l $OPTARG" ;;
292 *)
293 LOGFILE="-l $LTPROOT/results/$OPTARG"
subrata_modak5d7deea2007-09-15 13:51:36 +0000294 ALT_DIR_RES=1 ;;
plars4a120e82004-09-02 18:56:06 +0000295 esac ;;
296
subrata_modake099b2a2007-10-29 12:22:01 +0000297 m) NUM_PROCS=1; CHUNKS=1; BYTES=$((256 * 1024 * 1024)); HANGUP_FLAG=0
subrata_modak29a96d82008-08-27 13:34:46 +0000298 ARGUMENT_LIST=$OPTARG
subrata_modake099b2a2007-10-29 12:22:01 +0000299 TOTAL_ARGUMENTS=1 # Initial Assume
300 for ARGUMENT in `echo "$ARGUMENT_LIST" | sed 's/,/\n/g'` # Store all value in a Loop
301 do
302 case $TOTAL_ARGUMENTS in
303 1) NUM_PROCS="$ARGUMENT" ;;
304 2) CHUNKS="$ARGUMENT" ;;
305 3) BYTES="$ARGUMENT" ;;
306 4) HANGUP_FLAG="$ARGUMENT" ;;
307 esac
308 TOTAL_ARGUMENTS=`expr $TOTAL_ARGUMENTS + 1`
309 done
310 # just to get the default values if the user passed 0
311 if [ "$NUM_PROCS" -eq 0 ]; then
312 NUM_PROCS=1
313 fi
314 if [ "$CHUNKS" -eq 0 ]; then
315 CHUNKS=1
316 fi
317 if [ "$BYTES" -eq 0 ]; then
318 BYTES=$((256 * 1024 * 1024))
319 fi
320 if [ "$HANGUP_FLAG" -ne 1 ]; then
321 HANGUP_FLAG=0
322 fi
323 if [ "$HANGUP_FLAG" -eq 1 ]; then
324 # Hang in a Sleep loop after memory allocated
325 $LTPROOT/testcases/bin/genload --vm $NUM_PROCS --vm-chunks \
326 $CHUNKS --vm-bytes $BYTES --vm-hang >/dev/null 2>&1 &
327 else
328 # Otherwise Do not Hangup
329 $LTPROOT/testcases/bin/genload --vm $NUM_PROCS --vm-chunks \
330 $CHUNKS --vm-bytes $BYTES >/dev/null 2>&1 &
331 fi
plars4a120e82004-09-02 18:56:06 +0000332 GENLOAD=1;;
333
334 N) RUN_NETEST=1;;
335
336 n)
337 $LTPROOT/testcases/bin/netpipe.sh
338 NETPIPE=1;;
339
subrata_modak6838ec32007-09-14 10:10:12 +0000340 o) OUTPUTFILE_NAME="$OPTARG"
subrata_modak6838ec32007-09-14 10:10:12 +0000341 case $OPTARG in
342 /*)
343 OUTPUTFILE="-o $OPTARG";;
344 *)
345 OUTPUTFILE="-o $LTPROOT/output/$OPTARG"
subrata_modak5d7deea2007-09-15 13:51:36 +0000346 ALT_DIR_OUT=1 ;;
subrata_modak6838ec32007-09-14 10:10:12 +0000347 esac ;;
plars4a120e82004-09-02 18:56:06 +0000348
349 p) PRETTY_PRT=" -p ";;
350
351 q) QUIET_MODE=" -q ";;
352
353 r) LTPROOT=$OPTARG;;
354
robbiew7d43d772005-02-07 20:07:30 +0000355 s) TAG_RESTRICT_STRING=$OPTARG;;
356
plars4a120e82004-09-02 18:56:06 +0000357 t) # In case you want to specify the time
358 # to run from the command line
359 # (2m = two minutes, 2h = two hours, etc)
360 DURATION="-t $OPTARG" ;;
subrata_modak8c138332008-01-28 11:19:32 +0000361
362 T) # In case you want the testcases to runsequentially RUN_REPEATED times
363 RUN_REPEATED=$OPTARG;;
364
robbiew7d43d772005-02-07 20:07:30 +0000365 v) VERBOSE_MODE=1;;
subrata_modakbc833d32007-07-25 10:12:02 +0000366
367 w) CMDFILEADDR=$OPTARG;;
robbiew7d43d772005-02-07 20:07:30 +0000368
plars4a120e82004-09-02 18:56:06 +0000369 x) # number of ltp's to run
370 cat <<-EOF >&1
371 WARNING: The use of -x can cause unpredictable failures, as a
372 result of concurrently running multiple tests designed
373 to be ran exclusively.
374 Pausing for 10 seconds..."
375 EOF
376 sleep 10
subrata_modak6edfbda2008-10-17 12:25:48 +0000377 INSTANCES="-x $OPTARG";;
subrata_modakd9fb3862008-12-29 11:25:36 +0000378 b) DEVICE=$OPTARG;;
379 B) DEVICE_FS_TYPE=$OPTARG;;
plars4a120e82004-09-02 18:56:06 +0000380 \?) usage;;
381 esac
382 done
subrata_modak43938212008-05-19 08:48:46 +0000383
384 ## It would be nice to create a default log file even if the user has not mentioned
385 if [ ! "$LOGFILE" ]; then ## User has not mentioned about Log File name
386 LOGFILE_NAME=$DEFAULT_FILE_NAME_GENERATION_TIME
387 LOGFILE="-l $LTPROOT/results/LTP_RUN_ON-$LOGFILE_NAME.log"
388 ALT_DIR_RES=1
389 PRETTY_PRT=" -p "
390 fi
subrata_modak6838ec32007-09-14 10:10:12 +0000391
392 ## It would be nice if a Failed File is compulsorily created (gives User better Idea of Tests that failed)
393
394 if [ ! "$FAILCMDFILE" ]; then ## User has not mentioned about Failed File name
subrata_modak5d7deea2007-09-15 13:51:36 +0000395 ALT_DIR_OUT=1
subrata_modak6838ec32007-09-14 10:10:12 +0000396 if [ ! "$OUTPUTFILE" ]; then ## User has not mentioned about Output File name either
397 if [ ! "$LOGFILE" ]; then ## User has not mentioned about Log File name either
subrata_modak43938212008-05-19 08:48:46 +0000398 FAILED_FILE_NAME=$DEFAULT_FILE_NAME_GENERATION_TIME
subrata_modak6838ec32007-09-14 10:10:12 +0000399 FAILCMDFILE="-C $LTPROOT/output/LTP_RUN_ON-$FAILED_FILE_NAME.failed"
subrata_modak6838ec32007-09-14 10:10:12 +0000400 else ## User Fortunately wanted a log file,
401 FAILED_FILE_NAME=`basename $LOGFILE_NAME` ## Extract log file name and use it to construct Failed file name
402 FAILCMDFILE="-C $LTPROOT/output/LTP_RUN_ON-$FAILED_FILE_NAME.failed"
subrata_modak6838ec32007-09-14 10:10:12 +0000403 fi
404 else ## User Fortunately wanted a Output file
405 FAILED_FILE_NAME=`basename $OUTPUTFILE_NAME` ## Extract output file name and use it to construct Failed file name
406 FAILCMDFILE="-C $LTPROOT/output/LTP_RUN_ON-$FAILED_FILE_NAME.failed"
subrata_modak6838ec32007-09-14 10:10:12 +0000407 fi
408 fi
subrata_modaka1fd64b2007-04-11 11:24:49 +0000409
subrata_modakd48c4d02008-01-23 12:59:40 +0000410 if [ "$ALT_HTML_OUT" -eq 1 ] ; then ## User wants the HTML version of the output
411 QUIET_MODE="" ## Suppressing this guy as it will prevent generation of proper output
412 ## which the HTML parser will require
subrata_modake47fb352007-11-25 17:03:49 +0000413 if [ ! "$OUTPUTFILE" ]; then ## User has not mentioned about the Outputfile name, then we need to definitely generate one
subrata_modak43938212008-05-19 08:48:46 +0000414 OUTPUTFILE_NAME=$DEFAULT_FILE_NAME_GENERATION_TIME
subrata_modake47fb352007-11-25 17:03:49 +0000415 OUTPUTFILE="-o $LTPROOT/output/LTP_RUN_ON-$OUTPUTFILE_NAME.output"
subrata_modak08dde6f2007-11-28 11:02:51 +0000416 ALT_DIR_OUT=1
subrata_modake47fb352007-11-25 17:03:49 +0000417 if [ ! "$HTMLFILE" ] ; then ## User has not mentioned HTML File name, We need to create one
418 HTMLFILE_NAME=`basename $OUTPUTFILE_NAME`
419 HTMLFILE="$LTPROOT/output/$HTMLFILE_NAME.html"
420 fi
421 fi
422 fi
423
subrata_modak5d7deea2007-09-15 13:51:36 +0000424 # If we need, create the output directory
425 [ "$ALT_DIR_OUT" -eq 1 ] && \
426 {
427 echo "INFO: creating $LTPROOT/output directory"
428 [ ! -d $LTPROOT/output ] && \
429 {
430 mkdir -p $LTPROOT/output || \
431 {
432 echo "ERROR: failed to create $LTPROOT/output"
433 exit 1
434 }
435 }
436 }
437 # If we need, create the results directory
438 [ "$ALT_DIR_RES" -eq 1 ] && \
439 {
440 echo "INFO: creating $LTPROOT/results directory"
441 [ ! -d $LTPROOT/results ] && \
442 {
443 mkdir -p $LTPROOT/results || \
444 {
445 echo "ERROR: failed to create $LTPROOT/results"
446 exit 1
447 }
448 }
449 }
450
subrata_modaka1fd64b2007-04-11 11:24:49 +0000451 # Added -m 777 for tests that call tst_tmpdir() and try to
452 # write to it as user nobody
subrata_modak5ee3e892008-10-21 13:17:56 +0000453 mkdir -m 777 -p $TMPBASE || \
454 {
455 echo "FATAL: Unable to make temporary directory $TMPBASE"
456 exit 1
457 }
458 # use mktemp to create "safe" temporary directories
459 export TMPTEMPLATE="${TMPBASE}/ltp-XXXXXXXXXX"
subrata_modak6edfbda2008-10-17 12:25:48 +0000460 TMP=`mktemp -d $TMPTEMPLATE` || \
plars4a120e82004-09-02 18:56:06 +0000461 {
subrata_modak6edfbda2008-10-17 12:25:48 +0000462 echo "FATAL: Unable to make temporary directory: $TMP"
463 exit 1
464 }
465 export TMP
subrata_modak5ee3e892008-10-21 13:17:56 +0000466 # To be evoked by tst_tmpdir()
467 # write to it as user nobody
468 export TMPDIR="/tmp"
subrata_modak6edfbda2008-10-17 12:25:48 +0000469
470 chmod 777 $TMP || \
471 {
472 echo "unable to chmod 777 $TMP ... aborting"
plars4a120e82004-09-02 18:56:06 +0000473 exit 1
474 }
475
476 cd $TMP || \
477 {
478 echo "could not cd ${TMP} ... exiting"
479 exit 1
480 }
481
subrata_modak6edfbda2008-10-17 12:25:48 +0000482 ! [ -z $INSTANCES ] && \
483 {
484 INSTANCES="$INSTANCES -O ${TMP}"
485 }
486
plars4a120e82004-09-02 18:56:06 +0000487 [ "$RUN_NETEST" -eq 1 ] && \
488 {
489 [ -z "$RHOST" ] || [ -z "$PASSWD" ] && \
490 {
491 [ -z "$RHOST" ] && \
492 {
493 echo \
494 "INFO: Enter RHOST = 'name of the remote host machine'"
495 echo -n "-> "
496 read RHOST
497 }
498
499 [ -z "$PASSWD" ] && \
500 {
501 echo " "
502 echo \
503 "INFO: Enter PASSWD = 'root passwd of the remote host machine'"
504 echo -n "-> "
505 read PASSWD
506 }
507 export RHOST=$RHOST
508 export PASSWD=$PASSWD
509 echo "WARNING: security of $RHOST may be compromised"
510 }
511 }
512
513 # If user does not provide a command file select a default set of testcases
514 # to execute.
subrata_modakbc833d32007-07-25 10:12:02 +0000515 if [ -z "$CMDFILES" ] && [ -z "$CMDFILEADDR" ]
plars4a120e82004-09-02 18:56:06 +0000516 then
subrata_modakbc833d32007-07-25 10:12:02 +0000517 cat <<-EOF >&1
plars4a120e82004-09-02 18:56:06 +0000518
519 INFO: no command files were provided, using default,
520 system calls, memory management, IPC, scheduler
521 direct io, file system, math and pty tests will
522 now be executed
523
524 EOF
525
subrata_modak58c9d112008-10-23 13:31:35 +0000526 for SCENFILES in ${LTPROOT}/runtest/syscalls \
527 ${LTPROOT}/runtest/fs \
528 ${LTPROOT}/runtest/fsx \
529 ${LTPROOT}/runtest/dio \
subrata_modakc4ac9082008-12-29 11:02:21 +0000530 ${LTPROOT}/runtest/io \
subrata_modak58c9d112008-10-23 13:31:35 +0000531 ${LTPROOT}/runtest/mm \
532 ${LTPROOT}/runtest/ipc \
533 ${LTPROOT}/runtest/sched \
534 ${LTPROOT}/runtest/math \
535 ${LTPROOT}/runtest/nptl \
536 ${LTPROOT}/runtest/pty \
537 ${LTPROOT}/runtest/containers \
538 ${LTPROOT}/runtest/fs_bind \
539 ${LTPROOT}/runtest/controllers \
540 ${LTPROOT}/runtest/filecaps \
subrata_modak76adea22009-04-28 07:04:38 +0000541 ${LTPROOT}/runtest/cap_bounds \
subrata_modak58c9d112008-10-23 13:31:35 +0000542 ${LTPROOT}/runtest/fcntl-locktests \
543 ${LTPROOT}/runtest/connectors \
544 ${LTPROOT}/runtest/admin_tools \
545 ${LTPROOT}/runtest/timers \
subrata_modak53407442008-10-29 09:46:03 +0000546 ${LTPROOT}/runtest/power_management_tests \
subrata_modak00310c42008-10-29 15:43:51 +0000547 ${LTPROOT}/runtest/numa \
subrata_modakeaa52dc2008-11-13 10:11:22 +0000548 ${LTPROOT}/runtest/hugetlb \
subrata_modak348f7bc2008-12-19 08:46:27 +0000549 ${LTPROOT}/runtest/commands \
550 ${LTPROOT}/runtest/hyperthreading
plars4a120e82004-09-02 18:56:06 +0000551 do
vapiere42c4b22008-03-08 12:49:06 +0000552 [ -e "$SCENFILES" ] || \
plars4a120e82004-09-02 18:56:06 +0000553 {
554 echo "FATAL: missing scenario file $SCENFILES"
555 exit 1
556 }
557
558 cat $SCENFILES >> ${TMP}/alltests || \
559 {
560 echo "FATAL: unable to create command file"
561 exit 1
562 }
563 done
subrata_modakbc833d32007-07-25 10:12:02 +0000564 fi
565
566 [ -n "$CMDFILES" ] && \
567 {
568 for SCENFILES in `echo "$CMDFILES" | sed 's/,/\n/g'`
569 do
570 [ -f "$SCENFILES" ] || SCENFILES="$LTPROOT/runtest/$SCENFILES"
571 cat "$SCENFILES" >> ${TMP}/alltests || \
572 {
573 echo "FATAL: unable to create command file"
574 exit 1
575 }
576 done
577 }
578
579 [ -n "$CMDFILEADDR" ] && \
580 {
581 wget -q "${CMDFILEADDR}" -O ${TMP}/wgetcmdfile
582 if [ $? -ne 0 ]; then
583 echo "FATAL: error while getting the command file with wget (address $CMDFILEADDR)"
584 exit 1
585 fi
586 cat "${TMP}/wgetcmdfile" >> ${TMP}/alltests || \
plars4a120e82004-09-02 18:56:06 +0000587 {
subrata_modakbc833d32007-07-25 10:12:02 +0000588 echo "FATAL: unable to create command file"
plars4a120e82004-09-02 18:56:06 +0000589 exit 1
590 }
subrata_modakbc833d32007-07-25 10:12:02 +0000591 }
592
plars4a120e82004-09-02 18:56:06 +0000593 [ "$RUN_NETEST" -eq 1 ] && \
594 {
595 for SCENFILES in ${LTPROOT}/runtest/tcp_cmds \
596 ${LTPROOT}/runtest/multicast \
597 ${LTPROOT}/runtest/rpc \
598 ${LTPROOT}/runtest/nfs
599 do
vapiere42c4b22008-03-08 12:49:06 +0000600 [ -e "$SCENFILES" ] || \
plars4a120e82004-09-02 18:56:06 +0000601 {
602 echo "FATAL: missing scenario file $SCENFILES"
603 exit 1
604 }
605
subrata_modakbc833d32007-07-25 10:12:02 +0000606 cat "$SCENFILES" >> ${TMP}/alltests || \
plars4a120e82004-09-02 18:56:06 +0000607 {
608 echo "FATAL: unable to create command file"
609 exit 1
610 }
611 done
612 }
subrata_modakbc833d32007-07-25 10:12:02 +0000613
plars4a120e82004-09-02 18:56:06 +0000614 # The fsx-linux tests use the SCRATCHDEV environment variable as a location
615 # that can be reformatted and run on. Set SCRATCHDEV if you want to run
616 # these tests. As a safeguard, this is disabled.
617 unset SCRATCHDEV
618 [ -n "$SCRATCHDEV" ] && \
619 {
620 cat ${LTPROOT}/runtest/fsx >> ${TMP}/alltests ||
621 {
622 echo "FATAL: unable to create fsx-linux tests command file"
623 exit 1
624 }
625 }
subrata_modakbc833d32007-07-25 10:12:02 +0000626
627 # If enabled, execute only test cases that match the PATTERN
628 if [ -n "$TAG_RESTRICT_STRING" ]
629 then
630 mv -f ${TMP}/alltests ${TMP}/alltests.orig
631 grep $TAG_RESTRICT_STRING ${TMP}/alltests.orig > ${TMP}/alltests #Not worth checking return codes for this case
632 fi
plars4a120e82004-09-02 18:56:06 +0000633
634 # check for required users and groups
635 ${LTPROOT}/IDcheck.sh &>/dev/null || \
636 {
637 echo "WARNING: required users and groups not present"
638 echo "WARNING: some test cases may fail"
639 }
robbiew7d43d772005-02-07 20:07:30 +0000640
plars4a120e82004-09-02 18:56:06 +0000641 # display versions of installed software
642 [ -z "$QUIET_MODE" ] && \
643 {
644 ${LTPROOT}/ver_linux || \
645 {
646 echo "WARNING: unable to display versions of software installed"
647 exit 1
648 }
649 }
650
subrata_modakd9fb3862008-12-29 11:25:36 +0000651 if [ -n "$DEVICE" ]; then
652 sed -i "s|DEVICE|$DEVICE|" ${TMP}/alltests
653 else
654 echo "remove test cases which require the block device."
subrata_modak55929b62009-02-26 13:09:05 +0000655 echo "You can specify it with option -b"
subrata_modakd9fb3862008-12-29 11:25:36 +0000656 sed -i "/DEVICE/d" ${TMP}/alltests
657 fi
658
659 if [ $? -ne 0 ]; then
660 echo "FATAL: error during prcessing alltests file by sed"
661 exit 1
662 fi
663
664 if [ -n "$DEVICE" ]; then
665 mnt_pnt=`mktemp -d --tmpdir=${TMP} mnt_pnt.XXXXXX`
666 if [ -n "$DEVICE_FS_TYPE" ]; then
667 mount -t $DEVICE_FS_TYPE $DEVICE $mnt_pnt
668 else
669 mount $DEVICE $mnt_pnt
670 fi
671
672 if [ $? -ne 0 ]; then
673 echo "FATAL: can't mount block device $DEVICE."
674 exit 1
675 fi
676
677 if [ -z "$DEVICE_FS_TYPE" ]; then
678 DEVICE_FS_TYPE=`cat /proc/mounts | awk "{if (\\\$1 == \"$DEVICE\") print \\\$3; }"`
679 echo "determine file system $DEVICE_FS_TYPE on block device $DEVICE"
680 fi
681
682 umount $DEVICE
683 if [ $? -ne 0 ]; then
684 echo "FATAL: can't umount $DEVICE"
685 exit 1
686 fi
687 rm -rf $mnt_pnt
688 fi
689
690 if [ -n "$DEVICE" ]; then
691 sed -i "s|DEVICE_FS_TYPE|$DEVICE_FS_TYPE|" ${TMP}/alltests
692 fi
693
694 if [ $? -ne 0 ]; then
695 echo "FATAL: error during prcessing alltests file by sed"
696 exit 1
697 fi
698
subrata_modak8c138332008-01-28 11:19:32 +0000699 if [ $RUN_REPEATED -gt 1 ]; then # You need to specify at least more than 1 sequential run, else it runs default
700 echo "PAN will run these test cases $RUN_REPEATED times....."
701 echo "Test Tags will be Prepended with ITERATION NO.s....."
702 inc=1
703 sed -e '/^$/ d' -e 's/^[ ,\t]*//' -e '/^#/ d' < ${TMP}/alltests > ${TMP}/alltests.temp ##This removes all newlines, leading spaces, tabs, #
704 sed 's/^[0-9,a-z,A-Z]*/'"$inc"'_ITERATION_&/' < ${TMP}/alltests.temp > ${TMP}/alltests ## .temp is kept as Base file
705 while [ $inc -lt $RUN_REPEATED ] ; do
706 inc=`expr $inc + 1`
707 sed 's/^[0-9,a-z,A-Z]*/'"$inc"'_ITERATION_&/' < ${TMP}/alltests.temp >> ${TMP}/alltests #Keep appending with Iteration No.s
708 done
709 fi
710
plars4a120e82004-09-02 18:56:06 +0000711 [ ! -z "$QUIET_MODE" ] && { echo "INFO: Test start time: $(date)" ; }
subrata_modak14390fd2009-05-19 09:39:11 +0000712 PAN_COMMAND="${LTPROOT}/pan/ltp-pan $QUIET_MODE -e -S $INSTANCES $DURATION -a $$ \
subrata_modakbc833d32007-07-25 10:12:02 +0000713 -n $$ $PRETTY_PRT -f ${TMP}/alltests $LOGFILE $OUTPUTFILE $FAILCMDFILE"
robbiew7d43d772005-02-07 20:07:30 +0000714 if [ ! -z "$VERBOSE_MODE" ] ; then
715 echo "COMMAND: $PAN_COMMAND"
716 if [ ! -z "$TAG_RESTRICT_STRING" ] ; then
717 echo "INFO: Restricted to $TAG_RESTRICT_STRING"
718 fi
719 fi
720 #$PAN_COMMAND #Duplicated code here, because otherwise if we fail, only "PAN_COMMAND" gets output
subrata_modak43938212008-05-19 08:48:46 +0000721
722 ## Display the Output/Log/Failed/HTML file names here
723 echo -e "LOG File: \c"
724 echo $LOGFILE | cut -b4-
725
726 if [ "$OUTPUTFILE" ]; then
727 echo -e "OUTPUT File: \c"
728 echo $OUTPUTFILE | cut -b4-
729 fi
730
731 echo -e "FAILED COMMAND File: \c"
732 echo $FAILCMDFILE | cut -b4-
733
734 if [ "$HTMLFILE" ]; then
735 echo "HTML File: $HTMLFILE"
736 fi
737
738 echo "Running tests......."
subrata_modake47fb352007-11-25 17:03:49 +0000739 test_start_time=$(date)
subrata_modak724098e2009-03-19 08:49:18 +0000740
741 # Some tests need to run inside the "bin" directory.
742 cd "${LTPROOT}/testcases/bin"
subrata_modak14390fd2009-05-19 09:39:11 +0000743 ${LTPROOT}/pan/ltp-pan $QUIET_MODE -e -S $INSTANCES $DURATION -a $$ -n $$ $PRETTY_PRT -f ${TMP}/alltests $LOGFILE $OUTPUTFILE $FAILCMDFILE
subrata_modakd48c4d02008-01-23 12:59:40 +0000744
plars4a120e82004-09-02 18:56:06 +0000745 if [ $? -eq 0 ]; then
subrata_modak14390fd2009-05-19 09:39:11 +0000746 echo "INFO: ltp-pan reported all tests PASS"
plars4a120e82004-09-02 18:56:06 +0000747 VALUE=0
subrata_modake47fb352007-11-25 17:03:49 +0000748 export LTP_EXIT_VALUE=0;
plars4a120e82004-09-02 18:56:06 +0000749 else
subrata_modak14390fd2009-05-19 09:39:11 +0000750 echo "INFO: ltp-pan reported some tests FAIL"
plars4a120e82004-09-02 18:56:06 +0000751 VALUE=1
subrata_modake47fb352007-11-25 17:03:49 +0000752 export LTP_EXIT_VALUE=1;
plars4a120e82004-09-02 18:56:06 +0000753 fi
subrata_modak724098e2009-03-19 08:49:18 +0000754 cd ..
mreed1091696422006-05-03 19:07:22 +0000755 echo "LTP Version: $version_date"
756
subrata_modake47fb352007-11-25 17:03:49 +0000757 if [ "$ALT_HTML_OUT" -eq 1 ] ; then #User wants the HTML output to be created, it then needs to be generated
758 export LTP_VERSION=$version_date
759 export TEST_START_TIME=$test_start_time
760 export TEST_END_TIME=$(date)
761 OUTPUT_DIRECTORY=`echo $OUTPUTFILE | cut -c4-`
762 LOGS_DIRECTORY="$LTPROOT/results"
763 export TEST_OUTPUT_DIRECTORY="$LTPROOT/output"
764 export TEST_LOGS_DIRECTORY=$LOGS_DIRECTORY
765 echo "Generating HTML Output.....!!"
766 ( perl $LTPROOT/tools/genhtml.pl $LTPROOT/tools/html_report_header.txt test_start test_end test_output execution_status $OUTPUT_DIRECTORY > $HTMLFILE; )
767 echo "Generated HTML Output.....!!"
768 echo "Location: $HTMLFILE";
769
770 fi
771
subrata_modak08dde6f2007-11-28 11:02:51 +0000772 if [ "$ALT_EMAIL_OUT" -eq 1 ] ; then ## User wants reports to be e-mailed
773 if [ [ ! "$HTMLFILE_NAME" ] -o [ ! "$OUTPUTFILE_NAME" ] -o [ ! "$LOGFILE_NAME" ] ] ; then
774 ##User does not have output/logs/html-output, nothing to be mailed in this situation
775 echo "Nothing to be mailed here...."
776 else
subrata_modak43938212008-05-19 08:48:46 +0000777 TAR_FILE_NAME=LTP_RUN_$version_date$DEFAULT_FILE_NAME_GENERATION_TIME.tar
subrata_modak08dde6f2007-11-28 11:02:51 +0000778 if [ "$HTMLFILE_NAME" ] ; then ## HTML file Exists
779 if [ "$ALT_HTML_OUT" -ne 1 ] ; then ## The HTML file path is absolute and not $LTPROOT/output
780 mkdir -p $LTPROOT/output ## We need to create this Directory
781 cp $HTMLFILE_NAME $LTPROOT/output/
782 fi
783 fi
784 if [ "$OUTPUTFILE_NAME" ] ; then ## Output file exists
785 if [ "$ALT_DIR_OUT" -ne 1 ] ; then ## The Output file path is absolute and not $LTPROOT/output
786 mkdir -p $LTPROOT/output ## We need to create this Directory
787 cp $OUTPUTFILE_NAME $LTPROOT/output/
788 fi
789 fi
790 if [ "$LOGFILE_NAME" ] ; then ## Log file exists
791 if [ "$ALT_DIR_RES" -ne 1 ] ; then ## The Log file path is absolute and not $LTPROOT/results
792 mkdir -p $LTPROOT/results ## We need to create this Directory
793 cp $LOGFILE_NAME $LTPROOT/results/
794 fi
795 fi
796 if [ -d $LTPROOT/output ] ; then
797 tar -cf ./$TAR_FILE_NAME $LTPROOT/output
798 if [ $? -eq 0 ]; then
799 echo "Created TAR File: ./$TAR_FILE_NAME successfully, added $LTPROOT/output"
800 else
801 echo "Cannot Create TAR File: ./$TAR_FILE_NAME for adding $LTPROOT/output"
802 fi
803 fi
804 if [ -d $LTPROOT/results ] ; then
805 tar -uf ./$TAR_FILE_NAME $LTPROOT/results
806 if [ $? -eq 0 ]; then
807 echo "Updated TAR File: ./$TAR_FILE_NAME successfully, added $LTPROOT/results"
808 else
809 echo "Cannot Update TAR File: ./$TAR_FILE_NAME for adding $LTPROOT/results"
810 fi
811 fi
812 if [ -e $LTPROOT/nohup.out ] ; then ## If User would have Chosen nohup to do ltprun
813 tar -uf ./$TAR_FILE_NAME $LTPROOT/nohup.out
814 if [ $? -eq 0 ]; then
815 echo "Updated TAR File: ./$TAR_FILE_NAME successfully, added $LTPROOT/nohup.out"
816 else
817 echo "Cannot Update TAR File: ./$TAR_FILE_NAME for adding $LTPROOT/nohup.out"
818 fi
819 fi
820 gzip ./$TAR_FILE_NAME ## gzip this guy
821 if [ $? -eq 0 ]; then
822 echo "Gunzipped TAR File: ./$TAR_FILE_NAME"
823 else
824 echo "Cannot Gunzip TAR File: ./$TAR_FILE_NAME"
825 fi
826 if [ -e /usr/bin/mutt ] ; then ## This is a better mail client than others
827 echo "Starting mailing reports to: $EMAIL_TO, file: ./$TAR_FILE_NAME.gz"
828 mutt -a ./$TAR_FILE_NAME.gz -s "LTP Reports on $test_start_time" $EMAIL_TO < /dev/null
829 if [ $? -eq 0 ]; then
830 echo "Reports Successfully mailed to: $EMAIL_TO"
831 else
832 echo "Reports cannot be mailed to: $EMAIL_TO"
833 fi
834 else ## Use our Ageold mail program
835 echo "Starting mailing reports to: $EMAIL_TO, file: ./$TAR_FILE_NAME.gz"
836 uuencode ./$TAR_FILE_NAME.gz $TAR_FILE_NAME.gz | mail $EMAIL_TO -s "LTP Reports on $test_start_time"
837 if [ $? -eq 0 ]; then
838 echo "Reports Successfully mailed to: $EMAIL_TO"
839 else
840 echo "Reports cannot be mailed to: $EMAIL_TO"
841 fi
842 fi
843 fi
844 fi
845
plars4a120e82004-09-02 18:56:06 +0000846 [ ! -z "$QUIET_MODE" ] && { echo "INFO: Test end time: $(date)" ; }
847
subrata_modake099b2a2007-10-29 12:22:01 +0000848 [ "$GENLOAD" -eq 1 ] && { killall -9 genload >/dev/null 2>&1; }
849 [ "$NETPIPE" -eq 1 ] && { killall -9 NPtcp >/dev/null 2>&1; }
plars4a120e82004-09-02 18:56:06 +0000850
subrata_modak5d7deea2007-09-15 13:51:36 +0000851 [ "$ALT_DIR_OUT" -eq 1 ] || [ "$ALT_DIR_RES" -eq 1 ] && \
plars4a120e82004-09-02 18:56:06 +0000852 {
853 cat <<-EOF >&1
854
855 ###############################################################"
856
857 Done executing testcases."
mreed1091696422006-05-03 19:07:22 +0000858 LTP Version: $version_date
plars4a120e82004-09-02 18:56:06 +0000859 ###############################################################"
860
861 EOF
862 }
863 exit $VALUE
864}
865
866cleanup()
867{
868 rm -rf ${TMP}
869}
870
871trap "cleanup" 0
872setup
873main "$@"