Artifact
d882ace026d124468aeb146a85b0fa0caee71cd4 :
Executable file
utils/mt_ezstep
— part of check-in
[39b53fe321]
at
2012-03-25 14:41:27
on branch trunk
— Fixed updating of test run meta data
(user:
matt
size: 1670)
0000: 23 21 2f 62 69 6e 2f 62 61 73 68 0a 0a 75 73 61 #!/bin/bash..usa
0010: 67 65 3d 22 6d 74 5f 65 7a 73 74 65 70 20 73 74 ge="mt_ezstep st
0020: 65 70 6e 61 6d 65 20 70 72 65 76 73 74 65 70 6e epname prevstepn
0030: 61 6d 65 20 63 6f 6d 6d 61 6e 64 20 5b 61 72 67 ame command [arg
0040: 73 20 2e 2e 2e 5d 22 0a 0a 69 66 20 5b 20 22 24 s ...]"..if [ "$
0050: 4d 54 5f 43 4d 44 49 4e 46 4f 22 20 3d 3d 20 22 MT_CMDINFO" == "
0060: 22 20 5d 3b 74 68 65 6e 0a 20 20 65 63 68 6f 20 " ];then. echo
0070: 22 45 52 52 4f 52 3a 20 24 30 20 73 68 6f 75 6c "ERROR: $0 shoul
0080: 64 20 62 65 20 72 75 6e 20 77 69 74 68 69 6e 20 d be run within
0090: 61 20 6d 65 67 61 74 65 73 74 20 74 65 73 74 20 a megatest test
00a0: 65 6e 76 69 72 6f 6e 6d 65 6e 74 22 0a 20 20 65 environment". e
00b0: 63 68 6f 20 22 55 73 61 67 65 3a 20 24 75 73 61 cho "Usage: $usa
00c0: 67 65 22 0a 20 20 65 78 69 74 0a 66 69 0a 0a 23 ge". exit.fi..#
00d0: 20 50 75 72 70 6f 73 65 3a 20 54 68 69 73 20 69 Purpose: This i
00e0: 73 20 66 6f 72 20 74 68 65 20 5b 65 7a 73 74 65 s for the [ezste
00f0: 70 73 5d 20 73 65 63 74 6f 6e 20 69 6e 20 79 6f ps] secton in yo
0100: 75 72 20 74 65 73 74 63 6f 6e 66 69 67 20 66 69 ur testconfig fi
0110: 6c 65 2e 0a 23 20 20 20 44 4f 20 4e 4f 54 20 55 le..# DO NOT U
0120: 53 45 20 49 4e 20 59 4f 55 52 20 53 43 52 49 50 SE IN YOUR SCRIP
0130: 54 53 21 0a 23 0a 23 20 43 61 6c 6c 20 6c 69 6b TS!.#.# Call lik
0140: 65 20 74 68 69 73 3a 0a 23 20 6d 74 5f 65 7a 73 e this:.# mt_ezs
0150: 74 65 70 20 73 74 65 70 6e 61 6d 65 20 70 72 65 tep stepname pre
0160: 76 73 74 65 70 6e 61 6d 65 20 63 6f 6d 6d 61 6e vstepname comman
0170: 64 20 2e 2e 2e 2e 0a 23 20 0a 69 66 20 5b 20 22 d .....# .if [ "
0180: 78 24 31 22 20 3d 3d 20 22 78 22 20 5d 3b 74 68 x$1" == "x" ];th
0190: 65 6e 0a 20 20 65 63 68 6f 20 22 55 73 61 67 65 en. echo "Usage
01a0: 3a 20 24 75 73 61 67 65 22 0a 20 20 65 78 69 74 : $usage". exit
01b0: 0a 66 69 0a 0a 73 74 65 70 6e 61 6d 65 3d 24 31 .fi..stepname=$1
01c0: 3b 73 68 69 66 74 0a 70 72 65 76 73 74 65 70 6e ;shift.prevstepn
01d0: 61 6d 65 3d 24 31 3b 73 68 69 66 74 0a 0a 63 6f ame=$1;shift..co
01e0: 6d 6d 61 6e 64 3d 24 2a 0a 0a 61 6c 6c 73 74 61 mmand=$*..allsta
01f0: 74 75 73 3d 39 39 0a 72 75 6e 73 74 61 74 75 73 tus=99.runstatus
0200: 3d 39 39 0a 6c 6f 67 70 72 6f 70 73 74 61 74 75 =99.logpropstatu
0210: 73 3d 39 39 0a 0a 70 72 65 76 5f 65 6e 76 3d 2e s=99..prev_env=.
0220: 65 7a 73 74 65 70 73 2f 24 7b 70 72 65 76 73 74 ezsteps/${prevst
0230: 65 70 6e 61 6d 65 7d 2e 73 68 0a 69 66 20 5b 20 epname}.sh.if [
0240: 2d 65 20 24 70 72 65 76 5f 65 6e 76 20 5d 3b 74 -e $prev_env ];t
0250: 68 65 6e 0a 20 20 20 20 73 6f 75 72 63 65 20 24 hen. source $
0260: 70 72 65 76 5f 65 6e 76 0a 66 69 0a 0a 23 20 73 prev_env.fi..# s
0270: 6f 75 72 63 65 20 74 68 65 20 65 6e 76 69 72 6f ource the enviro
0280: 6e 6d 65 6e 74 20 66 72 6f 6d 20 74 68 65 20 70 nment from the p
0290: 72 65 76 69 6f 75 73 20 73 74 65 70 20 69 66 20 revious step if
02a0: 69 74 20 65 78 69 73 74 73 0a 0a 23 20 69 66 20 it exists..# if
02b0: 61 20 6c 6f 67 70 72 6f 20 66 69 6c 65 20 65 78 a logpro file ex
02c0: 69 73 74 73 20 74 68 65 6e 20 75 73 65 20 69 74 ists then use it
02d0: 20 6f 74 68 65 72 77 69 73 65 20 6a 75 73 74 20 otherwise just
02e0: 72 75 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2c run the command,
02f0: 20 6e 62 2f 2f 20 77 61 73 20 75 73 69 6e 67 20 nb// was using
0300: 32 3e 26 31 0a 69 66 20 5b 20 2d 65 20 24 7b 73 2>&1.if [ -e ${s
0310: 74 65 70 6e 61 6d 65 7d 2e 6c 6f 67 70 72 6f 20 tepname}.logpro
0320: 5d 3b 74 68 65 6e 0a 20 20 20 23 20 63 6f 75 6c ];then. # coul
0330: 64 20 64 6f 3a 0a 20 20 20 24 63 6f 6d 6d 61 6e d do:. $comman
0340: 64 20 32 3e 26 31 7c 20 74 65 65 20 24 7b 73 74 d 2>&1| tee ${st
0350: 65 70 6e 61 6d 65 7d 2e 6c 6f 67 20 7c 20 6c 6f epname}.log | lo
0360: 67 70 72 6f 20 24 7b 73 74 65 70 6e 61 6d 65 7d gpro ${stepname}
0370: 2e 6c 6f 67 70 72 6f 20 24 7b 73 74 65 70 6e 61 .logpro ${stepna
0380: 6d 65 7d 2e 68 74 6d 6c 20 26 3e 20 2f 64 65 76 me}.html &> /dev
0390: 2f 6e 75 6c 6c 0a 20 20 20 6c 6f 67 70 72 6f 73 /null. logpros
03a0: 74 61 74 75 73 3d 24 3f 0a 20 20 20 23 20 24 63 tatus=$?. # $c
03b0: 6f 6d 6d 61 6e 64 20 32 3e 26 31 7c 20 6c 6f 67 ommand 2>&1| log
03c0: 70 72 6f 20 24 7b 73 74 65 70 6e 61 6d 65 7d 2e pro ${stepname}.
03d0: 6c 6f 67 70 72 6f 20 24 7b 73 74 65 70 6e 61 6d logpro ${stepnam
03e0: 65 7d 2e 68 74 6d 6c 20 26 3e 20 24 7b 73 74 65 e}.html &> ${ste
03f0: 70 6e 61 6d 65 7d 2e 6c 6f 67 20 0a 20 20 20 23 pname}.log . #
0400: 20 61 6c 6c 73 74 61 74 75 73 3d 28 24 7b 50 49 allstatus=(${PI
0410: 50 45 53 54 41 54 55 53 5b 30 5d 7d 20 24 7b 50 PESTATUS[0]} ${P
0420: 49 50 45 53 54 41 54 55 53 5b 31 5d 7d 29 20 0a IPESTATUS[1]}) .
0430: 20 20 20 61 6c 6c 73 74 61 74 75 73 3d 28 24 7b allstatus=(${
0440: 50 49 50 45 53 54 41 54 55 53 5b 30 5d 7d 20 24 PIPESTATUS[0]} $
0450: 7b 50 49 50 45 53 54 41 54 55 53 5b 31 5d 7d 29 {PIPESTATUS[1]})
0460: 0a 20 20 20 72 75 6e 73 74 61 74 75 73 3d 24 7b . runstatus=${
0470: 61 6c 6c 73 74 61 74 75 73 5b 30 5d 7d 0a 20 20 allstatus[0]}.
0480: 20 23 20 6c 6f 67 70 72 6f 73 74 61 74 75 73 3d # logprostatus=
0490: 24 7b 61 6c 6c 73 74 61 74 75 73 5b 31 5d 7d 0a ${allstatus[1]}.
04a0: 65 6c 73 65 0a 20 20 20 24 63 6f 6d 6d 61 6e 64 else. $command
04b0: 20 26 3e 20 24 7b 73 74 65 70 6e 61 6d 65 7d 2e &> ${stepname}.
04c0: 6c 6f 67 0a 20 20 20 72 75 6e 73 74 61 74 75 73 log. runstatus
04d0: 3d 24 3f 0a 20 20 20 6c 6f 67 70 72 6f 73 74 61 =$?. logprosta
04e0: 74 75 73 3d 24 72 75 6e 73 74 61 74 75 73 0a 66 tus=$runstatus.f
04f0: 69 0a 0a 23 20 49 66 20 74 68 65 20 74 65 73 74 i..# If the test
0500: 20 65 78 69 74 73 20 77 69 74 68 20 6e 6f 6e 2d exits with non-
0510: 7a 65 72 6f 2c 20 77 65 20 77 69 6c 6c 20 72 65 zero, we will re
0520: 63 6f 72 64 20 46 41 49 4c 20 65 76 65 6e 20 69 cord FAIL even i
0530: 66 20 6c 6f 67 70 72 6f 0a 23 20 73 61 79 73 20 f logpro.# says
0540: 69 74 20 69 73 20 61 20 50 41 53 53 0a 0a 69 66 it is a PASS..if
0550: 20 5b 20 24 72 75 6e 73 74 61 74 75 73 20 2d 6e [ $runstatus -n
0560: 65 20 30 20 5d 3b 20 74 68 65 6e 0a 20 20 20 20 e 0 ]; then.
0570: 65 78 69 74 73 74 61 74 75 73 3d 24 72 75 6e 73 exitstatus=$runs
0580: 74 61 74 75 73 0a 65 6c 69 66 20 5b 20 24 6c 6f tatus.elif [ $lo
0590: 67 70 72 6f 73 74 61 74 75 73 20 2d 65 71 20 30 gprostatus -eq 0
05a0: 20 5d 3b 20 74 68 65 6e 0a 20 20 20 20 65 78 69 ]; then. exi
05b0: 74 73 74 61 74 75 73 3d 24 6c 6f 67 70 72 6f 73 tstatus=$logpros
05c0: 74 61 74 75 73 0a 65 6c 69 66 20 5b 20 24 6c 6f tatus.elif [ $lo
05d0: 67 70 72 6f 73 74 61 74 75 73 20 2d 65 71 20 32 gprostatus -eq 2
05e0: 20 5d 3b 20 74 68 65 6e 0a 20 20 20 20 65 78 69 ]; then. exi
05f0: 74 73 74 61 74 75 73 3d 32 0a 65 6c 69 66 20 5b tstatus=2.elif [
0600: 20 24 6c 6f 67 70 72 6f 73 74 61 74 75 73 20 2d $logprostatus -
0610: 65 71 20 31 20 5d 3b 20 74 68 65 6e 0a 20 20 20 eq 1 ]; then.
0620: 20 65 78 69 74 73 74 61 74 75 73 3d 31 0a 65 6c exitstatus=1.el
0630: 73 65 20 0a 20 20 20 20 65 78 69 74 73 74 61 74 se . exitstat
0640: 75 73 3d 30 0a 66 69 0a 0a 24 4d 54 5f 4d 45 47 us=0.fi..$MT_MEG
0650: 41 54 45 53 54 20 2d 65 6e 76 32 66 69 6c 65 20 ATEST -env2file
0660: 2e 65 7a 73 74 65 70 73 2f 24 7b 73 74 65 70 6e .ezsteps/${stepn
0670: 61 6d 65 7d 0a 65 78 69 74 20 24 65 78 69 74 73 ame}.exit $exits
0680: 74 61 74 75 73 0a tatus.