Wiki page
[reference] by
mrwellan
2018-08-24 15:44:25.
0000: 44 20 32 30 31 38 2d 30 38 2d 32 34 54 32 31 3a D 2018-08-24T21:
0010: 34 34 3a 32 35 2e 38 38 39 0a 4c 20 72 65 66 65 44:25.889.L refe
0020: 72 65 6e 63 65 0a 4e 20 74 65 78 74 2f 70 6c 61 rence.N text/pla
0030: 69 6e 0a 50 20 31 62 39 64 64 34 66 64 34 35 61 in.P 1b9dd4fd45a
0040: 31 34 62 32 61 31 66 31 64 62 38 30 61 66 39 65 14b2a1f1db80af9e
0050: 62 31 64 64 36 34 65 61 38 39 63 64 31 0a 55 20 b1dd64ea89cd1.U
0060: 6d 72 77 65 6c 6c 61 6e 0a 57 20 32 35 39 33 39 mrwellan.W 25939
0070: 0a 2f 2f 20 54 68 69 73 20 66 69 6c 65 20 69 73 .// This file is
0080: 20 70 61 72 74 20 6f 66 20 4d 65 67 61 74 65 73 part of Megates
0090: 74 2e 0d 0a 2f 2f 20 0d 0a 2f 2f 20 20 20 20 20 t...// ..//
00a0: 4d 65 67 61 74 65 73 74 20 69 73 20 66 72 65 65 Megatest is free
00b0: 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 software: you c
00c0: 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 an redistribute
00d0: 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 it and/or modify
00e0: 0d 0a 2f 2f 20 20 20 20 20 69 74 20 75 6e 64 65 ..// it unde
00f0: 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 r the terms of t
0100: 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 he GNU General P
0110: 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 ublic License as
0120: 20 70 75 62 6c 69 73 68 65 64 20 62 79 0d 0a 2f published by../
0130: 2f 20 20 20 20 20 74 68 65 20 46 72 65 65 20 53 / the Free S
0140: 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 oftware Foundati
0150: 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 on, either versi
0160: 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 on 3 of the Lice
0170: 6e 73 65 2c 20 6f 72 0d 0a 2f 2f 20 20 20 20 20 nse, or..//
0180: 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 (at your option)
0190: 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 any later versi
01a0: 6f 6e 2e 0d 0a 2f 2f 20 0d 0a 2f 2f 20 20 20 20 on...// ..//
01b0: 20 4d 65 67 61 74 65 73 74 20 69 73 20 64 69 73 Megatest is dis
01c0: 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 tributed in the
01d0: 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c hope that it wil
01e0: 6c 20 62 65 20 75 73 65 66 75 6c 2c 0d 0a 2f 2f l be useful,..//
01f0: 20 20 20 20 20 62 75 74 20 57 49 54 48 4f 55 54 but WITHOUT
0200: 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 ANY WARRANTY; w
0210: 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 ithout even the
0220: 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 implied warranty
0230: 20 6f 66 0d 0a 2f 2f 20 20 20 20 20 4d 45 52 43 of..// MERC
0240: 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 HANTABILITY or F
0250: 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 ITNESS FOR A PAR
0260: 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e TICULAR PURPOSE.
0270: 20 20 53 65 65 20 74 68 65 0d 0a 2f 2f 20 20 20 See the..//
0280: 20 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 GNU General Pu
0290: 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 blic License for
02a0: 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0d 0a more details...
02b0: 2f 2f 20 0d 0a 2f 2f 20 20 20 20 20 59 6f 75 20 // ..// You
02c0: 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 should have rece
02d0: 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 ived a copy of t
02e0: 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 he GNU General P
02f0: 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0d 0a 2f ublic License../
0300: 2f 20 20 20 20 20 61 6c 6f 6e 67 20 77 69 74 68 / along with
0310: 20 4d 65 67 61 74 65 73 74 2e 20 20 49 66 20 6e Megatest. If n
0320: 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f ot, see <http://
0330: 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 www.gnu.org/lice
0340: 6e 73 65 73 2f 3e 2e 0d 0a 0d 0a 52 65 66 65 72 nses/>.....Refer
0350: 65 6e 63 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d ence..---------.
0360: 0a 0d 0a 4d 65 67 61 74 65 73 74 20 55 73 65 20 ...Megatest Use
0370: 4d 6f 64 65 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e Modes..~~~~~~~~~
0380: 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 2e 42 61 ~~~~~~~~~.....Ba
0390: 73 65 20 63 6f 6d 6d 61 6e 64 73 0d 0a 5b 77 69 se commands..[wi
03a0: 64 74 68 3d 22 38 30 25 22 2c 63 6f 6c 73 3d 22 dth="80%",cols="
03b0: 5e 2c 32 6d 2c 32 6d 22 2c 66 72 61 6d 65 3d 22 ^,2m,2m",frame="
03c0: 74 6f 70 62 6f 74 22 2c 6f 70 74 69 6f 6e 73 3d topbot",options=
03d0: 22 68 65 61 64 65 72 22 5d 0d 0a 7c 3d 3d 3d 3d "header"]..|====
03e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
03f0: 3d 3d 0d 0a 55 73 65 20 63 61 73 65 09 20 20 20 ==..Use case.
0400: 20 20 20 20 20 20 7c 20 4d 65 67 61 74 65 73 74 | Megatest
0410: 20 63 6f 6d 6d 61 6e 64 09 7c 20 20 6d 74 75 74 command.| mtut
0420: 69 6c 0d 0a 53 74 61 72 74 20 66 72 6f 6d 20 73 il..Start from s
0430: 63 72 61 74 63 68 20 20 20 20 20 20 20 7c 09 2d cratch |.-
0440: 72 65 72 75 6e 2d 61 6c 6c 09 7c 20 20 72 65 73 rerun-all.| res
0450: 74 61 72 74 09 0d 0a 52 65 72 75 6e 20 6e 6f 6e tart...Rerun non
0460: 2d 67 6f 6f 64 20 63 6f 6d 70 6c 65 74 65 64 20 -good completed
0470: 7c 09 2d 72 65 72 75 6e 2d 63 6c 65 61 6e 09 7c |.-rerun-clean.|
0480: 20 20 72 65 72 75 6e 63 6c 65 61 6e 09 0d 0a 52 rerunclean...R
0490: 65 72 75 6e 20 61 6c 6c 20 6e 6f 6e 2d 67 6f 6f erun all non-goo
04a0: 64 20 61 6e 64 20 6e 6f 74 20 63 6f 6d 70 6c 65 d and not comple
04b0: 74 65 64 20 79 65 74 20 7c 20 2d 73 65 74 2d 73 ted yet | -set-s
04c0: 74 61 74 65 2d 73 74 61 74 75 73 20 4b 49 4c 4c tate-status KILL
04d0: 52 45 51 3b 20 2d 72 65 72 75 6e 2d 63 6c 65 61 REQ; -rerun-clea
04e0: 6e 20 7c 20 6b 69 6c 6c 72 65 72 75 6e 09 0d 0a n | killrerun...
04f0: 43 6f 6e 74 69 6e 75 65 20 72 75 6e 20 20 20 20 Continue run
0500: 20 20 20 20 20 20 20 20 20 7c 09 2d 72 75 6e 09 |.-run.
0510: 20 20 20 20 20 20 20 20 7c 20 20 72 65 73 75 6d | resum
0520: 65 09 0d 0a 52 65 6d 6f 76 65 20 72 75 6e 09 20 e...Remove run.
0530: 20 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 2d | -
0540: 72 65 6d 6f 76 65 2d 72 75 6e 73 09 7c 20 20 63 remove-runs.| c
0550: 6c 65 61 6e 09 0d 0a 4c 6f 63 6b 20 72 75 6e 09 lean...Lock run.
0560: 20 20 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 |
0570: 2d 6c 6f 63 6b 09 20 20 20 20 20 20 20 20 7c 20 -lock. |
0580: 20 6c 6f 63 6b 09 0d 0a 55 6e 6c 6f 63 6b 20 72 lock...Unlock r
0590: 75 6e 09 20 20 20 20 20 20 20 20 20 7c 20 20 20 un. |
05a0: 20 20 20 2d 75 6e 6c 6f 63 6b 09 20 20 20 20 20 -unlock.
05b0: 20 20 20 7c 20 20 75 6e 6c 6f 63 6b 09 0d 0a 6b | unlock...k
05c0: 69 6c 6c 72 75 6e 09 20 20 20 20 20 20 20 20 20 illrun.
05d0: 20 20 20 20 20 20 20 20 7c 20 2d 73 65 74 2d 73 | -set-s
05e0: 74 61 74 65 2d 73 74 61 74 75 73 20 4b 49 4c 4c tate-status KILL
05f0: 52 45 51 3b 20 2d 6b 69 6c 6c 2d 72 75 6e 09 7c REQ; -kill-run.|
0600: 20 6b 69 6c 6c 72 75 6e 09 0d 0a 7c 3d 3d 3d 3d killrun...|====
0610: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0620: 3d 3d 0d 0a 0d 0a 43 6f 6e 66 69 67 20 46 69 6c ==....Config Fil
0630: 65 20 48 65 6c 70 65 72 73 0d 0a 7e 7e 7e 7e 7e e Helpers..~~~~~
0640: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a ~~~~~~~~~~~~~~..
0650: 0d 0a 56 61 72 69 6f 75 73 20 68 65 6c 70 65 72 ..Various helper
0660: 73 20 66 6f 72 20 6d 6f 72 65 20 61 64 76 61 6e s for more advan
0670: 63 65 64 20 63 6f 6e 66 69 67 20 66 69 6c 65 73 ced config files
0680: 2e 0d 0a 0d 0a 2e 48 65 6c 70 65 72 73 0d 0a 5b ......Helpers..[
0690: 77 69 64 74 68 3d 22 38 30 25 22 2c 63 6f 6c 73 width="80%",cols
06a0: 3d 22 5e 2c 32 6d 2c 32 6d 2c 32 6d 22 2c 66 72 ="^,2m,2m,2m",fr
06b0: 61 6d 65 3d 22 74 6f 70 62 6f 74 22 2c 6f 70 74 ame="topbot",opt
06c0: 69 6f 6e 73 3d 22 68 65 61 64 65 72 22 5d 0d 0a ions="header"]..
06d0: 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |===============
06e0: 3d 3d 3d 3d 3d 3d 3d 0d 0a 7c 48 65 6c 70 65 72 =======..|Helper
06f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0700: 20 20 20 20 20 20 7c 20 50 75 72 70 6f 73 65 20 | Purpose
0710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0720: 20 20 20 20 20 20 7c 20 56 61 6c 69 64 20 76 61 | Valid va
0730: 6c 75 65 73 20 20 20 20 20 20 20 20 20 20 20 20 lues
0740: 7c 20 43 6f 6d 6d 65 6e 74 73 0d 0a 7c 20 23 7b | Comments..| #{
0750: 73 63 68 65 6d 65 20 28 73 63 68 65 6d 65 20 63 scheme (scheme c
0760: 6f 64 65 2e 2e 2e 29 7d 20 7c 20 45 78 65 63 75 ode...)} | Execu
0770: 74 65 20 61 72 62 69 74 72 61 72 79 20 73 63 68 te arbitrary sch
0780: 65 6d 65 20 63 6f 64 65 20 7c 20 41 6e 79 20 76 eme code | Any v
0790: 61 6c 69 64 20 73 63 68 65 6d 65 20 20 20 20 20 alid scheme
07a0: 20 20 20 7c 20 56 61 6c 75 65 20 72 65 74 75 72 | Value retur
07b0: 6e 65 64 20 66 72 6f 6d 20 74 68 65 20 63 61 6c ned from the cal
07c0: 6c 20 69 73 20 63 6f 6e 76 65 72 74 65 64 20 74 l is converted t
07d0: 6f 20 61 20 73 74 72 69 6e 67 20 61 6e 64 20 70 o a string and p
07e0: 72 6f 63 65 73 73 65 64 20 61 73 20 70 61 72 74 rocessed as part
07f0: 20 6f 66 20 74 68 65 20 63 6f 6e 66 69 67 20 66 of the config f
0800: 69 6c 65 0d 0a 7c 20 23 7b 73 79 73 74 65 6d 20 ile..| #{system
0810: 63 6f 6d 6d 61 6e 64 7d 20 20 20 20 20 20 20 20 command}
0820: 20 20 7c 20 45 78 65 63 75 74 65 20 70 72 6f 67 | Execute prog
0830: 72 61 6d 2c 20 69 6e 73 65 72 74 73 20 65 78 69 ram, inserts exi
0840: 74 20 63 6f 64 65 20 20 7c 20 41 6e 79 20 76 61 t code | Any va
0850: 6c 69 64 20 55 6e 69 78 20 63 6f 6d 6d 61 6e 64 lid Unix command
0860: 20 20 7c 20 44 69 73 63 61 72 64 73 20 74 68 65 | Discards the
0870: 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 74 68 65 output from the
0880: 20 70 72 6f 67 72 61 6d 0d 0a 7c 20 23 7b 73 68 program..| #{sh
0890: 65 6c 6c 20 20 63 6f 6d 6d 61 6e 64 7d 20 6f 72 ell command} or
08a0: 20 23 7b 73 68 20 2e 2e 2e 7d 20 20 7c 20 45 78 #{sh ...} | Ex
08b0: 65 63 75 74 65 20 70 72 6f 67 72 61 6d 2c 20 69 ecute program, i
08c0: 6e 73 65 72 74 73 20 72 65 73 75 6c 74 20 66 72 nserts result fr
08d0: 6f 6d 20 73 74 64 6f 75 74 20 7c 20 41 6e 79 20 om stdout | Any
08e0: 76 61 6c 69 64 20 55 6e 69 78 20 63 6f 6d 6d 61 valid Unix comma
08f0: 6e 64 20 7c 20 56 61 6c 75 65 20 72 65 74 75 72 nd | Value retur
0900: 6e 65 64 20 66 72 6f 6d 20 74 68 65 20 63 61 6c ned from the cal
0910: 6c 20 69 73 20 63 6f 6e 76 65 72 74 65 64 20 74 l is converted t
0920: 6f 20 61 20 73 74 72 69 6e 67 20 61 6e 64 20 70 o a string and p
0930: 72 6f 63 65 73 73 65 64 20 61 73 20 70 61 72 74 rocessed as part
0940: 20 6f 66 20 74 68 65 20 63 6f 6e 66 69 67 20 66 of the config f
0950: 69 6c 65 0d 0a 7c 20 23 7b 72 65 61 6c 70 61 74 ile..| #{realpat
0960: 68 20 70 61 74 68 7d 20 6f 72 20 23 7b 72 70 20 h path} or #{rp
0970: 2e 2e 2e 7d 20 20 20 7c 20 52 65 70 6c 61 63 65 ...} | Replace
0980: 20 77 69 74 68 20 6e 6f 72 6d 61 6c 69 7a 65 64 with normalized
0990: 20 70 61 74 68 20 7c 20 4d 75 73 74 20 62 65 20 path | Must be
09a0: 61 20 76 61 6c 69 64 20 70 61 74 68 20 7c 0d 0a a valid path |..
09b0: 7c 20 23 7b 67 65 74 65 6e 76 20 56 41 52 7d 20 | #{getenv VAR}
09c0: 6f 72 20 23 7b 67 76 20 56 41 52 7d 20 20 20 20 or #{gv VAR}
09d0: 20 20 7c 20 52 65 70 6c 61 63 65 20 77 69 74 68 | Replace with
09e0: 20 63 6f 6e 74 65 6e 74 20 6f 66 20 65 6e 76 20 content of env
09f0: 76 61 72 69 61 62 6c 65 20 7c 20 4d 75 73 74 20 variable | Must
0a00: 62 65 20 61 20 76 61 6c 69 64 20 76 61 72 20 7c be a valid var |
0a10: 0d 0a 7c 20 23 7b 67 65 74 20 73 20 76 7d 20 6f ..| #{get s v} o
0a20: 72 20 23 7b 67 20 73 20 76 7d 20 20 20 20 20 7c r #{g s v} |
0a30: 20 52 65 70 6c 61 63 65 20 77 69 74 68 20 76 61 Replace with va
0a40: 72 69 61 62 6c 65 20 76 20 66 72 6f 6d 20 73 65 riable v from se
0a50: 63 74 69 6f 6e 20 73 20 7c 20 56 61 72 69 61 62 ction s | Variab
0a60: 6c 65 20 6d 75 73 74 20 62 65 20 64 65 66 69 6e le must be defin
0a70: 65 64 20 62 65 66 6f 72 65 20 75 73 65 20 7c 0d ed before use |.
0a80: 0a 7c 20 23 7b 72 67 65 74 20 76 7d 20 20 20 20 .| #{rget v}
0a90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 |
0aa0: 52 65 70 6c 61 63 65 20 77 69 74 68 20 76 61 72 Replace with var
0ab0: 69 61 62 6c 65 20 76 20 66 72 6f 6d 20 74 61 72 iable v from tar
0ac0: 67 65 74 20 6f 72 20 64 65 66 61 75 6c 74 20 6f get or default o
0ad0: 66 20 72 75 6e 63 6f 6e 66 69 67 73 20 66 69 6c f runconfigs fil
0ae0: 65 20 7c 20 7c 0d 0a 7c 20 23 7b 6d 74 72 61 68 e | |..| #{mtrah
0af0: 7d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 }
0b00: 20 20 20 20 7c 20 52 65 70 6c 61 63 65 20 77 69 | Replace wi
0b10: 74 68 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 th the path to t
0b20: 68 65 20 6d 65 67 61 74 65 73 74 20 74 65 73 74 he megatest test
0b30: 73 75 69 74 65 20 61 72 65 61 20 7c 20 7c 20 0d suite area | | .
0b40: 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .|==============
0b50: 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 43 6f 6e 66 ========....Conf
0b60: 69 67 20 46 69 6c 65 20 53 65 74 74 69 6e 67 73 ig File Settings
0b70: 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e ..~~~~~~~~~~~~~~
0b80: 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 53 65 74 74 69 6e ~~~~~~....Settin
0b90: 67 73 20 69 6e 20 6d 65 67 61 74 65 73 74 2e 63 gs in megatest.c
0ba0: 6f 6e 66 69 67 0d 0a 0d 0a 43 6f 6e 66 69 67 20 onfig....Config
0bb0: 46 69 6c 65 20 41 64 64 69 74 69 6f 6e 61 6c 20 File Additional
0bc0: 46 65 61 74 75 72 65 73 0d 0a 7e 7e 7e 7e 7e 7e Features..~~~~~~
0bd0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e ~~~~~~~~~~~~~~~~
0be0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 49 6e 63 ~~~~~~~~~....Inc
0bf0: 6c 75 64 69 6e 67 20 6f 75 74 70 75 74 20 66 72 luding output fr
0c00: 6f 6d 20 61 20 73 63 72 69 70 74 20 61 73 20 69 om a script as i
0c10: 66 20 69 74 20 77 61 73 20 69 6e 6c 69 6e 65 20 f it was inline
0c20: 74 6f 20 74 68 65 20 63 6f 6e 66 69 67 20 66 69 to the config fi
0c30: 6c 65 3a 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d le:....---------
0c40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0c50: 0d 0a 5b 73 63 72 69 70 74 69 6e 63 20 6d 79 73 ..[scriptinc mys
0c60: 63 72 69 70 74 2e 73 68 5d 0d 0a 2d 2d 2d 2d 2d cript.sh]..-----
0c70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0c80: 2d 2d 2d 2d 0d 0a 0d 0a 49 66 20 74 68 65 20 73 ----....If the s
0c90: 63 72 69 70 74 20 6f 75 74 70 75 74 73 3a 0d 0a cript outputs:..
0ca0: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..--------------
0cb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 69 74 -----------..[it
0cc0: 65 6d 73 5d 0d 0a 41 20 61 20 62 20 63 0d 0a 42 ems]..A a b c..B
0cd0: 20 64 20 65 20 66 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d d e f..--------
0ce0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0cf0: 2d 0d 0a 0d 0a 54 68 65 6e 20 74 68 65 20 63 6f -....Then the co
0d00: 6e 66 69 67 20 66 69 6c 65 20 77 6f 75 6c 64 20 nfig file would
0d10: 65 66 66 65 63 74 69 76 65 6c 79 20 61 70 70 65 effectively appe
0d20: 61 72 20 74 6f 20 63 6f 6e 74 61 69 6e 20 61 6e ar to contain an
0d30: 20 69 74 65 6d 73 20 73 65 63 74 69 6f 6e 0d 0a items section..
0d40: 65 78 61 63 74 6c 79 20 6c 69 6b 65 20 74 68 65 exactly like the
0d50: 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 74 68 65 output from the
0d60: 20 73 63 72 69 70 74 2e 20 54 68 69 73 20 69 73 script. This is
0d70: 20 75 73 65 66 75 6c 20 77 68 65 6e 20 64 79 6e useful when dyn
0d80: 61 6d 69 63 61 6c 6c 79 0d 0a 63 72 65 61 74 69 amically..creati
0d90: 6e 67 20 69 74 65 6d 73 2c 20 69 74 65 6d 73 74 ng items, itemst
0da0: 61 62 6c 65 73 20 61 6e 64 20 6f 74 68 65 72 20 ables and other
0db0: 63 6f 6e 66 69 67 20 73 74 72 75 63 74 75 72 65 config structure
0dc0: 73 2e 20 59 6f 75 20 63 61 6e 20 73 65 65 20 74 s. You can see t
0dd0: 68 65 0d 0a 65 78 70 61 6e 73 69 6f 6e 20 6f 66 he..expansion of
0de0: 20 74 68 65 20 63 61 6c 6c 20 62 79 20 6c 6f 6f the call by loo
0df0: 6b 69 6e 67 20 69 6e 20 74 68 65 20 63 61 63 68 king in the cach
0e00: 65 64 20 66 69 6c 65 73 20 28 6c 6f 6f 6b 20 69 ed files (look i
0e10: 6e 20 79 6f 75 72 20 6c 69 6e 6b 74 72 65 65 0d n your linktree.
0e20: 0a 66 6f 72 20 6d 65 67 61 74 65 73 74 2e 63 6f .for megatest.co
0e30: 6e 66 69 67 20 61 6e 64 20 72 75 6e 63 6f 6e 66 nfig and runconf
0e40: 69 67 73 2e 63 6f 6e 66 69 67 20 63 61 63 68 65 igs.config cache
0e50: 20 66 69 6c 65 73 20 61 6e 64 20 69 6e 20 79 6f files and in yo
0e60: 75 72 20 74 65 73 74 20 72 75 6e 0d 0a 61 72 65 ur test run..are
0e70: 61 73 20 66 6f 72 20 74 68 65 20 65 78 70 61 6e as for the expan
0e80: 64 65 64 20 61 6e 64 20 63 61 63 68 65 64 20 74 ded and cached t
0e90: 65 73 74 63 6f 6e 66 69 67 29 2e 0d 0a 0d 0a 57 estconfig).....W
0ea0: 69 6c 64 63 61 72 64 73 20 61 6e 64 20 72 65 67 ildcards and reg
0eb0: 65 78 65 73 20 69 6e 20 54 61 72 67 65 74 73 0d exes in Targets.
0ec0: 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...-------------
0ed0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 61 ------------..[a
0ee0: 2f 32 2f 62 5d 0d 0a 56 41 52 31 20 56 41 4c 31 /2/b]..VAR1 VAL1
0ef0: 0d 0a 0d 0a 5b 61 2f 25 2f 62 5d 0d 0a 56 41 52 ....[a/%/b]..VAR
0f00: 31 20 56 41 4c 32 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 1 VAL2..--------
0f10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0f20: 2d 0d 0a 0d 0a 57 69 6c 6c 20 72 65 73 75 6c 74 -....Will result
0f30: 20 69 6e 3a 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d in:....--------
0f40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0f50: 2d 0d 0a 5b 61 2f 32 2f 62 5d 0d 0a 56 41 52 31 -..[a/2/b]..VAR1
0f60: 20 56 41 4c 32 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d VAL2..---------
0f70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0f80: 0d 0a 0d 0a 43 61 6e 20 75 73 65 20 65 69 74 68 ....Can use eith
0f90: 65 72 20 77 69 6c 64 63 61 72 64 20 6f 66 20 22 er wildcard of "
0fa0: 25 22 20 6f 72 20 61 20 72 65 67 75 6c 61 72 20 %" or a regular
0fb0: 65 78 70 72 65 73 73 69 6f 6e 3a 0d 0a 0d 0a 2d expression:....-
0fc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0fd0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 2f 61 62 63 2e --------..[/abc.
0fe0: 2a 64 65 66 2f 5d 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d *def/]..--------
0ff0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1000: 2d 0d 0a 0d 0a 44 69 73 6b 20 53 70 61 63 65 20 -....Disk Space
1010: 43 68 65 63 6b 73 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e Checks..^^^^^^^^
1020: 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 53 6f 6d ^^^^^^^^^....Som
1030: 65 20 70 61 72 61 6d 65 74 65 72 73 20 79 6f 75 e parameters you
1040: 20 63 61 6e 20 70 75 74 20 69 6e 20 74 68 65 20 can put in the
1050: 5b 73 65 74 75 70 5d 20 73 65 63 74 69 6f 6e 20 [setup] section
1060: 6f 66 20 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 of megatest.conf
1070: 69 67 3a 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d ig:....---------
1080: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 20 6d 69 ----------..# mi
1090: 6e 69 6d 75 6d 20 73 70 61 63 65 20 72 65 71 75 nimum space requ
10a0: 69 72 65 64 20 69 6e 20 61 20 72 75 6e 20 64 69 ired in a run di
10b0: 73 6b 20 0d 0a 6d 69 6e 73 70 61 63 65 20 31 30 sk ..minspace 10
10c0: 30 30 30 30 30 30 0d 0a 0d 0a 23 20 6d 69 6e 69 000000....# mini
10d0: 6d 75 6d 20 73 70 61 63 65 20 72 65 71 75 69 72 mum space requir
10e0: 65 64 20 69 6e 20 64 62 64 69 72 3a 0d 0a 64 62 ed in dbdir:..db
10f0: 64 69 72 2d 73 70 61 63 65 2d 72 65 71 75 69 72 dir-space-requir
1100: 65 64 20 31 30 30 30 30 30 0d 0a 0d 0a 23 20 73 ed 100000....# s
1110: 63 72 69 70 74 20 74 68 61 74 20 74 61 6b 65 73 cript that takes
1120: 20 70 61 74 68 20 61 73 20 70 61 72 61 6d 65 74 path as paramet
1130: 65 72 20 61 6e 64 20 72 65 74 75 72 6e 73 20 6e er and returns n
1140: 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 61 umber of bytes a
1150: 76 61 69 6c 61 62 6c 65 3a 0d 0a 66 72 65 65 2d vailable:..free-
1160: 73 70 61 63 65 2d 73 63 72 69 70 74 20 63 68 65 space-script che
1170: 63 6b 2d 73 70 61 63 65 2e 73 68 0d 0a 2d 2d 2d ck-space.sh..---
1180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1190: 0d 0a 0d 0a 54 72 69 6d 20 74 72 61 69 6c 69 6e ....Trim trailin
11a0: 67 20 73 70 61 63 65 73 0d 0a 5e 5e 5e 5e 5e 5e g spaces..^^^^^^
11b0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a ^^^^^^^^^^^^^^..
11c0: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..--------------
11d0: 2d 2d 2d 2d 0d 0a 5b 63 6f 6e 66 69 67 66 3a 73 ----..[configf:s
11e0: 65 74 74 69 6e 67 73 20 74 72 69 6d 2d 74 72 61 ettings trim-tra
11f0: 69 6c 69 6e 67 2d 73 70 61 63 65 73 20 79 65 73 iling-spaces yes
1200: 5d 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ]..-------------
1210: 2d 2d 2d 2d 2d 0d 0a 0d 0a 4a 6f 62 20 53 75 62 -----....Job Sub
1220: 6d 69 73 73 69 6f 6e 20 43 6f 6e 74 72 6f 6c 0d mission Control.
1230: 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e .^^^^^^^^^^^^^^^
1240: 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 53 75 62 6d 69 ^^^^^^^....Submi
1250: 74 20 6a 6f 62 73 20 74 6f 20 48 6f 73 74 20 54 t jobs to Host T
1260: 79 70 65 73 20 62 61 73 65 64 20 6f 6e 20 54 65 ypes based on Te
1270: 73 74 20 4e 61 6d 65 0d 0a 2b 2b 2b 2b 2b 2b 2b st Name..+++++++
1280: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b ++++++++++++++++
1290: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b ++++++++++++++++
12a0: 2b 2b 2b 2b 2b 0d 0a 0d 0a 2e 49 6e 20 6d 65 67 +++++.....In meg
12b0: 61 74 65 73 74 2e 63 6f 6e 66 69 67 0d 0a 2d 2d atest.config..--
12c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
12d0: 2d 2d 2d 2d 2d 2d 0d 0a 5b 68 6f 73 74 2d 74 79 ------..[host-ty
12e0: 70 65 73 5d 0d 0a 67 65 6e 65 72 61 6c 20 20 20 pes]..general
12f0: 6e 62 66 61 6b 65 0d 0a 72 65 6d 6f 74 65 20 20 nbfake..remote
1300: 20 20 62 73 75 62 0d 0a 0d 0a 5b 6c 61 75 6e 63 bsub....[launc
1310: 68 65 72 73 5d 0d 0a 72 75 6e 66 69 72 73 74 2f hers]..runfirst/
1320: 73 75 6d 25 20 72 65 6d 6f 74 65 0d 0a 25 20 67 sum% remote..% g
1330: 65 6e 65 72 61 6c 0d 0a 0d 0a 5b 6a 6f 62 74 6f eneral....[jobto
1340: 6f 6c 73 5d 0d 0a 6c 61 75 6e 63 68 65 72 20 62 ols]..launcher b
1350: 73 75 62 0d 0a 23 20 69 66 20 64 65 66 69 6e 65 sub..# if define
1360: 64 20 61 6e 64 20 6e 6f 74 20 22 6e 6f 22 20 66 d and not "no" f
1370: 6c 65 78 69 2d 6c 61 75 6e 63 68 65 72 20 77 69 lexi-launcher wi
1380: 6c 6c 20 62 79 70 61 73 73 20 6c 61 75 6e 63 68 ll bypass launch
1390: 65 72 20 75 6e 6c 65 73 73 20 0d 0a 23 20 74 68 er unless ..# th
13a0: 65 72 65 20 69 73 20 6e 6f 20 68 6f 73 74 2d 74 ere is no host-t
13b0: 79 70 65 20 6d 61 74 63 68 2e 0d 0a 66 6c 65 78 ype match...flex
13c0: 69 2d 6c 61 75 6e 63 68 65 72 20 79 65 73 0d 0a i-launcher yes..
13d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13e0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 68 6f 73 74 --------....host
13f0: 2d 74 79 70 65 73 0d 0a 2b 2b 2b 2b 2b 2b 2b 2b -types..++++++++
1400: 2b 2b 0d 0a 0d 0a 4c 69 73 74 20 6f 66 20 68 6f ++....List of ho
1410: 73 74 20 74 79 70 65 73 20 61 6e 64 20 74 68 65 st types and the
1420: 20 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 74 6f 20 commandline to
1430: 72 75 6e 20 61 20 6a 6f 62 20 6f 6e 20 74 68 61 run a job on tha
1440: 74 20 68 6f 73 74 20 74 79 70 65 2e 0d 0a 0d 0a t host type.....
1450: 2e 68 6f 73 74 2d 74 79 70 65 20 3d 3e 20 6c 61 .host-type => la
1460: 75 6e 63 68 20 63 6f 6d 6d 61 6e 64 0d 0a 2d 2d unch command..--
1470: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 67 65 6e 65 ----------..gene
1480: 72 61 6c 20 6e 62 66 61 6b 65 0d 0a 2d 2d 2d 2d ral nbfake..----
1490: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 6c 61 75 6e --------....laun
14a0: 63 68 65 72 73 0d 0a 2b 2b 2b 2b 2b 2b 2b 2b 2b chers..+++++++++
14b0: 0d 0a 0d 0a 2e 74 65 73 74 2f 69 74 65 6d 70 61 .....test/itempa
14c0: 74 68 20 3d 3e 20 68 6f 73 74 2d 74 79 70 65 0d th => host-type.
14d0: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 72 .------------..r
14e0: 75 6e 66 69 72 73 74 2f 73 75 6d 25 20 72 65 6d unfirst/sum% rem
14f0: 6f 74 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ote..-----------
1500: 2d 0d 0a 0d 0a 4d 69 73 63 65 6c 6c 61 6e 65 6f -....Miscellaneo
1510: 75 73 20 53 65 74 75 70 20 49 74 65 6d 73 0d 0a us Setup Items..
1520: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b ++++++++++++++++
1530: 2b 2b 2b 2b 2b 2b 2b 2b 2b 0d 0a 0d 0a 41 74 74 +++++++++....Att
1540: 65 6d 70 74 20 74 6f 20 72 65 72 75 6e 20 74 65 empt to rerun te
1550: 73 74 73 20 69 6e 20 22 53 54 55 43 4b 2f 44 45 sts in "STUCK/DE
1560: 41 44 22 2c 20 22 6e 2f 61 22 2c 20 22 5a 45 52 AD", "n/a", "ZER
1570: 4f 5f 49 54 45 4d 53 22 20 73 74 61 74 65 73 2e O_ITEMS" states.
1580: 0d 0a 0d 0a 2e 49 6e 20 6d 65 67 61 74 65 73 74 .....In megatest
1590: 2e 63 6f 6e 66 69 67 0d 0a 2d 2d 2d 2d 2d 2d 2d .config..-------
15a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 73 65 -----------..[se
15b0: 74 75 70 5d 0d 0a 72 65 72 75 6e 73 20 35 0d 0a tup]..reruns 5..
15c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
15d0: 2d 2d 0d 0a 0d 0a 52 65 70 6c 61 63 65 20 74 68 --....Replace th
15e0: 65 20 64 65 66 61 75 6c 74 20 62 6c 61 63 6b 6c e default blackl
15f0: 69 73 74 65 64 20 65 6e 76 69 72 6f 6e 6d 65 6e isted environmen
1600: 74 20 76 61 72 69 61 62 6c 65 73 20 77 69 74 68 t variables with
1610: 20 75 73 65 72 20 73 75 70 70 6c 69 65 64 0d 0a user supplied..
1620: 6c 69 73 74 2e 0d 0a 0d 0a 44 65 66 61 75 6c 74 list.....Default
1630: 20 6c 69 73 74 3a 20 55 53 45 52 20 48 4f 4d 45 list: USER HOME
1640: 20 44 49 53 50 4c 41 59 20 4c 53 5f 43 4f 4c 4f DISPLAY LS_COLO
1650: 52 53 20 58 4b 45 59 53 59 4d 44 42 20 45 44 49 RS XKEYSYMDB EDI
1660: 54 4f 52 20 4d 41 4b 45 46 4c 41 47 53 20 4d 41 TOR MAKEFLAGS MA
1670: 4b 45 46 20 4d 41 4b 45 4f 56 45 52 52 49 44 45 KEF MAKEOVERRIDE
1680: 53 0d 0a 0d 0a 2e 41 64 64 20 61 20 22 62 61 64 S.....Add a "bad
1690: 22 20 76 61 72 69 61 62 6c 65 20 22 50 52 4f 4d " variable "PROM
16a0: 50 54 22 20 74 6f 20 74 68 65 20 76 61 72 69 61 PT" to the varia
16b0: 62 6c 65 73 20 74 68 61 74 20 77 69 6c 6c 20 62 bles that will b
16c0: 65 20 63 6f 6d 6d 65 6e 74 65 64 20 6f 75 74 0d e commented out.
16d0: 0a 69 6e 20 74 68 65 20 6d 65 67 61 74 65 73 74 .in the megatest
16e0: 2e 73 68 20 61 6e 64 20 6d 65 67 61 74 65 73 74 .sh and megatest
16f0: 2e 63 73 68 20 66 69 6c 65 73 3a 0d 0a 2d 2d 2d .csh files:..---
1700: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
1710: 5b 73 65 74 75 70 5d 0d 0a 62 6c 61 63 6b 6c 69 [setup]..blackli
1720: 73 74 76 61 72 73 20 55 53 45 52 20 48 4f 4d 45 stvars USER HOME
1730: 20 44 49 53 50 4c 41 59 20 4c 53 5f 43 4f 4c 4f DISPLAY LS_COLO
1740: 52 53 20 58 4b 45 59 53 59 4d 44 42 20 45 44 49 RS XKEYSYMDB EDI
1750: 54 4f 52 20 4d 41 4b 45 46 4c 41 47 53 20 50 52 TOR MAKEFLAGS PR
1760: 4f 4d 50 54 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d OMPT..----------
1770: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 52 75 6e 20 74 -------....Run t
1780: 69 6d 65 20 6c 69 6d 69 74 0d 0a 2b 2b 2b 2b 2b ime limit..+++++
1790: 2b 2b 2b 2b 2b 2b 2b 2b 2b 0d 0a 0d 0a 2d 2d 2d +++++++++....---
17a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
17b0: 5b 73 65 74 75 70 5d 0d 0a 23 20 74 68 69 73 20 [setup]..# this
17c0: 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c will automatical
17d0: 6c 79 20 6b 69 6c 6c 20 74 68 65 20 74 65 73 74 ly kill the test
17e0: 20 69 66 20 69 74 20 72 75 6e 73 20 66 6f 72 20 if it runs for
17f0: 6d 6f 72 65 20 74 68 61 6e 20 31 68 20 32 6d 20 more than 1h 2m
1800: 61 6e 64 20 33 73 0d 0a 72 75 6e 74 69 6d 65 6c and 3s..runtimel
1810: 69 6d 20 31 68 20 32 6d 20 33 73 0d 0a 2d 2d 2d im 1h 2m 3s..---
1820: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
1830: 0d 0a 54 65 73 74 73 20 62 72 6f 77 73 65 72 20 ..Tests browser
1840: 76 69 65 77 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e view..~~~~~~~~~~
1850: 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 54 68 65 20 ~~~~~~~~....The
1860: 74 65 73 74 73 20 62 72 6f 77 73 65 72 20 28 73 tests browser (s
1870: 65 65 20 74 68 65 20 52 75 6e 20 43 6f 6e 74 72 ee the Run Contr
1880: 6f 6c 20 74 61 62 20 6f 6e 20 74 68 65 20 64 61 ol tab on the da
1890: 73 68 62 6f 61 72 64 29 20 68 61 73 20 74 77 6f shboard) has two
18a0: 20 76 69 65 77 73 20 66 6f 72 20 64 69 73 70 6c views for displ
18b0: 61 79 69 6e 67 20 74 68 65 20 74 65 73 74 73 2e aying the tests.
18c0: 20 0d 0a 0d 0a 2e 20 44 6f 74 20 28 67 72 61 70 ..... Dot (grap
18d0: 68 76 69 7a 29 20 62 61 73 65 64 20 74 72 65 65 hviz) based tree
18e0: 0d 0a 2e 20 4e 6f 20 64 6f 74 2c 20 70 6c 61 69 ... No dot, plai
18f0: 6e 20 6c 69 73 74 69 6e 67 0d 0a 0d 0a 54 68 65 n listing....The
1900: 20 64 65 66 61 75 6c 74 20 69 73 20 74 68 65 20 default is the
1910: 67 72 61 70 68 76 69 7a 20 62 61 73 65 64 20 74 graphviz based t
1920: 72 65 65 20 62 75 74 20 69 66 20 79 6f 75 72 20 ree but if your
1930: 74 65 73 74 73 20 64 6f 6e 27 74 20 76 69 65 77 tests don't view
1940: 0d 0a 77 65 6c 6c 20 69 6e 20 74 68 61 74 20 6d ..well in that m
1950: 6f 64 65 20 74 68 65 6e 20 75 73 65 20 22 6e 6f ode then use "no
1960: 64 6f 74 22 20 74 6f 20 74 75 72 6e 20 69 74 20 dot" to turn it
1970: 6f 66 66 2e 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d off.....--------
1980: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 73 65 74 75 ---------..[setu
1990: 70 5d 0d 0a 6e 6f 64 6f 74 0d 0a 2d 2d 2d 2d 2d p]..nodot..-----
19a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a ------------....
19b0: 43 61 70 74 75 72 69 6e 67 20 54 65 73 74 20 44 Capturing Test D
19c0: 61 74 61 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e ata..~~~~~~~~~~~
19d0: 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 49 6e 20 61 ~~~~~~~~....In a
19e0: 20 74 65 73 74 20 79 6f 75 20 63 61 6e 20 63 61 test you can ca
19f0: 70 74 75 72 65 20 61 72 62 69 74 72 61 72 79 20 pture arbitrary
1a00: 76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 72 6f variables and ro
1a10: 6c 6c 20 74 68 65 6d 20 75 70 20 69 6e 20 74 68 ll them up in th
1a20: 65 0d 0a 6d 65 67 61 74 65 73 74 20 64 61 74 61 e..megatest data
1a30: 62 61 73 65 20 66 6f 72 20 76 69 65 77 69 6e 67 base for viewing
1a40: 20 6f 6e 20 74 68 65 20 64 61 73 68 62 6f 61 72 on the dashboar
1a50: 64 20 6f 72 20 77 65 62 20 61 70 70 2e 0d 0a 0d d or web app....
1a60: 0a 2e 49 6e 20 61 20 74 65 73 74 20 61 73 20 61 ..In a test as a
1a70: 20 73 63 72 69 70 74 0d 0a 2d 2d 2d 2d 2d 2d 2d script..-------
1a80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1a90: 2d 0d 0a 24 4d 54 5f 4d 45 47 41 54 45 53 54 20 -..$MT_MEGATEST
1aa0: 2d 6c 6f 61 64 2d 74 65 73 74 2d 64 61 74 61 20 -load-test-data
1ab0: 3c 3c 20 45 4f 46 0d 0a 66 6f 6f 2c 62 61 72 2c << EOF..foo,bar,
1ac0: 20 20 20 31 2e 32 2c 20 20 31 2e 39 2c 20 3e 0d 1.2, 1.9, >.
1ad0: 0a 66 6f 6f 2c 72 61 62 2c 20 31 2e 30 65 39 2c .foo,rab, 1.0e9,
1ae0: 20 31 30 65 39 2c 20 31 65 39 0d 0a 66 6f 6f 2c 10e9, 1e9..foo,
1af0: 62 6c 61 2c 20 20 20 31 2e 32 2c 20 20 31 2e 39 bla, 1.2, 1.9
1b00: 2c 20 3c 0d 0a 66 6f 6f 2c 62 61 6c 2c 20 20 20 , <..foo,bal,
1b10: 31 2e 32 2c 20 20 31 2e 32 2c 20 3c 20 20 20 2c 1.2, 1.2, < ,
1b20: 20 20 20 20 20 2c 43 68 65 63 6b 20 66 6f 72 20 ,Check for
1b30: 6f 76 65 72 6c 6f 61 64 0d 0a 66 6f 6f 2c 61 6c overload..foo,al
1b40: 62 2c 20 20 20 31 2e 32 2c 20 20 31 2e 32 2c 20 b, 1.2, 1.2,
1b50: 3c 3d 20 20 2c 20 41 6d 70 73 2c 54 68 69 73 20 <= , Amps,This
1b60: 69 73 20 74 68 65 20 68 69 67 68 20 70 6f 77 65 is the high powe
1b70: 72 20 63 69 72 63 75 69 74 20 74 65 73 74 0d 0a r circuit test..
1b80: 66 6f 6f 2c 61 62 6c 2c 20 20 20 31 2e 32 2c 20 foo,abl, 1.2,
1b90: 20 31 2e 33 2c 20 30 2e 31 0d 0a 66 6f 6f 2c 62 1.3, 0.1..foo,b
1ba0: 72 61 2c 20 20 20 31 2e 32 2c 20 70 61 73 73 2c ra, 1.2, pass,
1bb0: 20 73 69 6c 6c 79 20 73 74 75 66 66 0d 0a 66 61 silly stuff..fa
1bc0: 7a 2c 62 61 72 2c 20 20 20 20 31 30 2c 20 20 38 z,bar, 10, 8
1bd0: 6d 41 2c 20 20 20 20 20 2c 20 20 20 20 20 2c 22 mA, , ,"
1be0: 74 68 69 73 20 69 73 20 61 20 63 6f 6d 6d 65 6e this is a commen
1bf0: 74 22 0d 0a 45 4f 46 0d 0a 2d 2d 2d 2d 2d 2d 2d t"..EOF..-------
1c00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1c10: 2d 0d 0a 0d 0a 41 6c 74 65 72 6e 61 74 69 76 65 -....Alternative
1c20: 6c 79 20 79 6f 75 20 63 61 6e 20 75 73 65 20 6c ly you can use l
1c30: 6f 67 70 72 6f 20 74 72 69 67 67 65 72 73 20 74 ogpro triggers t
1c40: 6f 20 63 61 70 74 75 72 65 20 76 61 6c 75 65 73 o capture values
1c50: 20 61 6e 64 20 69 6e 6a 65 63 74 20 74 68 65 6d and inject them
1c60: 0d 0a 69 6e 74 6f 20 6d 65 67 61 74 65 73 74 20 ..into megatest
1c70: 75 73 69 6e 67 20 74 68 65 20 2d 73 65 74 2d 76 using the -set-v
1c80: 61 6c 75 65 73 20 6d 65 63 68 61 6e 69 73 6d 3a alues mechanism:
1c90: 0d 0a 0d 0a 2e 4d 65 67 61 74 65 73 74 20 68 65 .....Megatest he
1ca0: 6c 70 20 72 65 6c 61 74 65 64 20 74 6f 20 2d 73 lp related to -s
1cb0: 65 74 2d 76 61 6c 75 65 73 0d 0a 2d 2d 2d 2d 2d et-values..-----
1cc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1cd0: 2d 2d 2d 0d 0a 54 65 73 74 20 64 61 74 61 20 63 ---..Test data c
1ce0: 61 70 74 75 72 65 0d 0a 20 20 2d 73 65 74 2d 76 apture.. -set-v
1cf0: 61 6c 75 65 73 20 20 20 20 20 20 20 20 20 20 20 alues
1d00: 20 20 3a 20 75 70 64 61 74 65 20 6f 72 20 73 65 : update or se
1d10: 74 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 t values in the
1d20: 74 65 73 74 64 61 74 61 20 74 61 62 6c 65 0d 0a testdata table..
1d30: 20 20 3a 63 61 74 65 67 6f 72 79 20 20 20 20 20 :category
1d40: 20 20 20 20 20 20 20 20 20 20 3a 20 73 65 74 20 : set
1d50: 74 68 65 20 63 61 74 65 67 6f 72 79 20 66 69 65 the category fie
1d60: 6c 64 20 28 6f 70 74 69 6f 6e 61 6c 29 0d 0a 20 ld (optional)..
1d70: 20 3a 76 61 72 69 61 62 6c 65 20 20 20 20 20 20 :variable
1d80: 20 20 20 20 20 20 20 20 20 3a 20 73 65 74 20 74 : set t
1d90: 68 65 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 he variable name
1da0: 20 28 6f 70 74 69 6f 6e 61 6c 29 0d 0a 20 20 3a (optional).. :
1db0: 76 61 6c 75 65 20 20 20 20 20 20 20 20 20 20 20 value
1dc0: 20 20 20 20 20 20 20 3a 20 76 61 6c 75 65 20 6d : value m
1dd0: 65 61 73 75 72 65 64 20 28 72 65 71 75 69 72 65 easured (require
1de0: 64 29 0d 0a 20 20 3a 65 78 70 65 63 74 65 64 20 d).. :expected
1df0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 :
1e00: 76 61 6c 75 65 20 65 78 70 65 63 74 65 64 20 28 value expected (
1e10: 72 65 71 75 69 72 65 64 29 0d 0a 20 20 3a 74 6f required).. :to
1e20: 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l
1e30: 20 20 20 20 20 3a 20 7c 76 61 6c 75 65 2d 65 78 : |value-ex
1e40: 70 65 63 74 7c 20 3c 3d 20 74 6f 6c 20 28 72 65 pect| <= tol (re
1e50: 71 75 69 72 65 64 2c 20 63 61 6e 20 62 65 20 3c quired, can be <
1e60: 2c 20 3e 2c 20 3e 3d 2c 20 3c 3d 20 6f 72 20 6e , >, >=, <= or n
1e70: 75 6d 62 65 72 29 0d 0a 20 20 3a 75 6e 69 74 73 umber).. :units
1e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e90: 20 20 3a 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 : name of the
1ea0: 75 6e 69 74 73 20 66 6f 72 20 76 61 6c 75 65 2c units for value,
1eb0: 20 65 78 70 65 63 74 65 64 5f 76 61 6c 75 65 20 expected_value
1ec0: 65 74 63 2e 20 28 6f 70 74 69 6f 6e 61 6c 29 0d etc. (optional).
1ed0: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .---------------
1ee0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 44 61 73 ---------....Das
1ef0: 68 62 6f 61 72 64 20 73 65 74 74 69 6e 67 73 0d hboard settings.
1f00: 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e .~~~~~~~~~~~~~~~
1f10: 7e 7e 7e 0d 0a 0d 0a 2e 52 75 6e 73 20 74 61 62 ~~~.....Runs tab
1f20: 20 62 75 74 74 6f 6e 73 2c 20 66 6f 6e 74 20 61 buttons, font a
1f30: 6e 64 20 73 69 7a 65 0d 0a 2d 2d 2d 2d 2d 2d 2d nd size..-------
1f40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 64 61 -----------..[da
1f50: 73 68 62 6f 61 72 64 5d 0d 0a 62 74 6e 2d 68 65 shboard]..btn-he
1f60: 69 67 68 74 20 78 31 34 0d 0a 62 74 6e 2d 66 6f ight x14..btn-fo
1f70: 6e 74 73 7a 20 31 30 0d 0a 63 65 6c 6c 2d 77 69 ntsz 10..cell-wi
1f80: 64 74 68 20 36 30 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d dth 60..--------
1f90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 44 61 ----------....Da
1fa0: 74 61 62 61 73 65 20 73 65 74 74 69 6e 67 73 0d tabase settings.
1fb0: 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e .~~~~~~~~~~~~~~~
1fc0: 7e 7e 0d 0a 0d 0a 2e 44 61 74 61 62 61 73 65 20 ~~.....Database
1fd0: 63 6f 6e 66 69 67 20 73 65 74 74 69 6e 67 73 20 config settings
1fe0: 69 6e 20 5b 73 65 74 75 70 5d 20 73 65 63 74 69 in [setup] secti
1ff0: 6f 6e 20 6f 66 20 6d 65 67 61 74 65 73 74 2e 63 on of megatest.c
2000: 6f 6e 66 69 67 0d 0a 5b 77 69 64 74 68 3d 22 37 onfig..[width="7
2010: 30 25 22 2c 63 6f 6c 73 3d 22 5e 2c 32 6d 2c 32 0%",cols="^,2m,2
2020: 6d 2c 32 6d 22 2c 66 72 61 6d 65 3d 22 74 6f 70 m,2m",frame="top
2030: 62 6f 74 22 2c 6f 70 74 69 6f 6e 73 3d 22 68 65 bot",options="he
2040: 61 64 65 72 22 5d 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d ader"]..|=======
2050: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d ===============.
2060: 0a 7c 56 61 72 20 20 20 20 20 20 20 20 20 20 20 .|Var
2070: 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 50 75 | Pu
2080: 72 70 6f 73 65 20 20 20 20 20 20 20 20 20 20 20 rpose
2090: 20 7c 20 56 61 6c 69 64 20 76 61 6c 75 65 73 20 | Valid values
20a0: 20 20 20 20 20 20 20 20 20 20 20 7c 20 43 6f 6d | Com
20b0: 6d 65 6e 74 73 0d 0a 7c 64 65 6c 61 79 2d 6f 6e ments..|delay-on
20c0: 2d 62 75 73 79 20 20 20 20 20 20 20 20 20 20 20 -busy
20d0: 20 20 7c 20 50 72 65 76 65 6e 74 20 63 6f 6e 63 | Prevent conc
20e0: 75 72 72 65 6e 74 20 61 63 63 65 73 73 20 69 73 urrent access is
20f0: 73 75 65 73 20 7c 20 79 65 73 5c 7c 6e 6f 20 6f sues | yes\|no o
2100: 72 20 6e 6f 74 20 64 65 66 69 6e 65 64 20 7c 20 r not defined |
2110: 44 65 66 61 75 6c 74 3d 6e 6f 2c 20 6d 61 79 20 Default=no, may
2120: 68 65 6c 70 20 6f 6e 20 73 6f 6d 65 20 6e 65 74 help on some net
2130: 77 6f 72 6b 20 66 69 6c 65 20 73 79 73 74 65 6d work file system
2140: 73 2c 20 6d 61 79 20 73 6c 6f 77 20 74 68 69 6e s, may slow thin
2150: 67 73 20 64 6f 77 6e 20 61 6c 73 6f 2e 0d 0a 7c gs down also...|
2160: 66 61 73 74 73 74 61 72 74 09 09 20 20 20 7c 20 faststart.. |
2170: 41 6c 6c 20 64 69 72 65 63 74 20 66 69 6c 65 20 All direct file
2180: 61 63 63 65 73 73 20 74 6f 20 73 71 6c 69 74 65 access to sqlite
2190: 20 64 62 20 66 69 6c 65 73 20 7c 20 79 65 73 5c db files | yes\
21a0: 7c 6e 6f 20 6f 72 20 6e 6f 74 20 64 65 66 69 6e |no or not defin
21b0: 65 64 20 7c 20 44 65 66 61 75 6c 74 3d 79 65 73 ed | Default=yes
21c0: 2c 20 73 75 67 67 65 73 74 20 6e 6f 20 66 6f 72 , suggest no for
21d0: 20 63 65 6e 74 72 61 6c 20 61 75 74 6f 6d 61 74 central automat
21e0: 65 64 20 73 79 73 74 65 6d 73 20 61 6e 64 20 79 ed systems and y
21f0: 65 73 20 66 6f 72 20 69 6e 74 65 72 61 63 74 69 es for interacti
2200: 76 65 20 75 73 65 0d 0a 7c 68 6f 6d 65 68 6f 73 ve use..|homehos
2210: 74 20 09 09 20 20 20 7c 20 53 74 61 72 74 20 73 t .. | Start s
2220: 65 72 76 65 72 73 20 6f 6e 20 74 68 69 73 20 68 ervers on this h
2230: 6f 73 74 20 7c 20 3c 68 6f 73 74 6e 61 6d 65 3e ost | <hostname>
2240: 20 7c 20 44 65 66 61 75 6c 74 73 20 74 6f 20 6c | Defaults to l
2250: 6f 63 61 6c 20 68 6f 73 74 0d 0a 7c 68 6f 73 74 ocal host..|host
2260: 6e 61 6d 65 09 09 20 20 20 7c 20 48 6f 73 74 6e name.. | Hostn
2270: 61 6d 65 20 74 6f 20 62 69 6e 64 20 74 6f 20 7c ame to bind to |
2280: 20 3c 68 6f 73 74 6e 61 6d 65 3e 5c 7c 2d 09 20 <hostname>\|-.
2290: 20 7c 20 4f 6e 20 6d 75 6c 74 69 2d 68 6f 6d 65 | On multi-home
22a0: 64 20 68 6f 73 74 73 20 61 6c 6c 6f 77 73 20 62 d hosts allows b
22b0: 69 6e 64 69 6e 67 20 74 6f 20 73 70 65 63 69 66 inding to specif
22c0: 69 63 20 68 6f 73 74 6e 61 6d 65 0d 0a 7c 6c 6f ic hostname..|lo
22d0: 77 70 6f 72 74 09 09 20 20 20 7c 20 53 74 61 72 wport.. | Star
22e0: 74 20 73 65 61 72 63 68 69 6e 67 20 66 6f 72 20 t searching for
22f0: 61 20 70 6f 72 74 20 61 74 20 74 68 69 73 20 70 a port at this p
2300: 6f 72 74 6e 75 6d 7c 20 33 32 37 36 38 20 7c 20 ortnum| 32768 |
2310: 0d 0a 7c 72 65 71 75 69 72 65 64 09 09 20 20 20 ..|required..
2320: 7c 20 53 65 72 76 65 72 20 72 65 71 75 69 72 65 | Server require
2330: 64 20 20 20 20 7c 20 79 65 73 5c 7c 6e 6f 20 6f d | yes\|no o
2340: 72 20 6e 6f 74 20 64 65 66 69 6e 65 64 20 20 7c r not defined |
2350: 20 44 65 66 61 75 6c 74 3d 6e 6f 2c 20 66 6f 72 Default=no, for
2360: 63 65 20 73 74 61 72 74 20 6f 66 20 73 65 72 76 ce start of serv
2370: 65 72 20 61 6c 77 61 79 73 0d 0a 7c 73 65 72 76 er always..|serv
2380: 65 72 2d 71 75 65 72 79 2d 74 68 72 65 73 68 6f er-query-thresho
2390: 6c 64 09 20 20 20 7c 20 53 74 61 72 74 20 73 65 ld. | Start se
23a0: 72 76 65 72 20 77 68 65 6e 20 71 75 65 72 69 65 rver when querie
23b0: 73 20 74 61 6b 65 20 6c 6f 6e 67 65 72 20 74 68 s take longer th
23c0: 61 6e 20 74 68 69 73 20 7c 20 6e 75 6d 62 65 72 an this | number
23d0: 20 69 6e 20 6d 69 6c 6c 69 73 65 63 6f 6e 64 73 in milliseconds
23e0: 20 7c 20 44 65 66 61 75 6c 74 3d 33 30 30 0d 0a | Default=300..
23f0: 7c 74 69 6d 65 6f 75 74 09 09 20 20 20 7c 20 68 |timeout.. | h
2400: 74 74 70 20 61 70 69 20 74 69 6d 65 6f 75 74 20 ttp api timeout
2410: 09 7c 20 6e 75 6d 62 65 72 20 69 6e 20 68 6f 75 .| number in hou
2420: 72 73 09 20 20 7c 20 44 65 66 61 75 6c 74 20 69 rs. | Default i
2430: 73 20 31 20 6d 69 6e 75 74 65 2c 20 64 6f 20 6e s 1 minute, do n
2440: 6f 74 20 63 68 61 6e 67 65 0d 0a 7c 3d 3d 3d 3d ot change..|====
2450: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2460: 3d 3d 0d 0a 0d 0a 54 68 65 20 74 65 73 74 63 6f ==....The testco
2470: 6e 66 69 67 20 46 69 6c 65 0d 0a 2d 2d 2d 2d 2d nfig File..-----
2480: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
2490: 0d 0a 53 65 74 75 70 20 73 65 63 74 69 6f 6e 0d ..Setup section.
24a0: 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a .~~~~~~~~~~~~~..
24b0: 0d 0a 48 65 61 64 65 72 0d 0a 5e 5e 5e 5e 5e 5e ..Header..^^^^^^
24c0: 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ....------------
24d0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 73 65 74 75 70 5d -------..[setup]
24e0: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..--------------
24f0: 2d 2d 2d 2d 2d 0d 0a 0d 0a 54 68 65 20 72 75 6e -----....The run
2500: 73 63 72 69 70 74 20 6d 65 74 68 6f 64 20 69 73 script method is
2510: 20 61 20 62 72 75 74 65 20 66 6f 72 63 65 20 77 a brute force w
2520: 61 79 20 74 6f 20 72 75 6e 20 73 63 72 69 70 74 ay to run script
2530: 73 20 77 68 65 72 65 20 74 68 65 0d 0a 75 73 65 s where the..use
2540: 72 20 69 73 20 72 65 73 70 6f 6e 73 69 62 6c 65 r is responsible
2550: 20 66 6f 72 20 73 65 74 74 69 6e 67 20 53 54 41 for setting STA
2560: 54 45 20 61 6e 64 20 53 54 41 54 55 53 0d 0a 0d TE and STATUS...
2570: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .---------------
2580: 2d 2d 2d 2d 0d 0a 72 75 6e 73 63 72 69 70 74 20 ----..runscript
2590: 6d 61 69 6e 2e 63 73 68 0d 0a 2d 2d 2d 2d 2d 2d main.csh..------
25a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d -------------...
25b0: 0a 52 65 71 75 69 72 65 6d 65 6e 74 73 20 73 65 .Requirements se
25c0: 63 74 69 6f 6e 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e ction..~~~~~~~~~
25d0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 2e ~~~~~~~~~~~.....
25e0: 48 65 61 64 65 72 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d Header..--------
25f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 72 65 -----------..[re
2600: 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a 2d 2d 2d quirements]..---
2610: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2620: 0d 0a 0d 0a 57 61 69 74 20 6f 6e 20 4f 74 68 65 ....Wait on Othe
2630: 72 20 54 65 73 74 73 0d 0a 5e 5e 5e 5e 5e 5e 5e r Tests..^^^^^^^
2640: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a ^^^^^^^^^^^^....
2650: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2660: 2d 2d 2d 0d 0a 23 20 41 20 6e 6f 72 6d 61 6c 20 ---..# A normal
2670: 77 61 69 74 6f 6e 20 77 61 69 74 73 20 66 6f 72 waiton waits for
2680: 20 74 68 65 20 70 72 69 6f 72 20 74 65 73 74 73 the prior tests
2690: 20 74 6f 20 62 65 20 43 4f 4d 50 4c 45 54 45 44 to be COMPLETED
26a0: 20 0d 0a 23 20 61 6e 64 20 50 41 53 53 2c 20 43 ..# and PASS, C
26b0: 48 45 43 4b 20 6f 72 20 57 41 49 56 45 44 0d 0a HECK or WAIVED..
26c0: 77 61 69 74 6f 6e 20 74 65 73 74 31 20 74 65 73 waiton test1 tes
26d0: 74 32 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d t2..------------
26e0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 4d 6f 64 65 0d -------....Mode.
26f0: 0a 5e 5e 5e 5e 0d 0a 0d 0a 54 68 65 20 64 65 66 .^^^^....The def
2700: 61 75 6c 74 20 28 69 2e 65 2e 20 69 66 20 6d 6f ault (i.e. if mo
2710: 64 65 20 69 73 20 6e 6f 74 20 73 70 65 63 69 66 de is not specif
2720: 69 65 64 29 20 69 73 20 6e 6f 72 6d 61 6c 2e 20 ied) is normal.
2730: 41 6c 6c 20 70 72 65 2d 64 65 70 65 6e 64 65 6e All pre-dependen
2740: 74 20 74 65 73 74 73 0d 0a 6d 75 73 74 20 62 65 t tests..must be
2750: 20 43 4f 4d 50 4c 45 54 45 44 20 61 6e 64 20 50 COMPLETED and P
2760: 41 53 53 2c 20 43 48 45 43 4b 20 6f 72 20 57 41 ASS, CHECK or WA
2770: 49 56 45 44 20 62 65 66 6f 72 65 20 74 68 65 20 IVED before the
2780: 74 65 73 74 20 77 69 6c 6c 20 73 74 61 72 74 0d test will start.
2790: 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...-------------
27a0: 2d 2d 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 ------..[require
27b0: 6d 65 6e 74 73 5d 0d 0a 6d 6f 64 65 20 20 20 6e ments]..mode n
27c0: 6f 72 6d 61 6c 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d ormal..---------
27d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 54 68 ----------....Th
27e0: 65 20 74 6f 70 6c 65 76 65 6c 20 6d 6f 64 65 20 e toplevel mode
27f0: 72 65 71 75 69 72 65 73 20 6f 6e 6c 79 20 74 68 requires only th
2800: 61 74 20 74 68 65 20 70 72 69 6f 72 20 74 65 73 at the prior tes
2810: 74 73 20 61 72 65 20 43 4f 4d 50 4c 45 54 45 44 ts are COMPLETED
2820: 2e 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .....-----------
2830: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69 --------..[requi
2840: 72 65 6d 65 6e 74 73 5d 0d 0a 6d 6f 64 65 20 74 rements]..mode t
2850: 6f 70 6c 65 76 65 6c 0d 0a 2d 2d 2d 2d 2d 2d 2d oplevel..-------
2860: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a ------------....
2870: 41 20 69 74 65 6d 20 62 61 73 65 64 20 77 61 69 A item based wai
2880: 74 6f 6e 20 77 69 6c 6c 20 73 74 61 72 74 20 69 ton will start i
2890: 74 65 6d 73 20 69 6e 20 61 20 74 65 73 74 20 77 tems in a test w
28a0: 68 65 6e 20 74 68 65 20 73 61 6d 65 2d 6e 61 6d hen the same-nam
28b0: 65 64 0d 0a 69 74 65 6d 20 69 73 20 43 4f 4d 50 ed..item is COMP
28c0: 4c 45 54 45 44 20 61 6e 64 20 50 41 53 53 2c 20 LETED and PASS,
28d0: 43 48 45 43 4b 20 6f 72 20 57 41 49 56 45 44 20 CHECK or WAIVED
28e0: 69 6e 20 74 68 65 20 70 72 69 6f 72 20 74 65 73 in the prior tes
28f0: 74 2e 20 54 68 69 73 0d 0a 77 61 73 20 68 69 73 t. This..was his
2900: 74 6f 72 69 63 61 6c 6c 79 20 63 61 6c 6c 65 64 torically called
2910: 20 22 69 74 65 6d 77 61 69 74 22 20 6d 6f 64 65 "itemwait" mode
2920: 2e 20 54 68 65 20 74 65 72 6d 73 20 22 69 74 65 . The terms "ite
2930: 6d 77 61 69 74 22 20 61 6e 64 0d 0a 22 69 74 65 mwait" and.."ite
2940: 6d 6d 61 74 63 68 22 20 61 72 65 20 73 79 6e 6f mmatch" are syno
2950: 6e 79 6d 73 2e 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d nyms.....-------
2960: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 72 ------------..[r
2970: 65 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a 6d 6f equirements]..mo
2980: 64 65 20 69 74 65 6d 6d 61 74 63 68 0d 0a 2d 2d de itemmatch..--
2990: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
29a0: 2d 0d 0a 0d 0a 4f 76 65 72 72 69 64 69 6e 67 20 -....Overriding
29b0: 45 6e 76 69 72 6f 6d 65 6e 74 20 56 61 72 69 61 Enviroment Varia
29c0: 62 6c 65 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e bles..~~~~~~~~~~
29d0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e ~~~~~~~~~~~~~~~~
29e0: 7e 7e 7e 7e 7e 0d 0a 0d 0a 4f 76 65 72 72 69 64 ~~~~~....Overrid
29f0: 65 20 76 61 72 69 61 62 6c 65 73 20 62 65 66 6f e variables befo
2a00: 72 65 20 73 74 61 72 74 69 6e 67 20 74 68 65 20 re starting the
2a10: 74 65 73 74 2e 20 43 61 6e 20 69 6e 63 6c 75 64 test. Can includ
2a20: 65 20 66 69 6c 65 73 20 28 70 65 72 68 61 70 73 e files (perhaps
2a30: 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 6d 65 generated by me
2a40: 67 61 74 65 73 74 20 2d 65 6e 76 64 65 6c 74 61 gatest -envdelta
2a50: 20 6f 72 20 73 69 6d 69 6c 61 72 29 2e 0d 0a 0d or similar)....
2a60: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .---------------
2a70: 2d 2d 2d 2d 2d 0d 0a 5b 70 72 65 2d 6c 61 75 6e -----..[pre-laun
2a80: 63 68 2d 65 6e 76 2d 76 61 72 73 5d 0d 0a 56 41 ch-env-vars]..VA
2a90: 52 31 20 76 61 6c 75 65 31 0d 0a 0d 0a 23 20 47 R1 value1....# G
2aa0: 65 74 20 73 6f 6d 65 20 67 65 6e 65 72 61 74 65 et some generate
2ab0: 64 20 73 65 74 74 69 6e 67 73 0d 0a 5b 69 6e 63 d settings..[inc
2ac0: 6c 75 64 65 20 2e 2e 2f 67 65 6e 65 72 61 74 65 lude ../generate
2ad0: 64 2d 76 61 72 73 2e 63 6f 6e 66 69 67 5d 0d 0a d-vars.config]..
2ae0: 0d 0a 23 20 55 73 65 20 74 68 69 73 20 74 72 69 ..# Use this tri
2af0: 63 6b 20 74 6f 20 75 6e 73 65 74 20 76 61 72 69 ck to unset vari
2b00: 61 62 6c 65 73 0d 0a 23 7b 73 63 68 65 6d 65 20 ables..#{scheme
2b10: 28 75 6e 73 65 74 65 6e 76 20 22 46 4f 4f 42 41 (unsetenv "FOOBA
2b20: 52 22 29 7d 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d R")}..----------
2b30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 49 74 ----------....It
2b40: 65 6d 6d 61 70 20 48 61 6e 64 6c 69 6e 67 0d 0a emmap Handling..
2b50: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e ~~~~~~~~~~~~~~~~
2b60: 0d 0a 0d 0a 46 6f 72 20 63 61 73 65 73 20 77 65 ....For cases we
2b70: 72 65 20 74 68 65 20 64 65 70 65 6e 64 65 6e 74 re the dependent
2b80: 20 74 65 73 74 20 68 61 73 20 61 20 73 69 6d 69 test has a simi
2b90: 6c 61 72 20 62 75 74 20 6e 6f 74 20 69 64 65 6e lar but not iden
2ba0: 74 69 63 61 6c 0d 0a 69 74 65 6d 70 61 74 68 20 tical..itempath
2bb0: 74 6f 20 74 68 65 20 64 6f 77 6e 73 74 72 65 61 to the downstrea
2bc0: 6d 20 74 65 73 74 20 61 6e 20 69 74 65 6d 6d 61 m test an itemma
2bd0: 70 20 63 61 6e 20 61 6c 6c 6f 77 20 66 6f 72 20 p can allow for
2be0: 69 74 65 6d 6d 61 74 63 68 0d 0a 6d 6f 64 65 0d itemmatch..mode.
2bf0: 0a 0d 0a 2e 65 78 61 6d 70 6c 65 20 66 6f 72 20 ....example for
2c00: 72 65 6d 6f 76 69 6e 67 20 70 61 72 74 20 6f 66 removing part of
2c10: 20 69 74 65 6d 6d 61 70 20 66 6f 72 20 77 61 69 itemmap for wai
2c20: 74 6f 6e 20 74 65 73 74 20 28 65 67 3a 20 69 74 ton test (eg: it
2c30: 65 6d 20 2b 66 6f 6f 2d 78 2f 62 61 72 2b 20 64 em +foo-x/bar+ d
2c40: 65 70 65 6e 64 73 20 6f 6e 20 77 61 69 74 6f 6e epends on waiton
2c50: 27 73 20 69 74 65 6d 20 2b 79 2f 62 61 72 2b 29 's item +y/bar+)
2c60: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..--------------
2c70: 2d 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 6d -----..[requirem
2c80: 65 6e 74 73 5d 0d 0a 6d 6f 64 65 20 69 74 65 6d ents]..mode item
2c90: 77 61 69 74 0d 0a 23 20 69 74 65 6d 6d 61 70 20 wait..# itemmap
2ca0: 3c 69 74 65 6d 20 70 61 74 74 65 72 6e 20 66 6f <item pattern fo
2cb0: 72 20 74 68 69 73 20 74 65 73 74 3e 20 20 3c 69 r this test> <i
2cc0: 74 65 6d 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 tem replacement
2cd0: 70 61 74 74 65 72 6e 20 66 6f 72 20 77 61 69 74 pattern for wait
2ce0: 6f 6e 20 74 65 73 74 3e 0d 0a 69 74 65 6d 6d 61 on test>..itemma
2cf0: 70 20 2e 2a 78 2f 20 79 2f 0d 0a 0d 0a 2d 2d 2d p .*x/ y/....---
2d00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2d10: 0d 0a 0d 0a 2e 65 78 61 6d 70 6c 65 20 66 6f 72 .....example for
2d20: 20 72 65 6d 6f 76 69 6e 67 20 70 61 72 74 20 6f removing part o
2d30: 66 20 69 74 65 6d 6d 61 70 20 66 6f 72 20 77 61 f itemmap for wa
2d40: 69 74 6f 6e 20 74 65 73 74 20 28 65 67 3a 20 69 iton test (eg: i
2d50: 74 65 6d 20 2b 66 6f 6f 2f 62 61 72 2f 62 61 7a tem +foo/bar/baz
2d60: 2b 20 69 6e 20 74 68 69 73 20 74 65 73 74 20 64 + in this test d
2d70: 65 70 65 6e 64 73 20 6f 6e 20 77 61 69 74 6f 6e epends on waiton
2d80: 27 73 20 69 74 65 6d 20 2b 62 61 7a 2b 29 0d 0a 's item +baz+)..
2d90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2da0: 2d 2d 2d 0d 0a 0d 0a 23 20 23 23 20 70 61 74 74 ---....# ## patt
2db0: 65 72 6e 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 ern replacement
2dc0: 6e 6f 74 65 73 0d 0a 23 0d 0a 23 20 23 23 20 45 notes..#..# ## E
2dd0: 78 61 6d 70 6c 65 0d 0a 23 20 23 23 20 52 65 6d xample..# ## Rem
2de0: 6f 76 65 20 65 76 65 72 79 74 68 69 6e 67 20 75 ove everything u
2df0: 70 20 74 6f 20 74 68 65 20 6c 61 73 74 20 2f 0d p to the last /.
2e00: 0a 5b 72 65 71 75 69 72 65 6d 65 6e 74 73 5d 0d .[requirements].
2e10: 0a 6d 6f 64 65 20 69 74 65 6d 77 61 69 74 0d 0a .mode itemwait..
2e20: 23 20 69 74 65 6d 6d 61 70 20 3c 69 74 65 6d 20 # itemmap <item
2e30: 70 61 74 74 65 72 6e 20 66 6f 72 20 74 68 69 73 pattern for this
2e40: 20 74 65 73 74 3e 20 3c 6e 6f 74 68 69 6e 67 20 test> <nothing
2e50: 68 65 72 65 20 69 6e 64 69 63 61 74 65 73 20 72 here indicates r
2e60: 65 6d 6f 76 61 6c 3e 0d 0a 69 74 65 6d 6d 61 70 emoval>..itemmap
2e70: 20 2e 2a 2f 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .*/..----------
2e80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e 65 78 ---------.....ex
2e90: 61 6d 70 6c 65 20 72 65 70 6c 61 63 69 6e 67 20 ample replacing
2ea0: 70 61 72 74 20 6f 66 20 69 74 65 6d 6d 61 70 20 part of itemmap
2eb0: 66 6f 72 20 28 65 67 3a 20 69 74 65 6d 20 2b 66 for (eg: item +f
2ec0: 6f 6f 2f 31 32 33 34 2b 20 77 69 6c 6c 20 69 6d oo/1234+ will im
2ed0: 70 6c 79 20 77 61 69 74 6f 6e 27 73 20 69 74 65 ply waiton's ite
2ee0: 6d 20 2b 62 61 72 2f 31 32 33 34 2b 29 0d 0a 2d m +bar/1234+)..-
2ef0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2f00: 2d 2d 0d 0a 0d 0a 23 0d 0a 23 20 23 23 20 45 78 --....#..# ## Ex
2f10: 61 6d 70 6c 65 0d 0a 23 20 23 23 20 52 65 70 6c ample..# ## Repl
2f20: 61 63 65 20 66 6f 6f 2f 20 77 69 74 68 20 62 61 ace foo/ with ba
2f30: 72 2f 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e 74 r/..[requirement
2f40: 73 5d 0d 0a 6d 6f 64 65 20 69 74 65 6d 77 61 69 s]..mode itemwai
2f50: 74 0d 0a 23 20 69 74 65 6d 6d 61 70 20 3c 69 74 t..# itemmap <it
2f60: 65 6d 20 70 61 74 74 65 72 6e 20 66 6f 72 20 74 em pattern for t
2f70: 68 69 73 20 74 65 73 74 3e 20 20 3c 69 74 65 6d his test> <item
2f80: 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 70 61 74 replacement pat
2f90: 74 65 72 6e 20 66 6f 72 20 77 61 69 74 6f 6e 20 tern for waiton
2fa0: 74 65 73 74 3e 0d 0a 69 74 65 6d 6d 61 70 20 66 test>..itemmap f
2fb0: 6f 6f 2f 20 62 61 72 2f 0d 0a 0d 0a 2d 2d 2d 2d oo/ bar/....----
2fc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d ---------------.
2fd0: 0a 0d 0a 2e 65 78 61 6d 70 6c 65 20 66 6f 72 20 ....example for
2fe0: 62 61 63 6b 72 65 66 65 72 65 6e 63 65 20 28 65 backreference (e
2ff0: 67 3a 20 69 74 65 6d 20 2b 66 6f 6f 32 33 2f 74 g: item +foo23/t
3000: 68 75 64 2b 20 77 69 6c 6c 20 69 6d 70 6c 79 20 hud+ will imply
3010: 77 61 69 74 6f 6e 27 73 20 69 74 65 6d 20 2b 6e waiton's item +n
3020: 75 6d 2d 32 33 2f 62 61 72 2f 74 68 75 64 2b 0d um-23/bar/thud+.
3030: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .---------------
3040: 2d 2d 2d 2d 0d 0a 23 0d 0a 23 20 23 23 20 45 78 ----..#..# ## Ex
3050: 61 6d 70 6c 65 0d 0a 23 20 23 23 20 63 61 6e 20 ample..# ## can
3060: 75 73 65 20 5c 7b 6e 75 6d 62 65 72 7d 20 69 6e use \{number} in
3070: 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 70 61 74 replacement pat
3080: 74 65 72 6e 20 74 6f 20 62 61 63 6b 72 65 66 65 tern to backrefe
3090: 72 65 6e 63 65 20 61 20 28 63 61 70 74 75 72 65 rence a (capture
30a0: 29 20 66 72 6f 6d 20 6d 61 74 63 68 69 6e 67 20 ) from matching
30b0: 70 61 74 74 65 72 6e 20 73 69 6d 69 6c 61 72 20 pattern similar
30c0: 74 6f 20 73 65 64 20 6f 72 20 70 65 72 6c 0d 0a to sed or perl..
30d0: 5b 72 65 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a [requirements]..
30e0: 6d 6f 64 65 20 69 74 65 6d 77 61 69 74 0d 0a 23 mode itemwait..#
30f0: 20 69 74 65 6d 6d 61 70 20 3c 69 74 65 6d 20 70 itemmap <item p
3100: 61 74 74 65 72 6e 20 66 6f 72 20 74 68 69 73 20 attern for this
3110: 74 65 73 74 3e 20 20 3c 69 74 65 6d 20 72 65 70 test> <item rep
3120: 6c 61 63 65 6d 65 6e 74 20 70 61 74 74 65 72 6e lacement pattern
3130: 20 66 6f 72 20 77 61 69 74 6f 6e 20 74 65 73 74 for waiton test
3140: 3e 0d 0a 69 74 65 6d 6d 61 70 20 66 6f 6f 28 5c >..itemmap foo(\
3150: 64 2b 29 2f 20 6e 75 6d 2d 5c 31 2f 62 61 72 2f d+)/ num-\1/bar/
3160: 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ....------------
3170: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e 65 78 61 6d -------.....exam
3180: 70 6c 65 20 6d 75 6c 74 69 70 6c 65 20 69 74 65 ple multiple ite
3190: 6d 6d 61 70 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d mmaps..---------
31a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 23 20 ----------....#
31b0: 6d 75 6c 74 69 2d 6c 69 6e 65 3b 20 6d 61 74 63 multi-line; matc
31c0: 68 65 73 20 61 72 65 20 61 70 70 6c 69 65 64 20 hes are applied
31d0: 69 6e 20 74 68 65 20 6c 69 73 74 65 64 20 6f 72 in the listed or
31e0: 64 65 72 0d 0a 23 20 54 68 65 20 66 6f 6c 6c 6f der..# The follo
31f0: 77 69 6e 67 20 77 6f 75 6c 64 20 6d 61 70 3a 0d wing would map:.
3200: 0a 23 20 20 20 61 31 32 33 62 33 32 31 20 74 6f .# a123b321 to
3210: 20 62 33 32 31 66 6f 6f 61 31 32 33 20 74 68 65 b321fooa123 the
3220: 6e 20 74 6f 20 33 32 31 66 6f 6f 61 31 32 33 70 n to 321fooa123p
3230: 0d 0a 23 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e ..#..[requiremen
3240: 74 73 5d 0d 0a 69 74 65 6d 6d 61 70 20 28 61 5c ts]..itemmap (a\
3250: 64 2b 29 28 62 5c 64 2b 29 20 5c 32 66 6f 6f 5c d+)(b\d+) \2foo\
3260: 31 0d 0a 20 20 62 28 2e 2a 29 20 5c 31 70 0d 0a 1.. b(.*) \1p..
3270: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3280: 2d 2d 2d 0d 0a 0d 0a 0d 0a 43 6f 6d 70 6c 65 78 ---......Complex
3290: 20 6d 61 70 70 69 6e 67 0d 0a 5e 5e 5e 5e 5e 5e mapping..^^^^^^
32a0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 43 6f 6d 70 6c ^^^^^^^^^..Compl
32b0: 65 78 20 6d 61 70 70 69 6e 67 73 20 63 61 6e 20 ex mappings can
32c0: 62 65 20 68 61 6e 64 6c 65 64 20 77 69 74 68 20 be handled with
32d0: 61 20 73 65 70 61 72 61 74 65 20 5b 69 74 65 6d a separate [item
32e0: 6d 61 70 5d 20 73 65 63 74 69 6f 6e 20 28 69 6e map] section (in
32f0: 73 74 65 61 64 20 69 66 20 61 6e 20 69 74 65 6d stead if an item
3300: 6d 61 70 20 6c 69 6e 65 20 69 6e 20 74 68 65 20 map line in the
3310: 5b 72 65 71 75 69 72 65 6d 65 6e 74 73 5d 20 73 [requirements] s
3320: 65 63 74 69 6f 6e 29 0d 0a 0d 0a 45 61 63 68 20 ection)....Each
3330: 6c 69 6e 65 20 69 6e 20 61 6e 20 69 74 65 6d 6d line in an itemm
3340: 61 70 20 73 65 63 74 69 6f 6e 20 73 74 61 72 74 ap section start
3350: 73 20 77 69 74 68 20 61 20 77 61 69 74 6f 6e 20 s with a waiton
3360: 74 65 73 74 20 6e 61 6d 65 20 66 6f 6c 6c 6f 77 test name follow
3370: 65 64 20 62 79 20 61 6e 20 69 74 65 6d 6d 61 70 ed by an itemmap
3380: 20 65 78 70 72 65 73 73 69 6f 6e 0d 0a 0d 0a 2e expression.....
3390: 65 67 3a 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e eg: The followin
33a0: 67 20 63 61 75 73 65 73 20 77 61 69 74 6f 6e 20 g causes waiton
33b0: 74 65 73 74 20 41 20 69 74 65 6d 20 2b 62 61 72 test A item +bar
33c0: 2f 31 32 33 34 2b 20 74 6f 20 72 75 6e 20 77 68 /1234+ to run wh
33d0: 65 6e 20 6f 75 72 20 74 65 73 74 27 73 20 2b 66 en our test's +f
33e0: 6f 6f 2f 31 32 33 34 2b 20 69 74 65 6d 20 69 73 oo/1234+ item is
33f0: 20 72 65 71 75 65 73 74 65 64 20 61 73 20 77 65 requested as we
3400: 6c 6c 20 61 73 20 63 61 75 73 69 6e 67 20 77 61 ll as causing wa
3410: 69 74 6f 6e 20 74 65 73 74 20 42 27 73 20 2b 62 iton test B's +b
3420: 6c 61 68 2b 20 69 74 65 6d 20 74 6f 20 72 75 6e lah+ item to run
3430: 20 77 68 65 6e 20 6f 75 72 20 74 65 73 74 27 73 when our test's
3440: 20 2b 73 74 75 66 66 2f 62 6c 61 68 2b 20 69 74 +stuff/blah+ it
3450: 65 6d 20 69 73 20 72 65 71 75 65 73 74 65 64 0d em is requested.
3460: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d .--------------.
3470: 0a 5b 69 74 65 6d 6d 61 70 5d 0d 0a 41 20 66 6f .[itemmap]..A fo
3480: 6f 2f 20 62 61 72 2f 0d 0a 42 20 73 74 75 66 66 o/ bar/..B stuff
3490: 2f 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d /..-------------
34a0: 2d 0d 0a 0d 0a 0d 0a 43 6f 6d 70 6c 65 78 20 6d -......Complex m
34b0: 61 70 70 69 6e 67 20 65 78 61 6d 70 6c 65 0d 0a apping example..
34c0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e ^^^^^^^^^^^^^^^^
34d0: 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 0d 0a 0d 0a 2f ^^^^^^^......../
34e0: 2f 20 69 6d 61 67 65 3a 3a 69 74 65 6d 6d 61 70 / image::itemmap
34f0: 2e 70 6e 67 5b 5d 0d 0a 69 6d 61 67 65 3a 3a 63 .png[]..image::c
3500: 6f 6d 70 6c 65 78 2d 69 74 65 6d 6d 61 70 2e 70 omplex-itemmap.p
3510: 6e 67 5b 5d 0d 0a 0d 0a 0d 0a 57 65 20 61 63 63 ng[]......We acc
3520: 6f 6d 70 6c 69 73 68 20 74 68 69 73 20 62 79 20 omplish this by
3530: 63 6f 6e 66 69 67 75 72 69 6e 67 20 74 68 65 20 configuring the
3540: 74 65 73 74 63 6f 6e 66 69 67 73 20 6f 66 20 6f testconfigs of o
3550: 75 72 20 74 65 73 74 73 20 43 20 44 20 61 6e 64 ur tests C D and
3560: 20 45 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0d 0a E as follows:..
3570: 0d 0a 2e 54 65 73 74 63 6f 6e 66 69 67 20 66 6f ...Testconfig fo
3580: 72 20 54 65 73 74 20 45 20 68 61 73 0d 0a 2d 2d r Test E has..--
3590: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
35a0: 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 6d 65 ----..[requireme
35b0: 6e 74 73 5d 0d 0a 77 61 69 74 6f 6e 20 43 0d 0a nts]..waiton C..
35c0: 69 74 65 6d 6d 61 70 20 28 5c 64 2b 29 2f 72 65 itemmap (\d+)/re
35d0: 73 20 5c 31 2f 62 62 0d 0a 2d 2d 2d 2d 2d 2d 2d s \1/bb..-------
35e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d ---------------.
35f0: 0a 0d 0a 2e 54 65 73 74 63 6f 6e 66 69 67 20 66 ....Testconfig f
3600: 6f 72 20 54 65 73 74 20 44 20 68 61 73 0d 0a 2d or Test D has..-
3610: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3620: 2d 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 6d -----..[requirem
3630: 65 6e 74 73 5d 0d 0a 77 61 69 74 6f 6e 20 43 0d ents]..waiton C.
3640: 0a 69 74 65 6d 6d 61 70 20 28 5c 64 2b 29 2f 72 .itemmap (\d+)/r
3650: 65 73 20 5c 31 2f 61 61 0d 0a 2d 2d 2d 2d 2d 2d es \1/aa..------
3660: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3670: 0d 0a 0d 0a 2e 54 65 73 74 63 6f 6e 66 69 67 20 .....Testconfig
3680: 66 6f 72 20 54 65 73 74 20 43 20 68 61 73 0d 0a for Test C has..
3690: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
36a0: 2d 2d 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 ------..[require
36b0: 6d 65 6e 74 73 5d 0d 0a 77 61 69 74 6f 6e 20 41 ments]..waiton A
36c0: 20 42 0d 0a 0d 0a 5b 69 74 65 6d 6d 61 70 5d 0d B....[itemmap].
36d0: 0a 41 20 28 5c 64 2b 29 2f 61 61 20 61 61 2f 5c .A (\d+)/aa aa/\
36e0: 31 0d 0a 42 20 28 5c 64 2b 29 2f 62 62 20 62 62 1..B (\d+)/bb bb
36f0: 2f 5c 31 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d /\1..-----------
3700: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e -----------.....
3710: 54 65 73 74 63 6f 6e 66 69 67 73 20 66 6f 72 20 Testconfigs for
3720: 54 65 73 74 20 42 20 61 6e 64 20 54 65 73 74 20 Test B and Test
3730: 41 20 68 61 76 65 20 6e 6f 20 77 61 69 74 6f 6e A have no waiton
3740: 20 6f 72 20 69 74 65 6d 6d 61 70 20 63 6f 6e 66 or itemmap conf
3750: 69 67 75 72 65 64 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d igured..--------
3760: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2d 2d 2d -----------..---
3770: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3780: 0d 0a 0d 0a 2e 57 61 6c 6b 20 74 68 72 6f 75 67 .....Walk throug
3790: 68 20 6f 6e 65 20 69 74 65 6d 20 2d 2d 20 77 65 h one item -- we
37a0: 20 77 61 6e 74 20 74 68 65 20 66 6f 6c 6c 6f 77 want the follow
37b0: 69 6e 67 20 74 6f 20 68 61 70 70 65 6e 20 66 6f ing to happen fo
37c0: 72 20 74 65 73 74 70 61 74 74 20 2b 44 2f 31 2f r testpatt +D/1/
37d0: 72 65 73 2b 20 28 73 65 65 20 62 6c 75 65 20 62 res+ (see blue b
37e0: 6f 78 65 73 20 69 6e 20 63 6f 6d 70 6c 65 78 20 oxes in complex
37f0: 69 74 65 6d 6d 61 70 69 6e 67 20 66 69 67 75 72 itemmaping figur
3800: 65 20 61 62 6f 76 65 29 3a 0d 0a 0d 0a 2e 20 65 e above):..... e
3810: 67 20 66 72 6f 6d 20 63 6f 6d 6d 61 6e 64 20 6c g from command l
3820: 69 6e 65 20 2b 6d 65 67 61 74 65 73 74 20 2d 72 ine +megatest -r
3830: 75 6e 20 2d 74 65 73 74 70 61 74 74 20 44 2f 31 un -testpatt D/1
3840: 2f 72 65 73 20 2d 74 61 72 67 65 74 20 6d 79 74 /res -target myt
3850: 61 72 67 65 74 20 2d 72 75 6e 6e 61 6d 65 20 6d arget -runname m
3860: 79 72 75 6e 6e 61 6d 65 2b 0d 0a 2e 20 46 75 6c yrunname+... Ful
3870: 6c 20 6c 69 73 74 20 74 6f 20 62 65 20 72 75 6e l list to be run
3880: 20 69 73 20 6e 6f 77 3a 20 2b 44 2f 31 2f 72 65 is now: +D/1/re
3890: 73 2b 0d 0a 2e 20 54 65 73 74 20 44 20 68 61 73 s+... Test D has
38a0: 20 61 20 77 61 69 74 6f 6e 20 2d 20 74 65 73 74 a waiton - test
38b0: 20 43 2e 20 20 54 65 73 74 20 44 27 73 20 69 74 C. Test D's it
38c0: 65 6d 6d 61 70 20 72 75 6c 65 20 2b 69 74 65 6d emmap rule +item
38d0: 6d 61 70 20 28 5c 64 26 70 6c 75 73 3b 29 2f 72 map (\d+)/r
38e0: 65 73 20 5c 31 2f 61 61 2b 20 2d 3e 20 20 63 61 es \1/aa+ -> ca
38f0: 75 73 65 73 20 2b 43 2f 31 2f 61 61 2b 20 74 6f uses +C/1/aa+ to
3900: 20 72 75 6e 20 62 65 66 6f 72 65 20 2b 44 2f 31 run before +D/1
3910: 2f 72 65 73 2b 0d 0a 2e 20 46 75 6c 6c 20 6c 69 /res+... Full li
3920: 73 74 20 74 6f 20 62 65 20 72 75 6e 20 69 73 20 st to be run is
3930: 6e 6f 77 3a 20 2b 44 2f 31 2f 72 65 73 2b 2c 20 now: +D/1/res+,
3940: 2b 43 2f 31 2f 61 61 2b 0d 0a 2e 20 54 65 73 74 +C/1/aa+... Test
3950: 20 43 20 77 61 73 20 61 20 77 61 69 74 6f 6e 20 C was a waiton
3960: 2d 20 74 65 73 74 20 41 2e 20 54 65 73 74 20 43 - test A. Test C
3970: 27 73 20 72 75 6c 65 20 2b 41 20 28 5c 64 26 70 's rule +A (\d&p
3980: 6c 75 73 3b 29 2f 61 61 20 61 61 2f 5c 31 2b 20 lus;)/aa aa/\1+
3990: 2d 3e 20 63 61 75 73 65 73 20 2b 41 2f 61 61 2f -> causes +A/aa/
39a0: 31 2b 20 74 6f 20 72 75 6e 20 62 65 66 6f 72 65 1+ to run before
39b0: 20 2b 43 2f 31 2f 61 61 2b 0d 0a 2e 20 46 75 6c +C/1/aa+... Ful
39c0: 6c 20 6c 69 73 74 20 74 6f 20 62 65 20 72 75 6e l list to be run
39d0: 20 69 73 20 6e 6f 77 3a 20 2b 44 2f 31 2f 72 65 is now: +D/1/re
39e0: 73 2b 2c 20 2b 43 2f 31 2f 61 61 2b 2c 20 2b 41 s+, +C/1/aa+, +A
39f0: 2f 61 61 2f 31 2b 0d 0a 2e 20 54 65 73 74 20 41 /aa/1+... Test A
3a00: 20 68 61 73 20 6e 6f 20 77 61 69 74 6f 6e 73 2e has no waitons.
3a10: 20 20 41 6c 6c 20 77 61 69 74 6f 6e 73 20 6f 66 All waitons of
3a20: 20 61 6c 6c 20 74 65 73 74 73 20 69 6e 20 66 75 all tests in fu
3a30: 6c 6c 20 6c 69 73 74 20 68 61 76 65 20 62 65 65 ll list have bee
3a40: 6e 20 70 72 6f 63 65 73 73 65 64 2e 20 20 46 75 n processed. Fu
3a50: 6c 6c 20 6c 69 73 74 20 69 73 20 66 69 6e 61 6c ll list is final
3a60: 69 7a 65 64 2e 0d 0a 0d 0a 0d 0a 0d 0a 69 74 65 ized.........ite
3a70: 6d 73 74 61 62 6c 65 0d 0a 5e 5e 5e 5e 5e 5e 5e mstable..^^^^^^^
3a80: 5e 5e 5e 0d 0a 41 6e 20 61 6c 74 65 72 6e 61 74 ^^^..An alternat
3a90: 69 76 65 20 74 6f 20 64 65 66 69 6e 69 6e 67 20 ive to defining
3aa0: 69 74 65 6d 73 20 69 73 20 74 68 65 20 69 74 65 items is the ite
3ab0: 6d 73 74 61 62 6c 65 20 73 65 63 74 69 6f 6e 2e mstable section.
3ac0: 20 20 54 68 69 73 20 6c 65 74 73 20 79 6f 75 20 This lets you
3ad0: 64 65 66 69 6e 65 20 74 68 65 20 69 74 65 6d 70 define the itemp
3ae0: 61 74 68 20 69 6e 20 61 20 74 61 62 6c 65 20 66 ath in a table f
3af0: 6f 72 6d 61 74 20 72 61 74 68 65 72 20 74 68 61 ormat rather tha
3b00: 6e 20 73 70 65 63 69 66 79 69 6e 67 20 63 6f 6d n specifying com
3b10: 70 6f 6e 65 6e 74 73 20 61 6e 64 20 72 65 6c 79 ponents and rely
3b20: 69 6e 67 20 6f 6e 20 67 65 74 74 69 6e 67 20 61 ing on getting a
3b30: 6c 6c 20 70 65 72 6d 75 74 61 74 69 6f 6e 73 20 ll permutations
3b40: 6f 66 20 74 68 6f 73 65 20 63 6f 6d 70 6f 6e 65 of those compone
3b50: 6e 74 73 2e 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a nts.............
3b60: 44 79 6e 61 6d 69 63 20 46 6c 6f 77 20 44 65 70 Dynamic Flow Dep
3b70: 65 6e 64 65 6e 63 79 20 54 72 65 65 0d 0a 5e 5e endency Tree..^^
3b80: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e ^^^^^^^^^^^^^^^^
3b90: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 2e 41 ^^^^^^^^^^.....A
3ba0: 75 74 6f 67 65 6e 65 72 61 74 69 6f 6e 20 77 61 utogeneration wa
3bb0: 69 74 6f 6e 20 6c 69 73 74 20 66 6f 72 20 64 79 iton list for dy
3bc0: 6e 61 6d 69 63 20 66 6c 6f 77 20 64 65 70 65 6e namic flow depen
3bd0: 64 65 6e 63 79 20 74 72 65 65 73 0d 0a 2d 2d 2d dency trees..---
3be0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3bf0: 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e 74 73 5d ..[requirements]
3c00: 0d 0a 23 20 57 69 74 68 20 61 20 74 6f 70 6c 65 ..# With a tople
3c10: 76 65 6c 20 74 65 73 74 20 79 6f 75 20 6d 61 79 vel test you may
3c20: 20 77 69 73 68 20 74 6f 20 67 65 6e 65 72 61 74 wish to generat
3c30: 65 20 79 6f 75 72 20 6c 69 73 74 20 0d 0a 23 20 e your list ..#
3c40: 6f 66 20 74 65 73 74 73 20 74 6f 20 72 75 6e 20 of tests to run
3c50: 64 79 6e 61 6d 69 63 61 6c 6c 79 0d 0a 23 0d 0a dynamically..#..
3c60: 77 61 69 74 6f 6e 20 23 7b 73 68 65 6c 6c 20 67 waiton #{shell g
3c70: 65 74 2d 76 61 6c 69 64 2d 74 65 73 74 73 2d 74 et-valid-tests-t
3c80: 6f 2d 72 75 6e 2e 73 68 7d 0d 0a 2d 2d 2d 2d 2d o-run.sh}..-----
3c90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
3ca0: 0d 0a 52 75 6e 20 74 69 6d 65 20 6c 69 6d 69 74 ..Run time limit
3cb0: 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e ..^^^^^^^^^^^^^^
3cc0: 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ....------------
3cd0: 2d 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 6d -----..[requirem
3ce0: 65 6e 74 73 5d 0d 0a 72 75 6e 74 69 6d 65 6c 69 ents]..runtimeli
3cf0: 6d 20 31 68 20 32 6d 20 33 73 20 20 23 20 74 68 m 1h 2m 3s # th
3d00: 69 73 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 is will automati
3d10: 63 61 6c 6c 79 20 6b 69 6c 6c 20 74 68 65 20 74 cally kill the t
3d20: 65 73 74 20 69 66 20 69 74 20 72 75 6e 73 20 66 est if it runs f
3d30: 6f 72 20 6d 6f 72 65 20 74 68 61 6e 20 31 68 20 or more than 1h
3d40: 32 6d 20 61 6e 64 20 33 73 0d 0a 2d 2d 2d 2d 2d 2m and 3s..-----
3d50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a ------------....
3d60: 53 6b 69 70 0d 0a 5e 5e 5e 5e 0d 0a 0d 0a 41 20 Skip..^^^^....A
3d70: 74 65 73 74 20 77 69 74 68 20 61 20 73 6b 69 70 test with a skip
3d80: 20 73 65 63 74 69 6f 6e 20 77 69 6c 6c 20 63 6f section will co
3d90: 6e 64 69 74 69 6f 6e 61 6c 20 73 6b 69 70 20 72 nditional skip r
3da0: 75 6e 6e 69 6e 67 2e 0d 0a 0d 0a 2e 53 6b 69 70 unning......Skip
3db0: 20 73 65 63 74 69 6f 6e 20 65 78 61 6d 70 6c 65 section example
3dc0: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..--------------
3dd0: 2d 2d 2d 0d 0a 5b 73 6b 69 70 5d 0d 0a 70 72 65 ---..[skip]..pre
3de0: 76 72 75 6e 6e 69 6e 67 20 78 0d 0a 23 20 72 75 vrunning x..# ru
3df0: 6e 64 65 6c 61 79 20 33 30 6d 20 31 35 73 0d 0a ndelay 30m 15s..
3e00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3e10: 2d 0d 0a 0d 0a 53 6b 69 70 20 6f 6e 20 53 74 69 -....Skip on Sti
3e20: 6c 6c 2d 72 75 6e 6e 69 6e 67 20 54 65 73 74 73 ll-running Tests
3e30: 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e ..^^^^^^^^^^^^^^
3e40: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d ^^^^^^^^^^^^^...
3e50: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .---------------
3e60: 2d 2d 0d 0a 23 20 4e 42 2f 2f 20 49 66 20 74 68 --..# NB// If th
3e70: 65 20 70 72 65 76 72 75 6e 6e 69 6e 67 20 6c 69 e prevrunning li
3e80: 6e 65 20 65 78 69 73 74 73 20 77 69 74 68 20 2a ne exists with *
3e90: 61 6e 79 2a 20 76 61 6c 75 65 20 74 68 65 20 74 any* value the t
3ea0: 65 73 74 20 77 69 6c 6c 0d 0a 23 20 61 75 74 6f est will..# auto
3eb0: 6d 61 74 69 63 61 6c 6c 79 20 53 4b 49 50 20 69 matically SKIP i
3ec0: 66 20 74 68 65 20 73 61 6d 65 2d 6e 61 6d 65 64 f the same-named
3ed0: 20 74 65 73 74 20 69 73 20 63 75 72 72 65 6e 74 test is current
3ee0: 6c 79 20 52 55 4e 4e 49 4e 47 2e 20 54 68 65 0d ly RUNNING. The.
3ef0: 0a 23 20 22 78 22 20 63 61 6e 20 62 65 20 61 6e .# "x" can be an
3f00: 79 20 73 74 72 69 6e 67 2e 20 43 6f 6d 6d 65 6e y string. Commen
3f10: 74 20 6f 75 74 20 74 68 65 20 70 72 65 76 72 75 t out the prevru
3f20: 6e 6e 69 6e 67 20 6c 69 6e 65 20 74 6f 20 74 75 nning line to tu
3f30: 72 6e 20 6f 66 66 0d 0a 23 20 73 6b 69 70 2e 0d rn off..# skip..
3f40: 0a 0d 0a 5b 73 6b 69 70 5d 0d 0a 70 72 65 76 72 ...[skip]..prevr
3f50: 75 6e 6e 69 6e 67 20 78 0d 0a 2d 2d 2d 2d 2d 2d unning x..------
3f60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 53 -----------....S
3f70: 6b 69 70 20 69 66 20 61 20 46 69 6c 65 20 45 78 kip if a File Ex
3f80: 69 73 74 73 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e ists..^^^^^^^^^^
3f90: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 2d ^^^^^^^^^^^....-
3fa0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3fb0: 0d 0a 5b 73 6b 69 70 5d 0d 0a 66 69 6c 65 65 78 ..[skip]..fileex
3fc0: 69 73 74 73 20 2f 70 61 74 68 2f 74 6f 2f 61 2f ists /path/to/a/
3fd0: 66 69 6c 65 20 23 20 73 6b 69 70 20 69 66 20 2f file # skip if /
3fe0: 70 61 74 68 2f 74 6f 2f 61 2f 66 69 6c 65 20 65 path/to/a/file e
3ff0: 78 69 73 74 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d xists..---------
4000: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 53 6b 69 70 --------....Skip
4010: 20 69 66 20 74 65 73 74 20 72 61 6e 20 6d 6f 72 if test ran mor
4020: 65 20 72 65 63 65 6e 74 6c 79 20 74 68 61 6e 20 e recently than
4030: 73 70 65 63 69 66 69 65 64 20 74 69 6d 65 0d 0a specified time..
4040: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e ^^^^^^^^^^^^^^^^
4050: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e ^^^^^^^^^^^^^^^^
4060: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e ^^^^^^^^^^^^^^^^
4070: 5e 5e 0d 0a 0d 0a 2e 53 6b 69 70 20 69 66 20 74 ^^.....Skip if t
4080: 68 69 73 20 74 65 73 74 20 68 61 73 20 62 65 65 his test has bee
4090: 6e 20 72 75 6e 20 69 6e 20 74 68 65 20 70 61 73 n run in the pas
40a0: 74 20 66 69 66 74 65 65 6e 20 6d 69 6e 75 74 65 t fifteen minute
40b0: 73 20 61 6e 64 20 31 35 20 73 65 63 6f 6e 64 73 s and 15 seconds
40c0: 2e 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...-------------
40d0: 2d 2d 2d 2d 0d 0a 5b 73 6b 69 70 5d 0d 0a 72 75 ----..[skip]..ru
40e0: 6e 64 65 6c 61 79 20 31 35 6d 20 31 35 73 0d 0a ndelay 15m 15s..
40f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4100: 2d 0d 0a 0d 0a 44 69 73 6b 73 0d 0a 5e 5e 5e 5e -....Disks..^^^^
4110: 5e 0d 0a 0d 0a 41 20 64 69 73 6b 73 20 73 65 63 ^....A disks sec
4120: 74 69 6f 6e 20 69 6e 20 74 65 73 74 63 6f 6e 66 tion in testconf
4130: 69 67 20 77 69 6c 6c 20 6f 76 65 72 72 69 64 65 ig will override
4140: 20 74 68 65 20 64 69 73 6b 73 20 73 65 63 74 69 the disks secti
4150: 6f 6e 20 69 6e 0d 0a 6d 65 67 61 74 65 73 74 2e on in..megatest.
4160: 63 6f 6e 66 69 67 2e 20 54 68 69 73 20 63 61 6e config. This can
4170: 20 62 65 20 75 73 65 64 20 74 6f 20 61 6c 6c 6f be used to allo
4180: 63 61 74 65 20 64 69 73 6b 73 20 6f 6e 20 61 20 cate disks on a
4190: 70 65 72 2d 74 65 73 74 20 6f 72 20 70 65 72 20 per-test or per
41a0: 69 74 65 6d 0d 0a 62 61 73 69 73 2e 0d 0a 0d 0a item..basis.....
41b0: 43 6f 6e 74 72 6f 6c 6c 65 64 20 77 61 69 76 65 Controlled waive
41c0: 72 20 70 72 6f 70 61 67 61 74 69 6f 6e 0d 0a 5e r propagation..^
41d0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e ^^^^^^^^^^^^^^^^
41e0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a ^^^^^^^^^^^^....
41f0: 49 66 20 74 65 73 74 20 69 73 20 46 41 49 4c 20 If test is FAIL
4200: 61 6e 64 20 70 72 65 76 69 6f 75 73 20 74 65 73 and previous tes
4210: 74 20 69 6e 20 72 75 6e 20 77 69 74 68 20 73 61 t in run with sa
4220: 6d 65 20 4d 54 5f 54 41 52 47 45 54 20 69 73 20 me MT_TARGET is
4230: 57 41 49 56 45 44 20 74 68 65 6e 20 61 70 70 6c WAIVED then appl
4240: 79 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 y the following
4250: 72 75 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 74 rules from the t
4260: 65 73 74 63 6f 6e 66 69 67 3a 0d 0a 49 66 20 61 estconfig:..If a
4270: 20 77 61 69 76 65 72 20 63 68 65 63 6b 20 69 73 waiver check is
4280: 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 74 68 specified in th
4290: 65 20 74 65 73 74 63 6f 6e 66 69 67 20 61 70 70 e testconfig app
42a0: 6c 79 20 74 68 65 20 63 68 65 63 6b 20 61 6e 64 ly the check and
42b0: 20 69 66 20 69 74 20 70 61 73 73 65 73 20 74 68 if it passes th
42c0: 65 6e 20 73 65 74 20 74 68 69 73 20 46 41 49 4c en set this FAIL
42d0: 20 74 6f 20 57 41 49 56 45 44 0d 0a 0d 0a 57 61 to WAIVED....Wa
42e0: 69 76 65 72 20 63 68 65 63 6b 20 68 61 73 20 74 iver check has t
42f0: 77 6f 20 70 61 72 74 73 2c 20 31 29 20 61 20 6c wo parts, 1) a l
4300: 69 73 74 20 6f 66 20 77 61 69 76 65 72 2c 20 72 ist of waiver, r
4310: 75 6c 65 6e 61 6d 65 2c 20 66 69 6c 65 70 61 74 ulename, filepat
4320: 74 65 72 6e 73 20 61 6e 64 20 32 29 20 74 68 65 terns and 2) the
4330: 20 72 75 6c 65 6e 61 6d 65 20 73 63 72 69 70 74 rulename script
4340: 20 73 70 65 63 20 28 6e 6f 74 65 20 74 68 61 74 spec (note that
4350: 20 22 64 69 66 66 22 20 61 6e 64 20 22 6c 6f 67 "diff" and "log
4360: 70 72 6f 22 20 61 72 65 20 70 72 65 64 65 66 69 pro" are predefi
4370: 6e 65 64 29 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d ned)....--------
4380: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 23 23 23 23 ---------..#####
4390: 23 20 45 58 41 4d 50 4c 45 20 46 52 4f 4d 20 74 # EXAMPLE FROM t
43a0: 65 73 74 63 6f 6e 66 69 67 20 23 23 23 23 23 23 estconfig ######
43b0: 23 23 23 0d 0a 23 20 6d 61 74 63 68 69 6e 67 20 ###..# matching
43c0: 66 69 6c 65 28 73 29 20 77 69 6c 6c 20 62 65 20 file(s) will be
43d0: 64 69 66 66 27 64 20 77 69 74 68 20 70 72 65 76 diff'd with prev
43e0: 69 6f 75 73 20 72 75 6e 20 61 6e 64 20 6c 6f 67 ious run and log
43f0: 70 72 6f 20 61 70 70 6c 69 65 64 0d 0a 23 20 69 pro applied..# i
4400: 66 20 50 41 53 53 20 6f 72 20 57 41 52 4e 20 72 f PASS or WARN r
4410: 65 73 75 6c 74 20 66 72 6f 6d 20 6c 6f 67 70 72 esult from logpr
4420: 6f 20 74 68 65 6e 20 57 41 49 56 45 52 20 73 74 o then WAIVER st
4430: 61 74 65 20 69 73 20 73 65 74 0d 0a 23 0d 0a 5b ate is set..#..[
4440: 77 61 69 76 65 72 73 5d 0d 0a 23 20 6c 6f 67 70 waivers]..# logp
4450: 72 6f 5f 66 69 6c 65 20 20 20 20 72 75 6c 65 6e ro_file rulen
4460: 61 6d 65 20 20 20 20 20 20 69 6e 70 75 74 5f 67 ame input_g
4470: 6c 6f 62 0d 0a 77 61 69 76 65 72 5f 31 20 20 20 lob..waiver_1
4480: 20 20 20 20 20 20 6c 6f 67 70 72 6f 20 20 20 20 logpro
4490: 20 20 20 20 6c 6f 6f 6b 69 74 74 6d 70 2e 6c 6f lookittmp.lo
44a0: 67 0d 0a 0d 0a 5b 77 61 69 76 65 72 5f 72 75 6c g....[waiver_rul
44b0: 65 73 5d 0d 0a 0d 0a 23 20 54 68 69 73 20 62 75 es]....# This bu
44c0: 69 6c 74 69 6e 20 72 75 6c 65 20 69 73 20 74 68 iltin rule is th
44d0: 65 20 64 65 66 61 75 6c 74 20 69 66 20 74 68 65 e default if the
44e0: 72 65 20 69 73 20 6e 6f 20 3c 77 61 69 76 65 72 re is no <waiver
44f0: 6e 61 6d 65 3e 2e 6c 6f 67 70 72 6f 20 66 69 6c name>.logpro fil
4500: 65 0d 0a 23 20 64 69 66 66 20 20 20 64 69 66 66 e..# diff diff
4510: 20 25 66 69 6c 65 31 25 20 25 66 69 6c 65 32 25 %file1% %file2%
4520: 0d 0a 0d 0a 23 20 54 68 69 73 20 62 75 69 6c 74 ....# This built
4530: 69 6e 20 72 75 6c 65 20 69 73 20 61 70 70 6c 69 in rule is appli
4540: 65 64 20 69 66 20 61 20 3c 77 61 69 76 65 72 6e ed if a <waivern
4550: 61 6d 65 3e 2e 6c 6f 67 70 72 6f 20 66 69 6c 65 ame>.logpro file
4560: 20 65 78 69 73 74 73 0d 0a 23 20 6c 6f 67 70 72 exists..# logpr
4570: 6f 20 64 69 66 66 20 25 66 69 6c 65 31 25 20 25 o diff %file1% %
4580: 66 69 6c 65 32 25 20 7c 20 6c 6f 67 70 72 6f 20 file2% | logpro
4590: 25 77 61 69 76 65 72 6e 61 6d 65 25 2e 6c 6f 67 %waivername%.log
45a0: 70 72 6f 20 25 77 61 69 76 65 72 6e 61 6d 65 25 pro %waivername%
45b0: 2e 68 74 6d 6c 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d .html..---------
45c0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 45 7a 73 74 --------....Ezst
45d0: 65 70 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a eps..~~~~~~~....
45e0: 2e 45 78 61 6d 70 6c 65 20 65 7a 73 74 65 70 73 .Example ezsteps
45f0: 20 77 69 74 68 20 6c 6f 67 70 72 6f 20 72 75 6c with logpro rul
4600: 65 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d es..------------
4610: 2d 2d 2d 2d 2d 0d 0a 5b 65 7a 73 74 65 70 73 5d -----..[ezsteps]
4620: 0d 0a 6c 6f 6f 6b 69 74 74 6d 70 20 20 20 6c 73 ..lookittmp ls
4630: 20 2f 74 6d 70 0d 0a 0d 0a 5b 6c 6f 67 70 72 6f /tmp....[logpro
4640: 5d 0d 0a 6c 6f 6f 6b 69 74 74 6d 70 20 3b 3b 20 ]..lookittmp ;;
4650: 4e 6f 74 65 3a 20 63 6f 6e 66 69 67 20 66 69 6c Note: config fil
4660: 65 20 66 6f 72 6d 61 74 20 73 75 70 70 6f 72 74 e format support
4670: 73 20 6d 75 6c 74 69 2d 6c 69 6e 65 20 65 6e 74 s multi-line ent
4680: 72 69 65 73 20 77 68 65 72 65 20 6c 65 61 64 69 ries where leadi
4690: 6e 67 20 77 68 69 74 65 73 70 61 63 65 20 69 73 ng whitespace is
46a0: 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 65 61 removed from ea
46b0: 63 68 20 6c 69 6e 65 0d 0a 20 20 3b 3b 20 20 20 ch line.. ;;
46c0: 20 20 61 20 62 6c 61 6e 6b 20 6c 69 6e 65 20 69 a blank line i
46d0: 6e 64 69 63 61 74 65 73 20 74 68 65 20 65 6e 64 ndicates the end
46e0: 20 6f 66 20 74 68 65 20 62 6c 6f 63 6b 20 6f 66 of the block of
46f0: 20 74 65 78 74 20 0d 0a 20 20 28 65 78 70 65 63 text .. (expec
4700: 74 3a 72 65 71 75 69 72 65 64 20 69 6e 20 22 4c t:required in "L
4710: 6f 67 46 69 6c 65 42 6f 64 79 22 20 3e 20 30 20 ogFileBody" > 0
4720: 22 41 20 66 69 6c 65 20 6e 61 6d 65 20 74 68 61 "A file name tha
4730: 74 20 73 68 6f 75 6c 64 20 6e 65 76 65 72 20 65 t should never e
4740: 78 69 73 74 21 22 20 23 2f 54 68 69 73 20 69 73 xist!" #/This is
4750: 20 61 20 61 77 66 75 6c 6c 79 20 73 74 75 70 69 a awfully stupi
4760: 64 20 66 69 6c 65 20 6e 61 6d 65 20 74 68 61 74 d file name that
4770: 20 73 68 6f 75 6c 64 20 6e 65 76 65 72 20 62 65 should never be
4780: 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 74 65 found in the te
4790: 6d 70 20 64 69 72 2f 29 0d 0a 0d 0a 2d 2d 2d 2d mp dir/)....----
47a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d -------------...
47b0: 0a 54 6f 20 74 72 61 6e 73 66 65 72 20 74 68 65 .To transfer the
47c0: 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 74 6f 20 environment to
47d0: 74 68 65 20 6e 65 78 74 20 73 74 65 70 20 79 6f the next step yo
47e0: 75 20 63 61 6e 20 64 6f 20 74 68 65 20 66 6f 6c u can do the fol
47f0: 6c 6f 77 69 6e 67 3a 0d 0a 0d 0a 2d 2d 2d 2d 2d lowing:....-----
4800: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4810: 2d 2d 2d 2d 2d 2d 2d 0d 0a 24 4d 54 5f 4d 45 47 -------..$MT_MEG
4820: 41 54 45 53 54 20 2d 65 6e 76 32 66 69 6c 65 20 ATEST -env2file
4830: 2e 65 7a 73 74 65 70 73 2f 24 7b 73 74 65 70 6e .ezsteps/${stepn
4840: 61 6d 65 7d 09 20 20 0d 0a 2d 2d 2d 2d 2d 2d 2d ame}. ..-------
4850: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4860: 2d 2d 2d 2d 2d 0d 0a 0d 0a 54 72 69 67 67 65 72 -----....Trigger
4870: 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 49 s..~~~~~~~~....I
4880: 6e 20 79 6f 75 72 20 74 65 73 74 63 6f 6e 66 69 n your testconfi
4890: 67 20 6f 72 20 6d 65 67 61 74 65 73 74 2e 63 6f g or megatest.co
48a0: 6e 66 69 67 20 74 72 69 67 67 65 72 73 20 63 61 nfig triggers ca
48b0: 6e 20 62 65 20 73 70 65 63 69 66 69 65 64 20 0d n be specified .
48c0: 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...-------------
48d0: 2d 2d 2d 2d 0d 0a 5b 74 72 69 67 67 65 72 73 5d ----..[triggers]
48e0: 0d 0a 0d 0a 23 20 43 61 6c 6c 20 73 63 72 69 70 ....# Call scrip
48f0: 74 20 72 75 6e 6e 69 6e 67 2e 73 68 20 77 68 65 t running.sh whe
4900: 6e 20 74 65 73 74 20 67 6f 65 73 20 74 6f 20 73 n test goes to s
4910: 74 61 74 65 3d 52 55 4e 4e 49 4e 47 2c 20 73 74 tate=RUNNING, st
4920: 61 74 75 73 3d 50 41 53 53 0d 0a 52 55 4e 4e 49 atus=PASS..RUNNI
4930: 4e 47 2f 50 41 53 53 20 72 75 6e 6e 69 6e 67 2e NG/PASS running.
4940: 73 68 0d 0a 0d 0a 23 20 43 61 6c 6c 20 73 63 72 sh....# Call scr
4950: 69 70 74 20 72 75 6e 6e 69 6e 67 2e 73 68 20 61 ipt running.sh a
4960: 6e 79 20 74 69 6d 65 20 73 74 61 74 65 20 67 6f ny time state go
4970: 65 73 20 74 6f 20 52 55 4e 4e 49 4e 47 0d 0a 52 es to RUNNING..R
4980: 55 4e 4e 49 4e 47 2f 20 72 75 6e 6e 69 6e 67 2e UNNING/ running.
4990: 73 68 0d 0a 0d 0a 23 20 43 61 6c 6c 20 73 63 72 sh....# Call scr
49a0: 69 70 74 20 6f 6e 70 61 73 73 2e 73 68 20 61 6e ipt onpass.sh an
49b0: 79 20 74 69 6d 65 20 73 74 61 74 75 73 20 67 6f y time status go
49c0: 65 73 20 74 6f 20 50 41 53 53 0d 0a 50 41 53 53 es to PASS..PASS
49d0: 2f 20 6f 6e 70 61 73 73 2e 73 68 0d 0a 2d 2d 2d / onpass.sh..---
49e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
49f0: 0d 0a 53 63 72 69 70 74 73 20 63 61 6c 6c 65 64 ..Scripts called
4a00: 20 77 69 6c 6c 20 68 61 76 65 3b 20 74 65 73 74 will have; test
4a10: 2d 69 64 20 74 65 73 74 2d 72 75 6e 64 69 72 20 -id test-rundir
4a20: 74 72 69 67 67 65 72 20 74 65 73 74 2d 6e 61 6d trigger test-nam
4a30: 65 20 69 74 65 6d 2d 70 61 74 68 20 73 74 61 74 e item-path stat
4a40: 65 20 73 74 61 74 75 73 20 65 76 65 6e 74 2d 74 e status event-t
4a50: 69 6d 65 2c 20 61 64 64 65 64 20 74 6f 20 74 68 ime, added to th
4a60: 65 20 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 0d 0a e commandline...
4a70: 0d 0a 48 49 4e 54 0d 0a 0d 0a 54 6f 20 73 74 61 ..HINT....To sta
4a80: 72 74 20 61 6e 20 78 74 65 72 6d 20 28 75 73 65 rt an xterm (use
4a90: 66 75 6c 20 66 6f 72 20 64 65 62 75 67 67 69 6e ful for debuggin
4aa0: 67 29 2c 20 75 73 65 20 61 20 63 6f 6d 6d 61 6e g), use a comman
4ab0: 64 20 6c 69 6e 65 20 6c 69 6b 65 20 74 68 65 20 d line like the
4ac0: 66 6f 6c 6c 6f 77 69 6e 67 3a 0d 0a 0d 0a 2d 2d following:....--
4ad0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d ---------------.
4ae0: 0a 5b 74 72 69 67 67 65 72 73 5d 0d 0a 43 4f 4d .[triggers]..COM
4af0: 50 4c 45 54 45 44 2f 20 78 74 65 72 6d 20 2d 65 PLETED/ xterm -e
4b00: 20 62 61 73 68 20 2d 73 20 2d 2d 20 0d 0a 2d 2d bash -s -- ..--
4b10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d ---------------.
4b20: 0a 0d 0a 4e 4f 54 45 3a 20 54 68 65 72 65 20 69 ...NOTE: There i
4b30: 73 20 61 20 74 72 61 69 6c 69 6e 67 20 73 70 61 s a trailing spa
4b40: 63 65 20 61 66 74 65 72 20 74 68 65 20 2d 2d 0d ce after the --.
4b50: 0a 0d 0a 54 68 65 72 65 20 61 72 65 20 61 20 6e ...There are a n
4b60: 75 6d 62 65 72 20 6f 66 20 65 6e 76 69 72 6f 6e umber of environ
4b70: 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73 20 61 ment variables a
4b80: 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 vailable to the
4b90: 74 72 69 67 67 65 72 20 73 63 72 69 70 74 0d 0a trigger script..
4ba0: 62 75 74 20 73 69 6e 63 65 20 74 72 69 67 67 65 but since trigge
4bb0: 72 73 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 64 rs can be called
4bc0: 20 69 6e 20 76 61 72 69 6f 75 73 20 63 6f 6e 74 in various cont
4bd0: 65 78 74 73 20 6e 6f 74 20 61 6c 6c 20 76 61 72 exts not all var
4be0: 69 61 62 6c 65 73 20 61 72 65 0d 0a 61 76 61 69 iables are..avai
4bf0: 6c 61 62 6c 65 20 61 74 20 61 6c 6c 20 74 69 6d lable at all tim
4c00: 65 73 2e 20 54 68 65 20 74 72 69 67 67 65 72 20 es. The trigger
4c10: 73 63 72 69 70 74 20 73 68 6f 75 6c 64 20 63 68 script should ch
4c20: 65 63 6b 20 66 6f 72 20 74 68 65 20 76 61 72 69 eck for the vari
4c30: 61 62 6c 65 20 61 6e 64 0d 0a 66 61 69 6c 20 67 able and..fail g
4c40: 72 61 63 65 66 75 6c 6c 79 20 69 66 20 69 74 20 racefully if it
4c50: 64 6f 65 73 6e 27 74 20 65 78 69 73 74 2e 0d 0a doesn't exist...
4c60: 0d 0a 2e 45 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 ...Environment v
4c70: 61 72 69 61 62 6c 65 73 20 76 69 73 69 62 6c 65 ariables visible
4c80: 20 74 6f 20 74 68 65 20 74 72 69 67 67 65 72 20 to the trigger
4c90: 73 63 72 69 70 74 0d 0a 5b 77 69 64 74 68 3d 22 script..[width="
4ca0: 39 30 25 22 2c 63 6f 6c 73 3d 22 5e 2c 32 6d 22 90%",cols="^,2m"
4cb0: 2c 66 72 61 6d 65 3d 22 74 6f 70 62 6f 74 22 2c ,frame="topbot",
4cc0: 6f 70 74 69 6f 6e 73 3d 22 68 65 61 64 65 72 22 options="header"
4cd0: 5d 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ]..|============
4ce0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 7c 56 61 72 ==========..|Var
4cf0: 69 61 62 6c 65 20 20 20 20 20 20 20 20 20 20 20 iable
4d00: 20 20 7c 20 50 75 72 70 6f 73 65 20 20 20 20 20 | Purpose
4d10: 20 20 20 20 20 20 20 0d 0a 7c 20 4d 54 5f 54 45 ..| MT_TE
4d20: 53 54 5f 52 55 4e 5f 44 49 52 20 20 20 20 20 7c ST_RUN_DIR |
4d30: 20 54 68 65 20 64 69 72 65 63 74 6f 72 79 20 77 The directory w
4d40: 68 65 72 65 20 4d 65 67 61 74 65 73 74 20 72 61 here Megatest ra
4d50: 6e 20 74 68 69 73 20 74 65 73 74 20 20 20 20 20 n this test
4d60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a ..
4d70: 7c 20 4d 54 5f 43 4d 44 49 4e 46 4f 20 20 20 20 | MT_CMDINFO
4d80: 20 20 20 20 20 20 7c 20 45 6e 63 6f 64 65 64 20 | Encoded
4d90: 63 6f 6d 6d 61 6e 64 20 64 61 74 61 20 66 6f 72 command data for
4da0: 20 74 68 65 20 74 65 73 74 20 20 20 20 20 20 20 the test
4db0: 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 7c 20 ..|
4dc0: 4d 54 5f 44 45 42 55 47 5f 4d 4f 44 45 20 20 20 MT_DEBUG_MODE
4dd0: 20 20 20 20 7c 20 55 73 65 64 20 74 6f 20 70 61 | Used to pa
4de0: 73 73 20 74 68 65 20 64 65 62 75 67 20 6d 6f 64 ss the debug mod
4df0: 65 20 74 6f 20 6e 65 73 74 65 64 20 63 61 6c 6c e to nested call
4e00: 73 20 74 6f 20 4d 65 67 61 74 65 73 74 20 20 20 s to Megatest
4e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4e20: 0d 0a 7c 20 4d 54 5f 52 55 4e 5f 41 52 45 41 5f ..| MT_RUN_AREA_
4e30: 48 4f 4d 45 20 20 20 20 7c 20 4d 65 67 61 74 65 HOME | Megate
4e40: 73 74 20 68 6f 6d 65 20 61 72 65 61 20 0d 0a 7c st home area ..|
4e50: 20 4d 54 5f 54 45 53 54 53 55 49 54 45 4e 41 4d MT_TESTSUITENAM
4e60: 45 20 20 20 20 7c 20 54 68 65 20 6e 61 6d 65 20 E | The name
4e70: 6f 66 20 74 68 69 73 20 74 65 73 74 73 75 69 74 of this testsuit
4e80: 65 20 6f 72 20 61 72 65 61 20 20 20 20 20 20 20 e or area
4e90: 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 7c 20 ..|
4ea0: 4d 54 5f 54 45 53 54 5f 4e 41 4d 45 20 20 20 20 MT_TEST_NAME
4eb0: 20 20 20 20 7c 20 54 68 65 20 6e 61 6d 65 20 6f | The name o
4ec0: 66 20 74 68 69 73 20 74 65 73 74 0d 0a 7c 20 4d f this test..| M
4ed0: 54 5f 49 54 45 4d 5f 49 4e 46 4f 20 20 20 20 20 T_ITEM_INFO
4ee0: 20 20 20 7c 20 54 68 65 20 76 61 72 69 61 62 6c | The variabl
4ef0: 65 20 61 6e 64 20 76 61 6c 75 65 73 20 66 6f 72 e and values for
4f00: 20 74 68 65 20 74 65 73 74 20 69 74 65 6d 0d 0a the test item..
4f10: 7c 20 4d 54 5f 4d 45 47 41 54 45 53 54 20 20 20 | MT_MEGATEST
4f20: 20 20 20 20 20 20 7c 20 57 68 69 63 68 20 4d 65 | Which Me
4f30: 67 61 74 65 73 74 20 62 69 6e 61 72 79 20 69 73 gatest binary is
4f40: 20 62 65 69 6e 67 20 75 73 65 64 20 62 79 20 74 being used by t
4f50: 68 69 73 20 61 72 65 61 0d 0a 7c 20 4d 54 5f 54 his area..| MT_T
4f60: 41 52 47 45 54 20 20 20 20 20 20 20 20 20 20 20 ARGET
4f70: 7c 20 54 68 65 20 74 61 72 67 65 74 20 76 61 72 | The target var
4f80: 69 61 62 6c 65 20 76 61 6c 75 65 73 2c 20 73 65 iable values, se
4f90: 70 61 72 61 74 65 64 20 62 79 20 27 2f 27 0d 0a parated by '/'..
4fa0: 7c 20 4d 54 5f 4c 49 4e 4b 54 52 45 45 20 20 20 | MT_LINKTREE
4fb0: 20 20 20 20 20 20 7c 20 54 68 65 20 62 61 73 65 | The base
4fc0: 20 6f 66 20 74 68 65 20 6c 69 6e 6b 20 74 72 65 of the link tre
4fd0: 65 20 77 68 65 72 65 20 61 6c 6c 20 72 75 6e 20 e where all run
4fe0: 74 65 73 74 73 20 63 61 6e 20 62 65 20 66 6f 75 tests can be fou
4ff0: 6e 64 0d 0a 7c 20 4d 54 5f 49 54 45 4d 50 41 54 nd..| MT_ITEMPAT
5000: 48 20 20 20 20 20 20 20 20 20 7c 20 54 68 65 20 H | The
5010: 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 69 74 values of the it
5020: 65 6d 20 70 61 74 68 20 76 61 72 69 61 62 6c 65 em path variable
5030: 73 2c 20 73 65 70 61 72 61 74 65 64 20 62 79 20 s, separated by
5040: 27 2f 27 0d 0a 7c 20 4d 54 5f 52 55 4e 4e 41 4d '/'..| MT_RUNNAM
5050: 45 20 20 20 20 20 20 20 20 20 20 7c 20 54 68 65 E | The
5060: 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 72 75 6e name of the run
5070: 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ..|=============
5080: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 0d 0a 4f =========......O
5090: 76 65 72 72 69 64 65 20 74 68 65 20 54 6f 70 6c verride the Topl
50a0: 65 76 65 6c 20 48 54 4d 4c 20 46 69 6c 65 0d 0a evel HTML File..
50b0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e ~~~~~~~~~~~~~~~~
50c0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d ~~~~~~~~~~~~~~~.
50d0: 0a 0d 0a 4d 65 67 61 74 65 73 74 20 67 65 6e 65 ...Megatest gene
50e0: 72 61 74 65 73 20 61 20 73 69 6d 70 6c 65 20 68 rates a simple h
50f0: 74 6d 6c 20 66 69 6c 65 20 73 75 6d 6d 61 72 79 tml file summary
5100: 20 66 6f 72 20 74 6f 70 20 6c 65 76 65 6c 20 74 for top level t
5110: 65 73 74 73 20 6f 66 0d 0a 69 74 65 72 61 74 65 ests of..iterate
5120: 64 20 74 65 73 74 73 2e 20 54 68 65 20 67 65 6e d tests. The gen
5130: 65 72 61 74 69 6f 6e 20 63 61 6e 20 62 65 20 6f eration can be o
5140: 76 65 72 72 69 64 64 65 6e 2e 20 4e 4f 54 45 3a verridden. NOTE:
5150: 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 0d 0a the output of..
5160: 74 68 65 20 73 63 72 69 70 74 20 69 73 20 63 61 the script is ca
5170: 70 74 75 72 65 64 20 66 72 6f 6d 20 73 74 64 6f ptured from stdo
5180: 75 74 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 ut to create the
5190: 20 68 74 6d 6c 2e 0d 0a 0d 0a 0d 0a 2e 46 6f 72 html........For
51a0: 20 74 65 73 74 20 22 72 75 6e 66 69 72 73 74 22 test "runfirst"
51b0: 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 74 6f override the to
51c0: 70 6c 65 76 65 6c 20 67 65 6e 65 72 61 74 69 6f plevel generatio
51d0: 6e 20 77 69 74 68 20 61 20 73 63 72 69 70 74 20 n with a script
51e0: 22 6d 79 73 75 6d 6d 61 72 79 2e 73 68 22 0d 0a "mysummary.sh"..
51f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5200: 2d 0d 0a 23 20 4f 76 65 72 72 69 64 65 20 74 68 -..# Override th
5210: 65 20 72 6f 6c 6c 75 70 20 66 6f 72 20 73 70 65 e rollup for spe
5220: 63 69 66 69 63 20 74 65 73 74 73 0d 0a 5b 74 65 cific tests..[te
5230: 73 74 72 6f 6c 6c 75 70 5d 0d 0a 72 75 6e 66 69 strollup]..runfi
5240: 72 73 74 20 6d 79 73 75 6d 6d 61 72 79 2e 73 68 rst mysummary.sh
5250: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..--------------
5260: 2d 2d 2d 0d 0a 0d 0a 41 72 63 68 69 76 69 6e 67 ---....Archiving
5270: 20 53 65 74 75 70 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d Setup..--------
5280: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 49 6e 20 6d 65 -------....In me
5290: 67 61 74 65 73 74 2e 63 6f 6e 66 69 67 20 61 64 gatest.config ad
52a0: 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 d the following
52b0: 73 65 63 74 69 6f 6e 73 3a 0d 0a 0d 0a 2e 6d 65 sections:.....me
52c0: 67 61 74 65 73 74 2e 63 6f 6e 66 69 67 0d 0a 2d gatest.config..-
52d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b -------------..[
52e0: 61 72 63 68 69 76 65 5d 0d 0a 23 20 77 68 65 72 archive]..# wher
52f0: 65 20 74 6f 20 67 65 74 20 62 75 70 20 65 78 65 e to get bup exe
5300: 63 75 74 61 62 6c 65 0d 0a 23 20 62 75 70 20 2f cutable..# bup /
5310: 70 61 74 68 2f 74 6f 2f 62 75 70 0d 0a 0d 0a 5b path/to/bup....[
5320: 61 72 63 68 69 76 65 2d 64 69 73 6b 73 5d 0d 0a archive-disks]..
5330: 0d 0a 23 20 41 72 63 68 69 76 65 73 20 77 69 6c ..# Archives wil
5340: 6c 20 62 65 20 6f 72 67 61 6e 69 73 65 64 20 75 l be organised u
5350: 6e 64 65 72 20 74 68 65 73 65 20 70 61 74 68 73 nder these paths
5360: 20 6c 69 6b 65 20 74 68 69 73 3a 0d 0a 23 20 20 like this:..#
5370: 3c 74 65 73 74 73 75 69 74 65 3e 2f 3c 63 72 65 <testsuite>/<cre
5380: 61 74 69 6f 6e 64 61 74 65 3e 0d 0a 23 20 57 69 ationdate>..# Wi
5390: 74 68 69 6e 20 74 68 65 20 61 72 63 68 69 76 65 thin the archive
53a0: 20 74 68 65 20 64 61 74 61 20 69 73 20 73 74 72 the data is str
53b0: 75 63 74 75 72 65 64 20 6c 69 6b 65 20 74 68 69 uctured like thi
53c0: 73 3a 0d 0a 23 20 20 3c 74 61 72 67 65 74 3e 2f s:..# <target>/
53d0: 3c 72 75 6e 6e 61 6d 65 3e 2f 3c 74 65 73 74 3e <runname>/<test>
53e0: 2f 0d 0a 61 72 63 68 69 76 65 30 20 2f 6d 66 73 /..archive0 /mfs
53f0: 2f 6d 79 61 72 63 68 69 76 65 2d 64 61 74 61 2f /myarchive-data/
5400: 61 64 69 73 6b 31 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d adisk1..--------
5410: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 48 61 6e 64 6c 69 ------....Handli
5420: 6e 67 20 45 6e 76 69 72 6f 6e 6d 65 6e 74 20 56 ng Environment V
5430: 61 72 69 61 62 6c 65 73 0d 0a 2d 2d 2d 2d 2d 2d ariables..------
5440: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5450: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 49 74 20 69 --------....It i
5460: 73 20 6f 66 74 65 6e 20 6e 65 63 65 73 73 61 72 s often necessar
5470: 79 20 74 6f 20 63 61 70 74 75 72 65 20 61 6e 64 y to capture and
5480: 20 6f 72 20 6d 61 6e 69 70 75 6c 61 74 65 20 65 or manipulate e
5490: 6e 76 69 72 6f 6e 6d 65 6e 74 0d 0a 76 61 72 69 nvironment..vari
54a0: 61 62 6c 65 73 2e 20 4d 65 67 61 74 65 73 74 20 ables. Megatest
54b0: 68 61 73 20 73 6f 6d 65 20 66 61 63 69 6c 69 74 has some facilit
54c0: 69 65 73 20 62 75 69 6c 74 20 69 6e 20 74 6f 20 ies built in to
54d0: 68 65 6c 70 2e 0d 0a 0d 0a 43 61 70 74 75 72 65 help.....Capture
54e0: 20 76 61 72 69 61 62 6c 65 73 0d 0a 7e 7e 7e 7e variables..~~~~
54f0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d ~~~~~~~~~~~~~...
5500: 0a 2e 43 6f 6d 6d 61 6e 64 73 0d 0a 2d 2d 2d 2d ..Commands..----
5510: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5520: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 20 63 61 ----------..# ca
5530: 70 74 75 72 65 20 74 68 65 20 63 75 72 72 65 6e pture the curren
5540: 74 20 65 6e 76 69 72 6f 6d 65 6e 74 20 69 6e 74 t enviroment int
5550: 6f 20 61 20 64 62 20 63 61 6c 6c 65 64 20 65 6e o a db called en
5560: 76 64 61 74 2e 64 62 20 75 6e 64 65 72 0d 0a 23 vdat.db under..#
5570: 20 74 68 65 20 63 6f 6e 74 65 78 74 20 22 62 65 the context "be
5580: 66 6f 72 65 22 0d 0a 6d 65 67 61 74 65 73 74 20 fore"..megatest
5590: 2d 65 6e 76 63 61 70 20 62 65 66 6f 72 65 0d 0a -envcap before..
55a0: 0d 0a 23 20 63 61 70 74 75 72 65 20 74 68 65 20 ..# capture the
55b0: 63 75 72 72 65 6e 74 20 65 6e 76 69 72 6f 6e 6d current environm
55c0: 65 6e 74 20 69 6e 74 6f 20 61 20 64 62 20 63 61 ent into a db ca
55d0: 6c 6c 65 64 20 73 74 61 72 74 75 70 2e 64 62 20 lled startup.db
55e0: 77 69 74 68 20 0d 0a 23 20 63 6f 6e 74 65 78 74 with ..# context
55f0: 20 22 61 66 74 65 72 22 0d 0a 6d 65 67 61 74 65 "after"..megate
5600: 73 74 20 2d 65 6e 76 63 61 70 20 61 66 74 65 72 st -envcap after
5610: 20 73 74 61 72 74 75 70 2e 64 62 0d 0a 0d 0a 23 startup.db....#
5620: 20 77 72 69 74 65 20 74 68 65 20 64 69 66 66 20 write the diff
5630: 66 72 6f 6d 20 62 65 66 6f 72 65 20 74 6f 20 61 from before to a
5640: 66 74 65 72 0d 0a 6d 65 67 61 74 65 73 74 20 2d fter..megatest -
5650: 65 6e 76 64 65 6c 74 61 20 62 65 66 6f 72 65 2d envdelta before-
5660: 61 66 74 65 72 20 2d 64 75 6d 70 6d 6f 64 65 20 after -dumpmode
5670: 62 61 73 68 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d bash..----------
5680: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5690: 2d 2d 2d 2d 0d 0a 0d 0a 44 75 6d 70 20 6d 6f 64 ----....Dump mod
56a0: 65 73 20 69 6e 63 6c 75 64 65 20 62 61 73 68 2c es include bash,
56b0: 20 63 73 68 20 61 6e 64 20 63 6f 6e 66 69 67 2e csh and config.
56c0: 20 59 6f 75 20 63 61 6e 20 69 6e 63 6c 75 64 65 You can include
56d0: 20 63 6f 6e 66 69 67 20 64 61 74 61 0d 0a 69 6e config data..in
56e0: 74 6f 20 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 to megatest.conf
56f0: 69 67 20 6f 72 20 72 75 6e 63 6f 6e 66 69 67 73 ig or runconfigs
5700: 2e 63 6f 6e 66 69 67 2e 0d 0a 0d 0a 2e 45 78 61 .config......Exa
5710: 6d 70 6c 65 20 6f 66 20 67 65 6e 65 72 61 74 69 mple of generati
5720: 6e 67 20 61 6e 64 20 75 73 69 6e 67 20 63 6f 6e ng and using con
5730: 66 69 67 20 64 61 74 61 0d 0a 2d 2d 2d 2d 2d 2d fig data..------
5740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5750: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 6d 65 67 61 74 65 --------..megate
5760: 73 74 20 2d 65 6e 76 63 61 70 20 6f 72 69 67 69 st -envcap origi
5770: 6e 61 6c 0d 0a 23 20 64 6f 20 73 6f 6d 65 20 73 nal..# do some s
5780: 74 75 66 66 20 68 65 72 65 0d 0a 6d 65 67 61 74 tuff here..megat
5790: 65 73 74 20 2d 65 6e 76 63 61 70 20 6d 75 6e 67 est -envcap mung
57a0: 65 64 0d 0a 6d 65 67 61 74 65 73 74 20 2d 65 6e ed..megatest -en
57b0: 76 64 65 6c 74 61 20 6f 72 69 67 69 6e 61 6c 2d vdelta original-
57c0: 6d 75 6e 67 65 64 20 2d 64 75 6d 70 6d 6f 64 65 munged -dumpmode
57d0: 20 69 6e 69 20 2d 6f 20 6d 6f 64 69 66 69 65 64 ini -o modified
57e0: 2e 63 6f 6e 66 69 67 0d 0a 2d 2d 2d 2d 2d 2d 2d .config..-------
57f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5800: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 54 68 65 6e 20 -------....Then
5810: 69 6e 20 72 75 6e 63 6f 6e 66 69 67 73 2e 63 6f in runconfigs.co
5820: 6e 66 69 67 0d 0a 0d 0a 2e 45 78 61 6d 70 6c 65 nfig.....Example
5830: 20 6f 66 20 75 73 69 6e 67 20 6d 6f 64 69 66 69 of using modifi
5840: 65 64 2e 63 6f 6e 66 69 67 20 69 6e 20 61 20 74 ed.config in a t
5850: 65 73 74 63 6f 6e 66 69 67 0d 0a 2d 2d 2d 2d 2d estconfig..-----
5860: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5870: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 63 61 74 20 74 ---------..cat t
5880: 65 73 74 63 6f 6e 66 69 67 0d 0a 5b 70 72 65 2d estconfig..[pre-
5890: 6c 61 75 6e 63 68 2d 65 6e 76 2d 76 61 72 73 5d launch-env-vars]
58a0: 0d 0a 5b 69 6e 63 6c 75 64 65 20 6d 6f 64 69 66 ..[include modif
58b0: 69 65 64 2e 63 6f 6e 66 69 67 5d 0d 0a 2d 2d 2d ied.config]..---
58c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
58d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 4d -----------....M
58e0: 61 6e 61 67 69 6e 67 20 4f 6c 64 20 52 75 6e 73 anaging Old Runs
58f0: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..--------------
5900: 2d 2d 2d 0d 0a 0d 0a 49 74 20 69 73 20 6f 66 74 ---....It is oft
5910: 65 6e 20 64 65 73 69 72 65 64 20 74 6f 20 6b 65 en desired to ke
5920: 65 70 20 73 6f 6d 65 20 6f 6c 64 65 72 20 72 75 ep some older ru
5930: 6e 73 20 61 72 6f 75 6e 64 20 62 75 74 20 74 68 ns around but th
5940: 69 73 20 6d 75 73 74 20 62 65 20 62 61 6c 61 6e is must be balan
5950: 63 65 64 20 77 69 74 68 20 74 68 65 20 63 6f 73 ced with the cos
5960: 74 73 20 6f 66 20 64 69 73 6b 20 73 70 61 63 65 ts of disk space
5970: 2e 0d 0a 0d 0a 2e 20 55 73 65 20 2d 72 65 6d 6f ...... Use -remo
5980: 76 65 2d 6b 65 65 70 0d 0a 2e 20 55 73 65 20 2d ve-keep... Use -
5990: 61 72 63 68 69 76 65 20 28 63 61 6e 20 61 6c 73 archive (can als
59a0: 6f 20 62 65 20 64 6f 6e 65 20 66 72 6f 6d 20 74 o be done from t
59b0: 68 65 20 2d 72 65 6d 6f 76 65 2d 6b 65 65 70 20 he -remove-keep
59c0: 69 6e 74 65 72 66 61 63 65 29 0d 0a 2e 20 75 73 interface)... us
59d0: 65 20 2d 72 65 6d 6f 76 65 2d 72 75 6e 73 20 77 e -remove-runs w
59e0: 69 74 68 20 2d 6b 65 65 70 2d 72 65 63 6f 72 64 ith -keep-record
59f0: 73 0d 0a 0d 0a 2e 46 6f 72 20 65 61 63 68 20 74 s.....For each t
5a00: 61 72 67 65 74 2c 20 72 65 6d 6f 76 65 20 61 6c arget, remove al
5a10: 6c 20 72 75 6e 73 20 62 75 74 20 74 68 65 20 6d l runs but the m
5a20: 6f 73 74 20 72 65 63 65 6e 74 20 33 20 69 66 20 ost recent 3 if
5a30: 74 68 65 79 20 61 72 65 20 6f 76 65 72 20 31 20 they are over 1
5a40: 77 65 65 6b 20 6f 6c 64 0d 0a 2d 2d 2d 2d 2d 2d week old..------
5a50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d ---------------.
5a60: 0a 23 20 75 73 65 20 2d 70 72 65 63 6d 64 20 27 .# use -precmd '
5a70: 73 6c 65 65 70 20 35 3b 6e 62 66 61 6b 65 27 20 sleep 5;nbfake'
5a80: 74 6f 20 6c 69 6d 69 74 20 6f 76 65 72 6c 6f 61 to limit overloa
5a90: 64 69 6e 67 20 74 68 65 20 68 6f 73 74 20 63 6f ding the host co
5aa0: 6d 70 75 74 65 72 20 62 75 74 20 74 6f 20 61 6c mputer but to al
5ab0: 6c 6f 77 20 74 68 65 20 72 65 6d 6f 76 65 73 20 low the removes
5ac0: 74 6f 20 72 75 6e 20 69 6e 20 70 61 72 61 6c 6c to run in parall
5ad0: 65 6c 2e 0d 0a 6d 65 67 61 74 65 73 74 20 2d 61 el...megatest -a
5ae0: 63 74 69 6f 6e 73 20 70 72 69 6e 74 2c 72 65 6d ctions print,rem
5af0: 6f 76 65 2d 72 75 6e 73 20 2d 72 65 6d 6f 76 65 ove-runs -remove
5b00: 2d 6b 65 65 70 20 33 20 2d 74 61 72 67 65 74 20 -keep 3 -target
5b10: 25 2f 25 2f 25 2f 25 20 2d 72 75 6e 6e 61 6d 65 %/%/%/% -runname
5b20: 20 25 20 2d 61 67 65 20 31 77 20 2d 70 72 65 63 % -age 1w -prec
5b30: 6d 64 20 27 73 6c 65 65 70 20 35 3b 6e 62 66 61 md 'sleep 5;nbfa
5b40: 6b 65 27 22 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ke'"..----------
5b50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 4e -----------....N
5b60: 65 73 74 65 64 20 52 75 6e 73 0d 0a 2d 2d 2d 2d ested Runs..----
5b70: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 41 20 4d 65 67 -------....A Meg
5b80: 61 74 65 73 74 20 74 65 73 74 20 63 61 6e 20 72 atest test can r
5b90: 75 6e 20 61 20 66 75 6c 6c 20 4d 65 67 61 74 65 un a full Megate
5ba0: 73 74 20 72 75 6e 20 69 6e 20 65 69 74 68 65 72 st run in either
5bb0: 20 74 68 65 20 73 61 6d 65 0d 0a 4d 65 67 61 74 the same..Megat
5bc0: 65 73 74 20 61 72 65 61 20 6f 72 20 69 6e 20 61 est area or in a
5bd0: 6e 6f 74 68 65 72 20 61 72 65 61 2e 20 54 68 69 nother area. Thi
5be0: 73 20 69 73 20 61 20 70 6f 77 65 72 66 75 6c 20 s is a powerful
5bf0: 77 61 79 20 6f 66 20 63 68 61 69 6e 69 6e 67 0d way of chaining.
5c00: 0a 63 6f 6d 70 6c 65 78 20 73 75 69 74 65 73 20 .complex suites
5c10: 6f 66 20 74 65 73 74 73 20 61 6e 64 20 6f 72 20 of tests and or
5c20: 61 63 74 69 6f 6e 73 2e 0d 0a 0d 0a 49 66 20 79 actions.....If y
5c30: 6f 75 20 61 72 65 20 6e 6f 74 20 75 73 69 6e 67 ou are not using
5c40: 20 74 68 65 20 63 75 72 72 65 6e 74 20 61 72 65 the current are
5c50: 61 20 79 6f 75 20 63 61 6e 20 75 73 65 20 65 7a a you can use ez
5c60: 73 74 65 70 73 20 74 6f 20 72 65 74 72 69 65 76 steps to retriev
5c70: 65 0d 0a 61 6e 64 20 73 65 74 75 70 20 74 68 65 e..and setup the
5c80: 20 73 75 62 2d 4d 65 67 61 74 65 73 74 20 72 75 sub-Megatest ru
5c90: 6e 20 61 72 65 61 2e 0d 0a 0d 0a 49 6e 20 74 68 n area.....In th
5ca0: 65 20 74 65 73 74 63 6f 6e 66 69 67 3a 0d 0a 2d e testconfig:..-
5cb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
5cc0: 5b 73 75 62 72 75 6e 5d 0d 0a 0d 0a 23 20 52 65 [subrun]....# Re
5cd0: 71 75 69 72 65 64 3a 20 77 61 69 74 20 66 6f 72 quired: wait for
5ce0: 20 74 68 65 20 72 75 6e 20 6f 72 20 6a 75 73 74 the run or just
5cf0: 20 6c 61 75 6e 63 68 20 69 74 0d 0a 23 20 20 20 launch it..#
5d00: 20 20 20 20 20 20 20 20 69 66 20 6e 6f 20 74 68 if no th
5d10: 65 6e 20 74 68 65 20 72 75 6e 20 77 69 6c 6c 20 en the run will
5d20: 62 65 20 61 6e 20 61 75 74 6f 6d 61 74 69 63 20 be an automatic
5d30: 50 41 53 53 20 69 72 72 65 73 70 65 63 74 69 76 PASS irrespectiv
5d40: 65 20 6f 66 20 74 68 65 20 61 63 74 75 61 6c 20 e of the actual
5d50: 72 65 73 75 6c 74 0d 0a 72 75 6e 2d 77 61 69 74 result..run-wait
5d60: 20 79 65 73 7c 6e 6f 0d 0a 0d 0a 23 20 4f 70 74 yes|no....# Opt
5d70: 69 6f 6e 61 6c 3a 20 77 68 65 72 65 20 74 6f 20 ional: where to
5d80: 65 78 65 63 75 74 65 20 74 68 65 20 72 75 6e 2e execute the run.
5d90: 20 44 65 66 61 75 6c 74 20 69 73 20 74 68 65 20 Default is the
5da0: 63 75 72 72 65 6e 74 20 72 75 6e 61 72 65 61 0d current runarea.
5db0: 0a 72 75 6e 2d 61 72 65 61 20 2f 73 6f 6d 65 2f .run-area /some/
5dc0: 70 61 74 68 2f 74 6f 2f 6d 65 67 61 74 65 73 74 path/to/megatest
5dd0: 2f 61 72 65 61 0d 0a 0d 0a 23 20 4f 70 74 69 6f /area....# Optio
5de0: 6e 61 6c 3a 20 6d 65 74 68 6f 64 20 74 6f 20 75 nal: method to u
5df0: 73 65 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 se to determine
5e00: 70 61 73 73 2f 66 61 69 6c 20 73 74 61 74 75 73 pass/fail status
5e10: 20 6f 66 20 74 68 65 20 72 75 6e 0d 0a 23 20 20 of the run..#
5e20: 20 61 75 74 6f 20 28 64 65 66 61 75 6c 74 29 20 auto (default)
5e30: 2d 20 72 6f 6c 6c 20 75 70 20 74 68 65 20 6e 65 - roll up the ne
5e40: 74 20 73 74 61 74 65 2f 73 74 61 74 75 73 20 6f t state/status o
5e50: 66 20 74 68 65 20 73 75 62 2d 72 75 6e 0d 0a 23 f the sub-run..#
5e60: 20 20 20 6c 6f 67 70 72 6f 20 20 20 20 20 20 20 logpro
5e70: 20 20 2d 20 75 73 65 20 74 68 65 20 70 72 6f 76 - use the prov
5e80: 69 64 65 64 20 6c 6f 67 70 72 6f 20 72 75 6c 65 ided logpro rule
5e90: 73 2c 20 68 61 70 70 65 6e 73 20 61 75 74 6f 6d s, happens autom
5ea0: 61 74 69 63 61 6c 6c 79 20 69 66 20 74 68 65 72 atically if ther
5eb0: 65 20 69 73 20 61 20 6c 6f 67 70 72 6f 20 73 65 e is a logpro se
5ec0: 63 74 69 6f 6e 0d 0a 23 20 70 61 73 73 66 61 69 ction..# passfai
5ed0: 6c 20 61 75 74 6f 7c 6c 6f 67 70 72 6f 0d 0a 23 l auto|logpro..#
5ee0: 20 45 78 61 6d 70 6c 65 20 6f 66 20 6c 6f 67 70 Example of logp
5ef0: 72 6f 3a 0d 0a 70 61 73 73 66 61 69 6c 20 6c 6f ro:..passfail lo
5f00: 67 70 72 6f 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e gpro....# Option
5f10: 61 6c 3a 20 0d 0a 6c 6f 67 70 72 6f 20 3b 3b 20 al: ..logpro ;;
5f20: 69 66 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 if this section
5f30: 65 78 69 73 74 73 20 74 68 65 6e 20 6c 6f 67 70 exists then logp
5f40: 72 6f 20 69 73 20 75 73 65 64 20 74 6f 20 64 65 ro is used to de
5f50: 74 65 72 6d 69 6e 65 20 70 61 73 73 2f 66 61 69 termine pass/fai
5f60: 6c 0d 0a 20 20 28 65 78 70 65 63 74 3a 72 65 71 l.. (expect:req
5f70: 75 69 72 65 64 20 69 6e 20 22 4c 6f 67 46 69 6c uired in "LogFil
5f80: 65 42 6f 64 79 22 20 3e 3d 20 31 20 22 41 74 20 eBody" >= 1 "At
5f90: 6c 65 61 73 74 20 6f 6e 65 20 70 61 73 73 22 20 least one pass"
5fa0: 23 2f 50 41 53 53 2f 29 0d 0a 20 20 28 65 78 70 #/PASS/).. (exp
5fb0: 65 63 74 3a 65 72 72 6f 72 20 20 20 20 20 69 6e ect:error in
5fc0: 20 22 4c 6f 67 46 69 6c 65 42 6f 64 79 22 20 20 "LogFileBody"
5fd0: 3d 20 30 20 22 4e 6f 20 46 41 49 4c 73 20 61 6c = 0 "No FAILs al
5fe0: 6c 6f 77 65 64 22 20 20 23 2f 46 41 49 4c 2f 29 lowed" #/FAIL/)
5ff0: 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61 6c 3a 20 ....# Optional:
6000: 74 61 72 67 65 74 20 74 72 61 6e 73 6c 61 74 6f target translato
6010: 72 2c 20 64 65 66 61 75 6c 74 20 69 73 20 74 6f r, default is to
6020: 20 75 73 65 20 74 68 65 20 70 61 72 65 6e 74 20 use the parent
6030: 74 61 72 67 65 74 0d 0a 74 61 72 67 65 74 20 23 target..target #
6040: 7b 73 68 65 6c 6c 20 73 6f 6d 65 73 63 72 69 70 {shell somescrip
6050: 74 2e 73 68 7d 0d 0a 0d 0a 23 20 4f 70 74 69 6f t.sh}....# Optio
6060: 6e 61 6c 3a 20 72 75 6e 6e 61 6d 65 20 74 72 61 nal: runname tra
6070: 6e 73 6c 61 74 6f 72 2f 67 65 6e 65 72 61 74 6f nslator/generato
6080: 72 2c 20 64 65 66 61 75 6c 74 20 69 73 20 74 6f r, default is to
6090: 20 75 73 65 20 74 68 65 20 70 61 72 65 6e 74 20 use the parent
60a0: 72 75 6e 6e 61 6d 65 0d 0a 72 75 6e 2d 6e 61 6d runname..run-nam
60b0: 65 20 23 7b 73 6f 6d 65 73 63 72 69 70 74 2e 73 e #{somescript.s
60c0: 68 7d 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61 6c h}....# Optional
60d0: 3a 20 74 65 73 74 70 61 74 74 20 73 70 65 63 2c : testpatt spec,
60e0: 20 64 65 66 61 75 6c 74 20 69 73 20 74 6f 20 66 default is to f
60f0: 69 72 73 74 20 6c 6f 6f 6b 20 66 6f 72 20 54 45 irst look for TE
6100: 53 54 50 41 54 54 20 73 70 65 63 20 66 72 6f 6d STPATT spec from
6110: 20 72 75 6e 63 6f 6e 66 69 67 73 20 75 6e 6c 65 runconfigs unle
6120: 73 73 20 74 68 65 72 65 20 69 73 20 61 20 63 6f ss there is a co
6130: 6e 74 6f 75 72 20 73 70 65 63 0d 0a 74 65 73 74 ntour spec..test
6140: 2d 70 61 74 74 20 25 2f 69 74 65 6d 31 2c 74 65 -patt %/item1,te
6150: 73 74 32 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61 st2....# Optiona
6160: 6c 3a 20 63 6f 6e 74 6f 75 72 20 73 70 65 63 2c l: contour spec,
6170: 20 75 73 65 20 74 68 65 20 6e 61 6d 65 64 20 63 use the named c
6180: 6f 6e 74 6f 75 72 20 66 72 6f 6d 20 74 68 65 20 ontour from the
6190: 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 69 67 20 megatest.config
61a0: 63 6f 6e 74 6f 75 72 20 73 70 65 63 0d 0a 63 6f contour spec..co
61b0: 6e 74 6f 75 72 20 63 6f 6e 74 6f 75 72 6e 61 6d ntour contournam
61c0: 65 20 23 23 23 20 4e 4f 54 45 3a 20 4e 6f 74 20 e ### NOTE: Not
61d0: 69 6d 70 6c 65 6d 65 6e 74 65 64 20 79 65 74 21 implemented yet!
61e0: 20 4c 65 74 20 75 73 20 6b 6e 6f 77 20 69 66 20 Let us know if
61f0: 79 6f 75 20 6e 65 65 64 20 74 68 69 73 20 66 65 you need this fe
6200: 61 74 75 72 65 2e 0d 0a 0d 0a 23 20 4f 70 74 69 ature.....# Opti
6210: 6f 6e 61 6c 3a 20 6d 6f 64 65 2d 70 61 74 74 2c onal: mode-patt,
6220: 20 75 73 65 20 74 68 69 73 20 73 70 65 63 20 66 use this spec f
6230: 6f 72 20 74 65 73 74 70 61 74 74 20 66 72 6f 6d or testpatt from
6240: 20 72 75 6e 63 6f 6e 66 69 67 73 0d 0a 6d 6f 64 runconfigs..mod
6250: 65 2d 70 61 74 74 20 54 45 53 54 50 41 54 54 0d e-patt TESTPATT.
6260: 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61 6c 3a 20 74 ...# Optional: t
6270: 61 67 2d 65 78 70 72 2c 20 75 73 65 20 74 68 69 ag-expr, use thi
6280: 73 20 74 61 67 2d 65 78 70 72 20 74 6f 20 73 65 s tag-expr to se
6290: 6c 65 63 74 20 74 65 73 74 73 0d 0a 74 61 67 2d lect tests..tag-
62a0: 65 78 70 72 20 71 75 69 63 6b 0d 0a 0d 0a 23 20 expr quick....#
62b0: 4f 70 74 69 6f 6e 61 6c 3a 20 28 6e 6f 74 20 79 Optional: (not y
62c0: 65 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 2c 20 et implemented,
62d0: 72 65 6d 6f 76 65 2d 72 75 6e 73 20 69 73 20 61 remove-runs is a
62e0: 6c 77 61 79 73 20 70 72 6f 70 61 67 61 74 65 64 lways propagated
62f0: 20 61 74 20 74 68 69 73 20 74 69 6d 65 29 2c 20 at this time),
6300: 70 72 6f 70 61 67 61 74 65 20 74 68 65 73 65 20 propagate these
6310: 61 63 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 65 actions from the
6320: 20 70 61 72 65 6e 74 0d 0a 23 20 20 20 20 20 20 parent..#
6330: 20 20 20 20 20 74 65 73 74 0d 0a 23 20 20 20 4e test..# N
6340: 6f 74 65 2f 2f 20 64 65 66 61 75 6c 74 20 69 73 ote// default is
6350: 20 25 20 66 6f 72 20 61 6c 6c 0d 0a 70 72 6f 70 % for all..prop
6360: 61 67 61 74 65 20 72 65 6d 6f 76 65 2d 72 75 6e agate remove-run
6370: 73 20 61 72 63 68 69 76 65 20 2e 2e 2e 0d 0a 0d s archive ......
6380: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .---------------
6390: 0d 0a 0d 0a 50 72 6f 67 72 61 6d 6d 69 6e 67 20 ....Programming
63a0: 41 50 49 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d API..-----------
63b0: 2d 2d 2d 2d 0d 0a 0d 0a 54 68 65 73 65 20 72 6f ----....These ro
63c0: 75 74 69 6e 65 73 20 63 61 6e 20 62 65 20 63 61 utines can be ca
63d0: 6c 6c 65 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 lled from the me
63e0: 67 61 74 65 73 74 20 72 65 70 6c 2e 20 0d 0a 0d gatest repl. ...
63f0: 0a 2e 41 50 49 20 4b 65 79 73 20 52 65 6c 61 74 ..API Keys Relat
6400: 65 64 20 43 61 6c 6c 73 0d 0a 5b 77 69 64 74 68 ed Calls..[width
6410: 3d 22 37 30 25 22 2c 63 6f 6c 73 3d 22 5e 2c 32 ="70%",cols="^,2
6420: 6d 2c 32 6d 2c 32 6d 22 2c 66 72 61 6d 65 3d 22 m,2m,2m",frame="
6430: 74 6f 70 62 6f 74 22 2c 6f 70 74 69 6f 6e 73 3d topbot",options=
6440: 22 68 65 61 64 65 72 2c 66 6f 6f 74 65 72 22 5d "header,footer"]
6450: 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ..|=============
6460: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 7c 41 50 49 20 =========..|API
6470: 43 61 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 Call
6480: 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 50 75 | Pu
6490: 72 70 6f 73 65 20 63 6f 6d 6d 65 6e 74 73 20 20 rpose comments
64a0: 20 7c 20 52 65 74 75 72 6e 73 20 20 20 20 20 20 | Returns
64b0: 20 20 20 20 20 20 20 20 20 20 20 7c 20 43 6f 6d | Com
64c0: 6d 65 6e 74 73 0d 0a 7c 28 72 6d 74 3a 67 65 74 ments..|(rmt:get
64d0: 2d 6b 65 79 73 20 72 75 6e 2d 69 64 29 20 20 20 -keys run-id)
64e0: 20 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 20 |
64f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 28 | (
6500: 20 6b 65 79 31 20 6b 65 79 32 20 2e 2e 2e 20 29 key1 key2 ... )
6510: 20 20 20 20 20 20 20 7c 20 0d 0a 7c 20 28 72 6d | ..| (rm
6520: 74 3a 67 65 74 2d 6b 65 79 2d 76 61 6c 2d 70 61 t:get-key-val-pa
6530: 69 72 73 20 72 75 6e 2d 69 64 29 20 7c 20 20 20 irs run-id) |
6540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
6550: 20 7c 20 23 74 3d 73 75 63 63 65 73 73 2f 23 66 | #t=success/#f
6560: 3d 66 61 69 6c 20 20 20 20 20 20 7c 20 57 6f 72 =fail | Wor
6570: 6b 73 20 6f 6e 6c 79 20 69 66 20 74 68 65 20 73 ks only if the s
6580: 65 72 76 65 72 20 69 73 20 73 74 69 6c 6c 20 72 erver is still r
6590: 65 61 63 68 61 62 6c 65 0d 0a 7c 3d 3d 3d 3d 3d eachable..|=====
65a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
65b0: 3d 0d 0a 0d 0a 0d 0a 3a 6e 75 6d 62 65 72 65 64 =......:numbered
65c0: 21 3a 0d 0a 0a 5a 20 33 38 64 35 66 30 39 32 39 !:...Z 38d5f0929
65d0: 30 61 35 31 34 30 32 33 65 33 32 62 32 64 37 39 0a514023e32b2d79
65e0: 36 64 34 35 34 32 62 0a 6d4542b.