Megatest

Hex Artifact Content
Login

Artifact 1b9dd4fd45a14b2a1f1db80af9eb1dd64ea89cd1:

Wiki page [reference] by jmoon18 2018-07-25 12:08:09.
0000: 44 20 32 30 31 38 2d 30 37 2d 32 35 54 31 38 3a  D 2018-07-25T18:
0010: 30 38 3a 30 39 2e 30 38 37 0a 4c 20 72 65 66 65  08:09.087.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 65 62 37 35 66 30 37 30 36 63 37  in.P eb75f0706c7
0040: 39 63 61 30 61 35 39 33 61 38 39 34 63 64 65 38  9ca0a593a894cde8
0050: 36 64 66 38 63 37 32 34 34 30 65 36 65 0a 55 20  6df8c72440e6e.U 
0060: 6a 6d 6f 6f 6e 31 38 0a 57 20 32 35 32 33 32 0a  jmoon18.W 25232.
0070: 2f 2f 20 54 68 69 73 20 66 69 6c 65 20 69 73 20  // This file is 
0080: 70 61 72 74 20 6f 66 20 4d 65 67 61 74 65 73 74  part of Megatest
0090: 2e 0d 0a 2f 2f 20 0d 0a 2f 2f 20 20 20 20 20 4d  ...// ..//     M
00a0: 65 67 61 74 65 73 74 20 69 73 20 66 72 65 65 20  egatest is free 
00b0: 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61  software: you ca
00c0: 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69  n redistribute i
00d0: 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0d  t and/or modify.
00e0: 0a 2f 2f 20 20 20 20 20 69 74 20 75 6e 64 65 72  .//     it under
00f0: 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68   the terms of th
0100: 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75  e GNU General Pu
0110: 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20  blic License as 
0120: 70 75 62 6c 69 73 68 65 64 20 62 79 0d 0a 2f 2f  published by..//
0130: 20 20 20 20 20 74 68 65 20 46 72 65 65 20 53 6f       the Free So
0140: 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f  ftware Foundatio
0150: 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f  n, either versio
0160: 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e  n 3 of the Licen
0170: 73 65 2c 20 6f 72 0d 0a 2f 2f 20 20 20 20 20 28  se, or..//     (
0180: 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20  at your option) 
0190: 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f  any later versio
01a0: 6e 2e 0d 0a 2f 2f 20 0d 0a 2f 2f 20 20 20 20 20  n...// ..//     
01b0: 4d 65 67 61 74 65 73 74 20 69 73 20 64 69 73 74  Megatest is dist
01c0: 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68  ributed in the h
01d0: 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c  ope that it will
01e0: 20 62 65 20 75 73 65 66 75 6c 2c 0d 0a 2f 2f 20   be useful,..// 
01f0: 20 20 20 20 62 75 74 20 57 49 54 48 4f 55 54 20      but WITHOUT 
0200: 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69  ANY WARRANTY; wi
0210: 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69  thout even the i
0220: 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20  mplied warranty 
0230: 6f 66 0d 0a 2f 2f 20 20 20 20 20 4d 45 52 43 48  of..//     MERCH
0240: 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49  ANTABILITY or FI
0250: 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54  TNESS FOR A PART
0260: 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20  ICULAR PURPOSE. 
0270: 20 53 65 65 20 74 68 65 0d 0a 2f 2f 20 20 20 20   See the..//    
0280: 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62   GNU General Pub
0290: 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20  lic License for 
02a0: 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0d 0a 2f  more details.../
02b0: 2f 20 0d 0a 2f 2f 20 20 20 20 20 59 6f 75 20 73  / ..//     You s
02c0: 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69  hould have recei
02d0: 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68  ved a copy of th
02e0: 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75  e GNU General Pu
02f0: 62 6c 69 63 20 4c 69 63 65 6e 73 65 0d 0a 2f 2f  blic License..//
0300: 20 20 20 20 20 61 6c 6f 6e 67 20 77 69 74 68 20       along with 
0310: 4d 65 67 61 74 65 73 74 2e 20 20 49 66 20 6e 6f  Megatest.  If no
0320: 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77  t, see <http://w
0330: 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e  ww.gnu.org/licen
0340: 73 65 73 2f 3e 2e 0d 0a 0d 0a 52 65 66 65 72 65  ses/>.....Refere
0350: 6e 63 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  nce..---------..
0360: 0d 0a 43 6f 6e 66 69 67 20 46 69 6c 65 20 48 65  ..Config File He
0370: 6c 70 65 72 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e  lpers..~~~~~~~~~
0380: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 56 61  ~~~~~~~~~~....Va
0390: 72 69 6f 75 73 20 68 65 6c 70 65 72 73 20 66 6f  rious helpers fo
03a0: 72 20 6d 6f 72 65 20 61 64 76 61 6e 63 65 64 20  r more advanced 
03b0: 63 6f 6e 66 69 67 20 66 69 6c 65 73 2e 0d 0a 0d  config files....
03c0: 0a 2e 48 65 6c 70 65 72 73 0d 0a 5b 77 69 64 74  ..Helpers..[widt
03d0: 68 3d 22 38 30 25 22 2c 63 6f 6c 73 3d 22 5e 2c  h="80%",cols="^,
03e0: 32 6d 2c 32 6d 2c 32 6d 22 2c 66 72 61 6d 65 3d  2m,2m,2m",frame=
03f0: 22 74 6f 70 62 6f 74 22 2c 6f 70 74 69 6f 6e 73  "topbot",options
0400: 3d 22 68 65 61 64 65 72 22 5d 0d 0a 7c 3d 3d 3d  ="header"]..|===
0410: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0420: 3d 3d 3d 0d 0a 7c 48 65 6c 70 65 72 20 20 20 20  ===..|Helper    
0430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0440: 20 20 7c 20 50 75 72 70 6f 73 65 20 20 20 20 20    | Purpose     
0450: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0460: 20 20 7c 20 56 61 6c 69 64 20 76 61 6c 75 65 73    | Valid values
0470: 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 43 6f              | Co
0480: 6d 6d 65 6e 74 73 0d 0a 7c 20 23 7b 73 63 68 65  mments..| #{sche
0490: 6d 65 20 28 73 63 68 65 6d 65 20 63 6f 64 65 2e  me (scheme code.
04a0: 2e 2e 29 7d 20 7c 20 45 78 65 63 75 74 65 20 61  ..)} | Execute a
04b0: 72 62 69 74 72 61 72 79 20 73 63 68 65 6d 65 20  rbitrary scheme 
04c0: 63 6f 64 65 20 7c 20 41 6e 79 20 76 61 6c 69 64  code | Any valid
04d0: 20 73 63 68 65 6d 65 20 20 20 20 20 20 20 20 7c   scheme        |
04e0: 20 56 61 6c 75 65 20 72 65 74 75 72 6e 65 64 20   Value returned 
04f0: 66 72 6f 6d 20 74 68 65 20 63 61 6c 6c 20 69 73  from the call is
0500: 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 20   converted to a 
0510: 73 74 72 69 6e 67 20 61 6e 64 20 70 72 6f 63 65  string and proce
0520: 73 73 65 64 20 61 73 20 70 61 72 74 20 6f 66 20  ssed as part of 
0530: 74 68 65 20 63 6f 6e 66 69 67 20 66 69 6c 65 0d  the config file.
0540: 0a 7c 20 23 7b 73 79 73 74 65 6d 20 63 6f 6d 6d  .| #{system comm
0550: 61 6e 64 7d 20 20 20 20 20 20 20 20 20 20 7c 20  and}          | 
0560: 45 78 65 63 75 74 65 20 70 72 6f 67 72 61 6d 2c  Execute program,
0570: 20 69 6e 73 65 72 74 73 20 65 78 69 74 20 63 6f   inserts exit co
0580: 64 65 20 20 7c 20 41 6e 79 20 76 61 6c 69 64 20  de  | Any valid 
0590: 55 6e 69 78 20 63 6f 6d 6d 61 6e 64 20 20 7c 20  Unix command  | 
05a0: 44 69 73 63 61 72 64 73 20 74 68 65 20 6f 75 74  Discards the out
05b0: 70 75 74 20 66 72 6f 6d 20 74 68 65 20 70 72 6f  put from the pro
05c0: 67 72 61 6d 0d 0a 7c 20 23 7b 73 68 65 6c 6c 20  gram..| #{shell 
05d0: 20 63 6f 6d 6d 61 6e 64 7d 20 6f 72 20 23 7b 73   command} or #{s
05e0: 68 20 2e 2e 2e 7d 20 20 7c 20 45 78 65 63 75 74  h ...}  | Execut
05f0: 65 20 70 72 6f 67 72 61 6d 2c 20 69 6e 73 65 72  e program, inser
0600: 74 73 20 72 65 73 75 6c 74 20 66 72 6f 6d 20 73  ts result from s
0610: 74 64 6f 75 74 20 7c 20 41 6e 79 20 76 61 6c 69  tdout | Any vali
0620: 64 20 55 6e 69 78 20 63 6f 6d 6d 61 6e 64 20 7c  d Unix command |
0630: 20 56 61 6c 75 65 20 72 65 74 75 72 6e 65 64 20   Value returned 
0640: 66 72 6f 6d 20 74 68 65 20 63 61 6c 6c 20 69 73  from the call is
0650: 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 20   converted to a 
0660: 73 74 72 69 6e 67 20 61 6e 64 20 70 72 6f 63 65  string and proce
0670: 73 73 65 64 20 61 73 20 70 61 72 74 20 6f 66 20  ssed as part of 
0680: 74 68 65 20 63 6f 6e 66 69 67 20 66 69 6c 65 0d  the config file.
0690: 0a 7c 20 23 7b 72 65 61 6c 70 61 74 68 20 70 61  .| #{realpath pa
06a0: 74 68 7d 20 6f 72 20 23 7b 72 70 20 2e 2e 2e 7d  th} or #{rp ...}
06b0: 20 20 20 7c 20 52 65 70 6c 61 63 65 20 77 69 74     | Replace wit
06c0: 68 20 6e 6f 72 6d 61 6c 69 7a 65 64 20 70 61 74  h normalized pat
06d0: 68 20 7c 20 4d 75 73 74 20 62 65 20 61 20 76 61  h | Must be a va
06e0: 6c 69 64 20 70 61 74 68 20 7c 0d 0a 7c 20 23 7b  lid path |..| #{
06f0: 67 65 74 65 6e 76 20 56 41 52 7d 20 6f 72 20 23  getenv VAR} or #
0700: 7b 67 76 20 56 41 52 7d 20 20 20 20 20 20 7c 20  {gv VAR}      | 
0710: 52 65 70 6c 61 63 65 20 77 69 74 68 20 63 6f 6e  Replace with con
0720: 74 65 6e 74 20 6f 66 20 65 6e 76 20 76 61 72 69  tent of env vari
0730: 61 62 6c 65 20 7c 20 4d 75 73 74 20 62 65 20 61  able | Must be a
0740: 20 76 61 6c 69 64 20 76 61 72 20 7c 0d 0a 7c 20   valid var |..| 
0750: 23 7b 67 65 74 20 73 20 76 7d 20 6f 72 20 23 7b  #{get s v} or #{
0760: 67 20 73 20 76 7d 20 20 20 20 20 7c 20 52 65 70  g s v}     | Rep
0770: 6c 61 63 65 20 77 69 74 68 20 76 61 72 69 61 62  lace with variab
0780: 6c 65 20 76 20 66 72 6f 6d 20 73 65 63 74 69 6f  le v from sectio
0790: 6e 20 73 20 7c 20 56 61 72 69 61 62 6c 65 20 6d  n s | Variable m
07a0: 75 73 74 20 62 65 20 64 65 66 69 6e 65 64 20 62  ust be defined b
07b0: 65 66 6f 72 65 20 75 73 65 20 7c 0d 0a 7c 20 23  efore use |..| #
07c0: 7b 72 67 65 74 20 76 7d 20 20 20 20 20 20 20 20  {rget v}        
07d0: 20 20 20 20 20 20 20 20 20 20 7c 20 52 65 70 6c            | Repl
07e0: 61 63 65 20 77 69 74 68 20 76 61 72 69 61 62 6c  ace with variabl
07f0: 65 20 76 20 66 72 6f 6d 20 74 61 72 67 65 74 20  e v from target 
0800: 6f 72 20 64 65 66 61 75 6c 74 20 6f 66 20 72 75  or default of ru
0810: 6e 63 6f 6e 66 69 67 73 20 66 69 6c 65 20 7c 20  nconfigs file | 
0820: 7c 0d 0a 7c 20 23 7b 6d 74 72 61 68 7d 20 20 20  |..| #{mtrah}   
0830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0840: 7c 20 52 65 70 6c 61 63 65 20 77 69 74 68 20 74  | Replace with t
0850: 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 6d  he path to the m
0860: 65 67 61 74 65 73 74 20 74 65 73 74 73 75 69 74  egatest testsuit
0870: 65 20 61 72 65 61 20 7c 20 7c 20 0d 0a 7c 3d 3d  e area | | ..|==
0880: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0890: 3d 3d 3d 3d 0d 0a 0d 0a 43 6f 6e 66 69 67 20 46  ====....Config F
08a0: 69 6c 65 20 53 65 74 74 69 6e 67 73 0d 0a 7e 7e  ile Settings..~~
08b0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
08c0: 7e 7e 0d 0a 0d 0a 53 65 74 74 69 6e 67 73 20 69  ~~....Settings i
08d0: 6e 20 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 69  n megatest.confi
08e0: 67 0d 0a 0d 0a 43 6f 6e 66 69 67 20 46 69 6c 65  g....Config File
08f0: 20 41 64 64 69 74 69 6f 6e 61 6c 20 46 65 61 74   Additional Feat
0900: 75 72 65 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ures..~~~~~~~~~~
0910: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
0920: 7e 7e 7e 7e 7e 0d 0a 0d 0a 49 6e 63 6c 75 64 69  ~~~~~....Includi
0930: 6e 67 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 61  ng output from a
0940: 20 73 63 72 69 70 74 20 61 73 20 69 66 20 69 74   script as if it
0950: 20 77 61 73 20 69 6e 6c 69 6e 65 20 74 6f 20 74   was inline to t
0960: 68 65 20 63 6f 6e 66 69 67 20 66 69 6c 65 3a 0d  he config file:.
0970: 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ...-------------
0980: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 73  ------------..[s
0990: 63 72 69 70 74 69 6e 63 20 6d 79 73 63 72 69 70  criptinc myscrip
09a0: 74 2e 73 68 5d 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  t.sh]..---------
09b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
09c0: 0d 0a 0d 0a 49 66 20 74 68 65 20 73 63 72 69 70  ....If the scrip
09d0: 74 20 6f 75 74 70 75 74 73 3a 0d 0a 0d 0a 2d 2d  t outputs:....--
09e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
09f0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 69 74 65 6d 73 5d  -------..[items]
0a00: 0d 0a 41 20 61 20 62 20 63 0d 0a 42 20 64 20 65  ..A a b c..B d e
0a10: 20 66 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   f..------------
0a20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  -------------...
0a30: 0a 54 68 65 6e 20 74 68 65 20 63 6f 6e 66 69 67  .Then the config
0a40: 20 66 69 6c 65 20 77 6f 75 6c 64 20 65 66 66 65   file would effe
0a50: 63 74 69 76 65 6c 79 20 61 70 70 65 61 72 20 74  ctively appear t
0a60: 6f 20 63 6f 6e 74 61 69 6e 20 61 6e 20 69 74 65  o contain an ite
0a70: 6d 73 20 73 65 63 74 69 6f 6e 0d 0a 65 78 61 63  ms section..exac
0a80: 74 6c 79 20 6c 69 6b 65 20 74 68 65 20 6f 75 74  tly like the out
0a90: 70 75 74 20 66 72 6f 6d 20 74 68 65 20 73 63 72  put from the scr
0aa0: 69 70 74 2e 20 54 68 69 73 20 69 73 20 75 73 65  ipt. This is use
0ab0: 66 75 6c 20 77 68 65 6e 20 64 79 6e 61 6d 69 63  ful when dynamic
0ac0: 61 6c 6c 79 0d 0a 63 72 65 61 74 69 6e 67 20 69  ally..creating i
0ad0: 74 65 6d 73 2c 20 69 74 65 6d 73 74 61 62 6c 65  tems, itemstable
0ae0: 73 20 61 6e 64 20 6f 74 68 65 72 20 63 6f 6e 66  s and other conf
0af0: 69 67 20 73 74 72 75 63 74 75 72 65 73 2e 20 59  ig structures. Y
0b00: 6f 75 20 63 61 6e 20 73 65 65 20 74 68 65 0d 0a  ou can see the..
0b10: 65 78 70 61 6e 73 69 6f 6e 20 6f 66 20 74 68 65  expansion of the
0b20: 20 63 61 6c 6c 20 62 79 20 6c 6f 6f 6b 69 6e 67   call by looking
0b30: 20 69 6e 20 74 68 65 20 63 61 63 68 65 64 20 66   in the cached f
0b40: 69 6c 65 73 20 28 6c 6f 6f 6b 20 69 6e 20 79 6f  iles (look in yo
0b50: 75 72 20 6c 69 6e 6b 74 72 65 65 0d 0a 66 6f 72  ur linktree..for
0b60: 20 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 69 67   megatest.config
0b70: 20 61 6e 64 20 72 75 6e 63 6f 6e 66 69 67 73 2e   and runconfigs.
0b80: 63 6f 6e 66 69 67 20 63 61 63 68 65 20 66 69 6c  config cache fil
0b90: 65 73 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 74  es and in your t
0ba0: 65 73 74 20 72 75 6e 0d 0a 61 72 65 61 73 20 66  est run..areas f
0bb0: 6f 72 20 74 68 65 20 65 78 70 61 6e 64 65 64 20  or the expanded 
0bc0: 61 6e 64 20 63 61 63 68 65 64 20 74 65 73 74 63  and cached testc
0bd0: 6f 6e 66 69 67 29 2e 0d 0a 0d 0a 57 69 6c 64 63  onfig).....Wildc
0be0: 61 72 64 73 20 61 6e 64 20 72 65 67 65 78 65 73  ards and regexes
0bf0: 20 69 6e 20 54 61 72 67 65 74 73 0d 0a 0d 0a 2d   in Targets....-
0c00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0c10: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 61 2f 32 2f 62  --------..[a/2/b
0c20: 5d 0d 0a 56 41 52 31 20 56 41 4c 31 0d 0a 0d 0a  ]..VAR1 VAL1....
0c30: 5b 61 2f 25 2f 62 5d 0d 0a 56 41 52 31 20 56 41  [a/%/b]..VAR1 VA
0c40: 4c 32 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  L2..------------
0c50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  -------------...
0c60: 0a 57 69 6c 6c 20 72 65 73 75 6c 74 20 69 6e 3a  .Will result in:
0c70: 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....------------
0c80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b  -------------..[
0c90: 61 2f 32 2f 62 5d 0d 0a 56 41 52 31 20 56 41 4c  a/2/b]..VAR1 VAL
0ca0: 32 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  2..-------------
0cb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
0cc0: 43 61 6e 20 75 73 65 20 65 69 74 68 65 72 20 77  Can use either w
0cd0: 69 6c 64 63 61 72 64 20 6f 66 20 22 25 22 20 6f  ildcard of "%" o
0ce0: 72 20 61 20 72 65 67 75 6c 61 72 20 65 78 70 72  r a regular expr
0cf0: 65 73 73 69 6f 6e 3a 0d 0a 0d 0a 2d 2d 2d 2d 2d  ession:....-----
0d00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0d10: 2d 2d 2d 2d 0d 0a 5b 2f 61 62 63 2e 2a 64 65 66  ----..[/abc.*def
0d20: 2f 5d 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /]..------------
0d30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  -------------...
0d40: 0a 44 69 73 6b 20 53 70 61 63 65 20 43 68 65 63  .Disk Space Chec
0d50: 6b 73 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ks..^^^^^^^^^^^^
0d60: 5e 5e 5e 5e 5e 0d 0a 0d 0a 53 6f 6d 65 20 70 61  ^^^^^....Some pa
0d70: 72 61 6d 65 74 65 72 73 20 79 6f 75 20 63 61 6e  rameters you can
0d80: 20 70 75 74 20 69 6e 20 74 68 65 20 5b 73 65 74   put in the [set
0d90: 75 70 5d 20 73 65 63 74 69 6f 6e 20 6f 66 20 6d  up] section of m
0da0: 65 67 61 74 65 73 74 2e 63 6f 6e 66 69 67 3a 0d  egatest.config:.
0db0: 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ...-------------
0dc0: 2d 2d 2d 2d 2d 2d 0d 0a 23 20 6d 69 6e 69 6d 75  ------..# minimu
0dd0: 6d 20 73 70 61 63 65 20 72 65 71 75 69 72 65 64  m space required
0de0: 20 69 6e 20 61 20 72 75 6e 20 64 69 73 6b 20 0d   in a run disk .
0df0: 0a 6d 69 6e 73 70 61 63 65 20 31 30 30 30 30 30  .minspace 100000
0e00: 30 30 0d 0a 0d 0a 23 20 6d 69 6e 69 6d 75 6d 20  00....# minimum 
0e10: 73 70 61 63 65 20 72 65 71 75 69 72 65 64 20 69  space required i
0e20: 6e 20 64 62 64 69 72 3a 0d 0a 64 62 64 69 72 2d  n dbdir:..dbdir-
0e30: 73 70 61 63 65 2d 72 65 71 75 69 72 65 64 20 31  space-required 1
0e40: 30 30 30 30 30 0d 0a 0d 0a 23 20 73 63 72 69 70  00000....# scrip
0e50: 74 20 74 68 61 74 20 74 61 6b 65 73 20 70 61 74  t that takes pat
0e60: 68 20 61 73 20 70 61 72 61 6d 65 74 65 72 20 61  h as parameter a
0e70: 6e 64 20 72 65 74 75 72 6e 73 20 6e 75 6d 62 65  nd returns numbe
0e80: 72 20 6f 66 20 62 79 74 65 73 20 61 76 61 69 6c  r of bytes avail
0e90: 61 62 6c 65 3a 0d 0a 66 72 65 65 2d 73 70 61 63  able:..free-spac
0ea0: 65 2d 73 63 72 69 70 74 20 63 68 65 63 6b 2d 73  e-script check-s
0eb0: 70 61 63 65 2e 73 68 0d 0a 2d 2d 2d 2d 2d 2d 2d  pace.sh..-------
0ec0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
0ed0: 54 72 69 6d 20 74 72 61 69 6c 69 6e 67 20 73 70  Trim trailing sp
0ee0: 61 63 65 73 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  aces..^^^^^^^^^^
0ef0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 2d 2d  ^^^^^^^^^^....--
0f00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0f10: 0d 0a 5b 63 6f 6e 66 69 67 66 3a 73 65 74 74 69  ..[configf:setti
0f20: 6e 67 73 20 74 72 69 6d 2d 74 72 61 69 6c 69 6e  ngs trim-trailin
0f30: 67 2d 73 70 61 63 65 73 20 79 65 73 5d 0d 0a 2d  g-spaces yes]..-
0f40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0f50: 2d 0d 0a 0d 0a 4a 6f 62 20 53 75 62 6d 69 73 73  -....Job Submiss
0f60: 69 6f 6e 20 43 6f 6e 74 72 6f 6c 0d 0a 5e 5e 5e  ion Control..^^^
0f70: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ^^^^^^^^^^^^^^^^
0f80: 5e 5e 5e 0d 0a 0d 0a 53 75 62 6d 69 74 20 6a 6f  ^^^....Submit jo
0f90: 62 73 20 74 6f 20 48 6f 73 74 20 54 79 70 65 73  bs to Host Types
0fa0: 20 62 61 73 65 64 20 6f 6e 20 54 65 73 74 20 4e   based on Test N
0fb0: 61 6d 65 0d 0a 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b  ame..+++++++++++
0fc0: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b  ++++++++++++++++
0fd0: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b  ++++++++++++++++
0fe0: 2b 0d 0a 0d 0a 2e 49 6e 20 6d 65 67 61 74 65 73  +.....In megates
0ff0: 74 2e 63 6f 6e 66 69 67 0d 0a 2d 2d 2d 2d 2d 2d  t.config..------
1000: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1010: 2d 2d 0d 0a 5b 68 6f 73 74 2d 74 79 70 65 73 5d  --..[host-types]
1020: 0d 0a 67 65 6e 65 72 61 6c 20 20 20 6e 62 66 61  ..general   nbfa
1030: 6b 65 0d 0a 72 65 6d 6f 74 65 20 20 20 20 62 73  ke..remote    bs
1040: 75 62 0d 0a 0d 0a 5b 6c 61 75 6e 63 68 65 72 73  ub....[launchers
1050: 5d 0d 0a 72 75 6e 66 69 72 73 74 2f 73 75 6d 25  ]..runfirst/sum%
1060: 20 72 65 6d 6f 74 65 0d 0a 25 20 67 65 6e 65 72   remote..% gener
1070: 61 6c 0d 0a 0d 0a 5b 6a 6f 62 74 6f 6f 6c 73 5d  al....[jobtools]
1080: 0d 0a 6c 61 75 6e 63 68 65 72 20 62 73 75 62 0d  ..launcher bsub.
1090: 0a 23 20 69 66 20 64 65 66 69 6e 65 64 20 61 6e  .# if defined an
10a0: 64 20 6e 6f 74 20 22 6e 6f 22 20 66 6c 65 78 69  d not "no" flexi
10b0: 2d 6c 61 75 6e 63 68 65 72 20 77 69 6c 6c 20 62  -launcher will b
10c0: 79 70 61 73 73 20 6c 61 75 6e 63 68 65 72 20 75  ypass launcher u
10d0: 6e 6c 65 73 73 20 0d 0a 23 20 74 68 65 72 65 20  nless ..# there 
10e0: 69 73 20 6e 6f 20 68 6f 73 74 2d 74 79 70 65 20  is no host-type 
10f0: 6d 61 74 63 68 2e 0d 0a 66 6c 65 78 69 2d 6c 61  match...flexi-la
1100: 75 6e 63 68 65 72 20 79 65 73 0d 0a 2d 2d 2d 2d  uncher yes..----
1110: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1120: 2d 2d 2d 2d 0d 0a 0d 0a 68 6f 73 74 2d 74 79 70  ----....host-typ
1130: 65 73 0d 0a 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 0d 0a  es..++++++++++..
1140: 0d 0a 4c 69 73 74 20 6f 66 20 68 6f 73 74 20 74  ..List of host t
1150: 79 70 65 73 20 61 6e 64 20 74 68 65 20 63 6f 6d  ypes and the com
1160: 6d 61 6e 64 6c 69 6e 65 20 74 6f 20 72 75 6e 20  mandline to run 
1170: 61 20 6a 6f 62 20 6f 6e 20 74 68 61 74 20 68 6f  a job on that ho
1180: 73 74 20 74 79 70 65 2e 0d 0a 0d 0a 2e 68 6f 73  st type......hos
1190: 74 2d 74 79 70 65 20 3d 3e 20 6c 61 75 6e 63 68  t-type => launch
11a0: 20 63 6f 6d 6d 61 6e 64 0d 0a 2d 2d 2d 2d 2d 2d   command..------
11b0: 2d 2d 2d 2d 2d 2d 0d 0a 67 65 6e 65 72 61 6c 20  ------..general 
11c0: 6e 62 66 61 6b 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  nbfake..--------
11d0: 2d 2d 2d 2d 0d 0a 0d 0a 6c 61 75 6e 63 68 65 72  ----....launcher
11e0: 73 0d 0a 2b 2b 2b 2b 2b 2b 2b 2b 2b 0d 0a 0d 0a  s..+++++++++....
11f0: 2e 74 65 73 74 2f 69 74 65 6d 70 61 74 68 20 3d  .test/itempath =
1200: 3e 20 68 6f 73 74 2d 74 79 70 65 0d 0a 2d 2d 2d  > host-type..---
1210: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 72 75 6e 66 69  ---------..runfi
1220: 72 73 74 2f 73 75 6d 25 20 72 65 6d 6f 74 65 0d  rst/sum% remote.
1230: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  .------------...
1240: 0a 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 53  .Miscellaneous S
1250: 65 74 75 70 20 49 74 65 6d 73 0d 0a 2b 2b 2b 2b  etup Items..++++
1260: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b  ++++++++++++++++
1270: 2b 2b 2b 2b 2b 0d 0a 0d 0a 41 74 74 65 6d 70 74  +++++....Attempt
1280: 20 74 6f 20 72 65 72 75 6e 20 74 65 73 74 73 20   to rerun tests 
1290: 69 6e 20 22 53 54 55 43 4b 2f 44 45 41 44 22 2c  in "STUCK/DEAD",
12a0: 20 22 6e 2f 61 22 2c 20 22 5a 45 52 4f 5f 49 54   "n/a", "ZERO_IT
12b0: 45 4d 53 22 20 73 74 61 74 65 73 2e 0d 0a 0d 0a  EMS" states.....
12c0: 2e 49 6e 20 6d 65 67 61 74 65 73 74 2e 63 6f 6e  .In megatest.con
12d0: 66 69 67 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  fig..-----------
12e0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 73 65 74 75 70 5d  -------..[setup]
12f0: 0d 0a 72 65 72 75 6e 73 20 35 0d 0a 2d 2d 2d 2d  ..reruns 5..----
1300: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
1310: 0d 0a 52 65 70 6c 61 63 65 20 74 68 65 20 64 65  ..Replace the de
1320: 66 61 75 6c 74 20 62 6c 61 63 6b 6c 69 73 74 65  fault blackliste
1330: 64 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61  d environment va
1340: 72 69 61 62 6c 65 73 20 77 69 74 68 20 75 73 65  riables with use
1350: 72 20 73 75 70 70 6c 69 65 64 0d 0a 6c 69 73 74  r supplied..list
1360: 2e 0d 0a 0d 0a 44 65 66 61 75 6c 74 20 6c 69 73  .....Default lis
1370: 74 3a 20 55 53 45 52 20 48 4f 4d 45 20 44 49 53  t: USER HOME DIS
1380: 50 4c 41 59 20 4c 53 5f 43 4f 4c 4f 52 53 20 58  PLAY LS_COLORS X
1390: 4b 45 59 53 59 4d 44 42 20 45 44 49 54 4f 52 20  KEYSYMDB EDITOR 
13a0: 4d 41 4b 45 46 4c 41 47 53 20 4d 41 4b 45 46 20  MAKEFLAGS MAKEF 
13b0: 4d 41 4b 45 4f 56 45 52 52 49 44 45 53 0d 0a 0d  MAKEOVERRIDES...
13c0: 0a 2e 41 64 64 20 61 20 22 62 61 64 22 20 76 61  ..Add a "bad" va
13d0: 72 69 61 62 6c 65 20 22 50 52 4f 4d 50 54 22 20  riable "PROMPT" 
13e0: 74 6f 20 74 68 65 20 76 61 72 69 61 62 6c 65 73  to the variables
13f0: 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 63 6f   that will be co
1400: 6d 6d 65 6e 74 65 64 20 6f 75 74 0d 0a 69 6e 20  mmented out..in 
1410: 74 68 65 20 6d 65 67 61 74 65 73 74 2e 73 68 20  the megatest.sh 
1420: 61 6e 64 20 6d 65 67 61 74 65 73 74 2e 63 73 68  and megatest.csh
1430: 20 66 69 6c 65 73 3a 0d 0a 2d 2d 2d 2d 2d 2d 2d   files:..-------
1440: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 73 65 74  ----------..[set
1450: 75 70 5d 0d 0a 62 6c 61 63 6b 6c 69 73 74 76 61  up]..blacklistva
1460: 72 73 20 55 53 45 52 20 48 4f 4d 45 20 44 49 53  rs USER HOME DIS
1470: 50 4c 41 59 20 4c 53 5f 43 4f 4c 4f 52 53 20 58  PLAY LS_COLORS X
1480: 4b 45 59 53 59 4d 44 42 20 45 44 49 54 4f 52 20  KEYSYMDB EDITOR 
1490: 4d 41 4b 45 46 4c 41 47 53 20 50 52 4f 4d 50 54  MAKEFLAGS PROMPT
14a0: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
14b0: 2d 2d 2d 0d 0a 0d 0a 52 75 6e 20 74 69 6d 65 20  ---....Run time 
14c0: 6c 69 6d 69 74 0d 0a 2b 2b 2b 2b 2b 2b 2b 2b 2b  limit..+++++++++
14d0: 2b 2b 2b 2b 2b 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d  +++++....-------
14e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 73 65 74  ----------..[set
14f0: 75 70 5d 0d 0a 23 20 74 68 69 73 20 77 69 6c 6c  up]..# this will
1500: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6b   automatically k
1510: 69 6c 6c 20 74 68 65 20 74 65 73 74 20 69 66 20  ill the test if 
1520: 69 74 20 72 75 6e 73 20 66 6f 72 20 6d 6f 72 65  it runs for more
1530: 20 74 68 61 6e 20 31 68 20 32 6d 20 61 6e 64 20   than 1h 2m and 
1540: 33 73 0d 0a 72 75 6e 74 69 6d 65 6c 69 6d 20 31  3s..runtimelim 1
1550: 68 20 32 6d 20 33 73 0d 0a 2d 2d 2d 2d 2d 2d 2d  h 2m 3s..-------
1560: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 54 65  ----------....Te
1570: 73 74 73 20 62 72 6f 77 73 65 72 20 76 69 65 77  sts browser view
1580: 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ..~~~~~~~~~~~~~~
1590: 7e 7e 7e 7e 0d 0a 0d 0a 54 68 65 20 74 65 73 74  ~~~~....The test
15a0: 73 20 62 72 6f 77 73 65 72 20 28 73 65 65 20 74  s browser (see t
15b0: 68 65 20 52 75 6e 20 43 6f 6e 74 72 6f 6c 20 74  he Run Control t
15c0: 61 62 20 6f 6e 20 74 68 65 20 64 61 73 68 62 6f  ab on the dashbo
15d0: 61 72 64 29 20 68 61 73 20 74 77 6f 20 76 69 65  ard) has two vie
15e0: 77 73 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e  ws for displayin
15f0: 67 20 74 68 65 20 74 65 73 74 73 2e 20 0d 0a 0d  g the tests. ...
1600: 0a 2e 20 44 6f 74 20 28 67 72 61 70 68 76 69 7a  .. Dot (graphviz
1610: 29 20 62 61 73 65 64 20 74 72 65 65 0d 0a 2e 20  ) based tree... 
1620: 4e 6f 20 64 6f 74 2c 20 70 6c 61 69 6e 20 6c 69  No dot, plain li
1630: 73 74 69 6e 67 0d 0a 0d 0a 54 68 65 20 64 65 66  sting....The def
1640: 61 75 6c 74 20 69 73 20 74 68 65 20 67 72 61 70  ault is the grap
1650: 68 76 69 7a 20 62 61 73 65 64 20 74 72 65 65 20  hviz based tree 
1660: 62 75 74 20 69 66 20 79 6f 75 72 20 74 65 73 74  but if your test
1670: 73 20 64 6f 6e 27 74 20 76 69 65 77 0d 0a 77 65  s don't view..we
1680: 6c 6c 20 69 6e 20 74 68 61 74 20 6d 6f 64 65 20  ll in that mode 
1690: 74 68 65 6e 20 75 73 65 20 22 6e 6f 64 6f 74 22  then use "nodot"
16a0: 20 74 6f 20 74 75 72 6e 20 69 74 20 6f 66 66 2e   to turn it off.
16b0: 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....------------
16c0: 2d 2d 2d 2d 2d 0d 0a 5b 73 65 74 75 70 5d 0d 0a  -----..[setup]..
16d0: 6e 6f 64 6f 74 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  nodot..---------
16e0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 43 61 70 74  --------....Capt
16f0: 75 72 69 6e 67 20 54 65 73 74 20 44 61 74 61 0d  uring Test Data.
1700: 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  .~~~~~~~~~~~~~~~
1710: 7e 7e 7e 7e 0d 0a 0d 0a 49 6e 20 61 20 74 65 73  ~~~~....In a tes
1720: 74 20 79 6f 75 20 63 61 6e 20 63 61 70 74 75 72  t you can captur
1730: 65 20 61 72 62 69 74 72 61 72 79 20 76 61 72 69  e arbitrary vari
1740: 61 62 6c 65 73 20 61 6e 64 20 72 6f 6c 6c 20 74  ables and roll t
1750: 68 65 6d 20 75 70 20 69 6e 20 74 68 65 0d 0a 6d  hem up in the..m
1760: 65 67 61 74 65 73 74 20 64 61 74 61 62 61 73 65  egatest database
1770: 20 66 6f 72 20 76 69 65 77 69 6e 67 20 6f 6e 20   for viewing on 
1780: 74 68 65 20 64 61 73 68 62 6f 61 72 64 20 6f 72  the dashboard or
1790: 20 77 65 62 20 61 70 70 2e 0d 0a 0d 0a 2e 49 6e   web app......In
17a0: 20 61 20 74 65 73 74 20 61 73 20 61 20 73 63 72   a test as a scr
17b0: 69 70 74 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ipt..-----------
17c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 24  -------------..$
17d0: 4d 54 5f 4d 45 47 41 54 45 53 54 20 2d 6c 6f 61  MT_MEGATEST -loa
17e0: 64 2d 74 65 73 74 2d 64 61 74 61 20 3c 3c 20 45  d-test-data << E
17f0: 4f 46 0d 0a 66 6f 6f 2c 62 61 72 2c 20 20 20 31  OF..foo,bar,   1
1800: 2e 32 2c 20 20 31 2e 39 2c 20 3e 0d 0a 66 6f 6f  .2,  1.9, >..foo
1810: 2c 72 61 62 2c 20 31 2e 30 65 39 2c 20 31 30 65  ,rab, 1.0e9, 10e
1820: 39 2c 20 31 65 39 0d 0a 66 6f 6f 2c 62 6c 61 2c  9, 1e9..foo,bla,
1830: 20 20 20 31 2e 32 2c 20 20 31 2e 39 2c 20 3c 0d     1.2,  1.9, <.
1840: 0a 66 6f 6f 2c 62 61 6c 2c 20 20 20 31 2e 32 2c  .foo,bal,   1.2,
1850: 20 20 31 2e 32 2c 20 3c 20 20 20 2c 20 20 20 20    1.2, <   ,    
1860: 20 2c 43 68 65 63 6b 20 66 6f 72 20 6f 76 65 72   ,Check for over
1870: 6c 6f 61 64 0d 0a 66 6f 6f 2c 61 6c 62 2c 20 20  load..foo,alb,  
1880: 20 31 2e 32 2c 20 20 31 2e 32 2c 20 3c 3d 20 20   1.2,  1.2, <=  
1890: 2c 20 41 6d 70 73 2c 54 68 69 73 20 69 73 20 74  , Amps,This is t
18a0: 68 65 20 68 69 67 68 20 70 6f 77 65 72 20 63 69  he high power ci
18b0: 72 63 75 69 74 20 74 65 73 74 0d 0a 66 6f 6f 2c  rcuit test..foo,
18c0: 61 62 6c 2c 20 20 20 31 2e 32 2c 20 20 31 2e 33  abl,   1.2,  1.3
18d0: 2c 20 30 2e 31 0d 0a 66 6f 6f 2c 62 72 61 2c 20  , 0.1..foo,bra, 
18e0: 20 20 31 2e 32 2c 20 70 61 73 73 2c 20 73 69 6c    1.2, pass, sil
18f0: 6c 79 20 73 74 75 66 66 0d 0a 66 61 7a 2c 62 61  ly stuff..faz,ba
1900: 72 2c 20 20 20 20 31 30 2c 20 20 38 6d 41 2c 20  r,    10,  8mA, 
1910: 20 20 20 20 2c 20 20 20 20 20 2c 22 74 68 69 73      ,     ,"this
1920: 20 69 73 20 61 20 63 6f 6d 6d 65 6e 74 22 0d 0a   is a comment"..
1930: 45 4f 46 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  EOF..-----------
1940: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  -------------...
1950: 0a 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 20 79  .Alternatively y
1960: 6f 75 20 63 61 6e 20 75 73 65 20 6c 6f 67 70 72  ou can use logpr
1970: 6f 20 74 72 69 67 67 65 72 73 20 74 6f 20 63 61  o triggers to ca
1980: 70 74 75 72 65 20 76 61 6c 75 65 73 20 61 6e 64  pture values and
1990: 20 69 6e 6a 65 63 74 20 74 68 65 6d 0d 0a 69 6e   inject them..in
19a0: 74 6f 20 6d 65 67 61 74 65 73 74 20 75 73 69 6e  to megatest usin
19b0: 67 20 74 68 65 20 2d 73 65 74 2d 76 61 6c 75 65  g the -set-value
19c0: 73 20 6d 65 63 68 61 6e 69 73 6d 3a 0d 0a 0d 0a  s mechanism:....
19d0: 2e 4d 65 67 61 74 65 73 74 20 68 65 6c 70 20 72  .Megatest help r
19e0: 65 6c 61 74 65 64 20 74 6f 20 2d 73 65 74 2d 76  elated to -set-v
19f0: 61 6c 75 65 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  alues..---------
1a00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
1a10: 0a 54 65 73 74 20 64 61 74 61 20 63 61 70 74 75  .Test data captu
1a20: 72 65 0d 0a 20 20 2d 73 65 74 2d 76 61 6c 75 65  re..  -set-value
1a30: 73 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20  s             : 
1a40: 75 70 64 61 74 65 20 6f 72 20 73 65 74 20 76 61  update or set va
1a50: 6c 75 65 73 20 69 6e 20 74 68 65 20 74 65 73 74  lues in the test
1a60: 64 61 74 61 20 74 61 62 6c 65 0d 0a 20 20 3a 63  data table..  :c
1a70: 61 74 65 67 6f 72 79 20 20 20 20 20 20 20 20 20  ategory         
1a80: 20 20 20 20 20 20 3a 20 73 65 74 20 74 68 65 20        : set the 
1a90: 63 61 74 65 67 6f 72 79 20 66 69 65 6c 64 20 28  category field (
1aa0: 6f 70 74 69 6f 6e 61 6c 29 0d 0a 20 20 3a 76 61  optional)..  :va
1ab0: 72 69 61 62 6c 65 20 20 20 20 20 20 20 20 20 20  riable          
1ac0: 20 20 20 20 20 3a 20 73 65 74 20 74 68 65 20 76       : set the v
1ad0: 61 72 69 61 62 6c 65 20 6e 61 6d 65 20 28 6f 70  ariable name (op
1ae0: 74 69 6f 6e 61 6c 29 0d 0a 20 20 3a 76 61 6c 75  tional)..  :valu
1af0: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e               
1b00: 20 20 20 3a 20 76 61 6c 75 65 20 6d 65 61 73 75     : value measu
1b10: 72 65 64 20 28 72 65 71 75 69 72 65 64 29 0d 0a  red (required)..
1b20: 20 20 3a 65 78 70 65 63 74 65 64 20 20 20 20 20    :expected     
1b30: 20 20 20 20 20 20 20 20 20 20 3a 20 76 61 6c 75            : valu
1b40: 65 20 65 78 70 65 63 74 65 64 20 28 72 65 71 75  e expected (requ
1b50: 69 72 65 64 29 0d 0a 20 20 3a 74 6f 6c 20 20 20  ired)..  :tol   
1b60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b70: 20 3a 20 7c 76 61 6c 75 65 2d 65 78 70 65 63 74   : |value-expect
1b80: 7c 20 3c 3d 20 74 6f 6c 20 28 72 65 71 75 69 72  | <= tol (requir
1b90: 65 64 2c 20 63 61 6e 20 62 65 20 3c 2c 20 3e 2c  ed, can be <, >,
1ba0: 20 3e 3d 2c 20 3c 3d 20 6f 72 20 6e 75 6d 62 65   >=, <= or numbe
1bb0: 72 29 0d 0a 20 20 3a 75 6e 69 74 73 20 20 20 20  r)..  :units    
1bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20                : 
1bd0: 6e 61 6d 65 20 6f 66 20 74 68 65 20 75 6e 69 74  name of the unit
1be0: 73 20 66 6f 72 20 76 61 6c 75 65 2c 20 65 78 70  s for value, exp
1bf0: 65 63 74 65 64 5f 76 61 6c 75 65 20 65 74 63 2e  ected_value etc.
1c00: 20 28 6f 70 74 69 6f 6e 61 6c 29 0d 0a 2d 2d 2d   (optional)..---
1c10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1c20: 2d 2d 2d 2d 2d 0d 0a 0d 0a 44 61 73 68 62 6f 61  -----....Dashboa
1c30: 72 64 20 73 65 74 74 69 6e 67 73 0d 0a 7e 7e 7e  rd settings..~~~
1c40: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d  ~~~~~~~~~~~~~~~.
1c50: 0a 0d 0a 2e 52 75 6e 73 20 74 61 62 20 62 75 74  ....Runs tab but
1c60: 74 6f 6e 73 2c 20 66 6f 6e 74 20 61 6e 64 20 73  tons, font and s
1c70: 69 7a 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ize..-----------
1c80: 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 64 61 73 68 62 6f  -------..[dashbo
1c90: 61 72 64 5d 0d 0a 62 74 6e 2d 68 65 69 67 68 74  ard]..btn-height
1ca0: 20 78 31 34 0d 0a 62 74 6e 2d 66 6f 6e 74 73 7a   x14..btn-fontsz
1cb0: 20 31 30 0d 0a 63 65 6c 6c 2d 77 69 64 74 68 20   10..cell-width 
1cc0: 36 30 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  60..------------
1cd0: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 44 61 74 61 62 61  ------....Databa
1ce0: 73 65 20 73 65 74 74 69 6e 67 73 0d 0a 7e 7e 7e  se settings..~~~
1cf0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a  ~~~~~~~~~~~~~~..
1d00: 0d 0a 2e 44 61 74 61 62 61 73 65 20 63 6f 6e 66  ...Database conf
1d10: 69 67 20 73 65 74 74 69 6e 67 73 20 69 6e 20 5b  ig settings in [
1d20: 73 65 74 75 70 5d 20 73 65 63 74 69 6f 6e 20 6f  setup] section o
1d30: 66 20 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 69  f megatest.confi
1d40: 67 0d 0a 5b 77 69 64 74 68 3d 22 37 30 25 22 2c  g..[width="70%",
1d50: 63 6f 6c 73 3d 22 5e 2c 32 6d 2c 32 6d 2c 32 6d  cols="^,2m,2m,2m
1d60: 22 2c 66 72 61 6d 65 3d 22 74 6f 70 62 6f 74 22  ",frame="topbot"
1d70: 2c 6f 70 74 69 6f 6e 73 3d 22 68 65 61 64 65 72  ,options="header
1d80: 22 5d 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  "]..|===========
1d90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 7c 56 61  ===========..|Va
1da0: 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  r               
1db0: 20 20 20 20 20 20 20 20 7c 20 50 75 72 70 6f 73          | Purpos
1dc0: 65 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 56  e            | V
1dd0: 61 6c 69 64 20 76 61 6c 75 65 73 20 20 20 20 20  alid values     
1de0: 20 20 20 20 20 20 20 7c 20 43 6f 6d 6d 65 6e 74         | Comment
1df0: 73 0d 0a 7c 64 65 6c 61 79 2d 6f 6e 2d 62 75 73  s..|delay-on-bus
1e00: 79 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20  y             | 
1e10: 50 72 65 76 65 6e 74 20 63 6f 6e 63 75 72 72 65  Prevent concurre
1e20: 6e 74 20 61 63 63 65 73 73 20 69 73 73 75 65 73  nt access issues
1e30: 20 7c 20 79 65 73 5c 7c 6e 6f 20 6f 72 20 6e 6f   | yes\|no or no
1e40: 74 20 64 65 66 69 6e 65 64 20 7c 20 44 65 66 61  t defined | Defa
1e50: 75 6c 74 3d 6e 6f 2c 20 6d 61 79 20 68 65 6c 70  ult=no, may help
1e60: 20 6f 6e 20 73 6f 6d 65 20 6e 65 74 77 6f 72 6b   on some network
1e70: 20 66 69 6c 65 20 73 79 73 74 65 6d 73 2c 20 6d   file systems, m
1e80: 61 79 20 73 6c 6f 77 20 74 68 69 6e 67 73 20 64  ay slow things d
1e90: 6f 77 6e 20 61 6c 73 6f 2e 0d 0a 7c 66 61 73 74  own also...|fast
1ea0: 73 74 61 72 74 09 09 20 20 20 7c 20 41 6c 6c 20  start..   | All 
1eb0: 64 69 72 65 63 74 20 66 69 6c 65 20 61 63 63 65  direct file acce
1ec0: 73 73 20 74 6f 20 73 71 6c 69 74 65 20 64 62 20  ss to sqlite db 
1ed0: 66 69 6c 65 73 20 7c 20 79 65 73 5c 7c 6e 6f 20  files | yes\|no 
1ee0: 6f 72 20 6e 6f 74 20 64 65 66 69 6e 65 64 20 7c  or not defined |
1ef0: 20 44 65 66 61 75 6c 74 3d 79 65 73 2c 20 73 75   Default=yes, su
1f00: 67 67 65 73 74 20 6e 6f 20 66 6f 72 20 63 65 6e  ggest no for cen
1f10: 74 72 61 6c 20 61 75 74 6f 6d 61 74 65 64 20 73  tral automated s
1f20: 79 73 74 65 6d 73 20 61 6e 64 20 79 65 73 20 66  ystems and yes f
1f30: 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65 20 75  or interactive u
1f40: 73 65 0d 0a 7c 68 6f 6d 65 68 6f 73 74 20 09 09  se..|homehost ..
1f50: 20 20 20 7c 20 53 74 61 72 74 20 73 65 72 76 65     | Start serve
1f60: 72 73 20 6f 6e 20 74 68 69 73 20 68 6f 73 74 20  rs on this host 
1f70: 7c 20 3c 68 6f 73 74 6e 61 6d 65 3e 20 7c 20 44  | <hostname> | D
1f80: 65 66 61 75 6c 74 73 20 74 6f 20 6c 6f 63 61 6c  efaults to local
1f90: 20 68 6f 73 74 0d 0a 7c 68 6f 73 74 6e 61 6d 65   host..|hostname
1fa0: 09 09 20 20 20 7c 20 48 6f 73 74 6e 61 6d 65 20  ..   | Hostname 
1fb0: 74 6f 20 62 69 6e 64 20 74 6f 20 7c 20 3c 68 6f  to bind to | <ho
1fc0: 73 74 6e 61 6d 65 3e 5c 7c 2d 09 20 20 7c 20 4f  stname>\|-.  | O
1fd0: 6e 20 6d 75 6c 74 69 2d 68 6f 6d 65 64 20 68 6f  n multi-homed ho
1fe0: 73 74 73 20 61 6c 6c 6f 77 73 20 62 69 6e 64 69  sts allows bindi
1ff0: 6e 67 20 74 6f 20 73 70 65 63 69 66 69 63 20 68  ng to specific h
2000: 6f 73 74 6e 61 6d 65 0d 0a 7c 6c 6f 77 70 6f 72  ostname..|lowpor
2010: 74 09 09 20 20 20 7c 20 53 74 61 72 74 20 73 65  t..   | Start se
2020: 61 72 63 68 69 6e 67 20 66 6f 72 20 61 20 70 6f  arching for a po
2030: 72 74 20 61 74 20 74 68 69 73 20 70 6f 72 74 6e  rt at this portn
2040: 75 6d 7c 20 33 32 37 36 38 20 7c 20 0d 0a 7c 72  um| 32768 | ..|r
2050: 65 71 75 69 72 65 64 09 09 20 20 20 7c 20 53 65  equired..   | Se
2060: 72 76 65 72 20 72 65 71 75 69 72 65 64 20 20 20  rver required   
2070: 20 7c 20 79 65 73 5c 7c 6e 6f 20 6f 72 20 6e 6f   | yes\|no or no
2080: 74 20 64 65 66 69 6e 65 64 20 20 7c 20 44 65 66  t defined  | Def
2090: 61 75 6c 74 3d 6e 6f 2c 20 66 6f 72 63 65 20 73  ault=no, force s
20a0: 74 61 72 74 20 6f 66 20 73 65 72 76 65 72 20 61  tart of server a
20b0: 6c 77 61 79 73 0d 0a 7c 73 65 72 76 65 72 2d 71  lways..|server-q
20c0: 75 65 72 79 2d 74 68 72 65 73 68 6f 6c 64 09 20  uery-threshold. 
20d0: 20 20 7c 20 53 74 61 72 74 20 73 65 72 76 65 72    | Start server
20e0: 20 77 68 65 6e 20 71 75 65 72 69 65 73 20 74 61   when queries ta
20f0: 6b 65 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 74  ke longer than t
2100: 68 69 73 20 7c 20 6e 75 6d 62 65 72 20 69 6e 20  his | number in 
2110: 6d 69 6c 6c 69 73 65 63 6f 6e 64 73 20 7c 20 44  milliseconds | D
2120: 65 66 61 75 6c 74 3d 33 30 30 0d 0a 7c 74 69 6d  efault=300..|tim
2130: 65 6f 75 74 09 09 20 20 20 7c 20 68 74 74 70 20  eout..   | http 
2140: 61 70 69 20 74 69 6d 65 6f 75 74 20 09 7c 20 6e  api timeout .| n
2150: 75 6d 62 65 72 20 69 6e 20 68 6f 75 72 73 09 20  umber in hours. 
2160: 20 7c 20 44 65 66 61 75 6c 74 20 69 73 20 31 20   | Default is 1 
2170: 6d 69 6e 75 74 65 2c 20 64 6f 20 6e 6f 74 20 63  minute, do not c
2180: 68 61 6e 67 65 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d  hange..|========
2190: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a  ==============..
21a0: 0d 0a 54 68 65 20 74 65 73 74 63 6f 6e 66 69 67  ..The testconfig
21b0: 20 46 69 6c 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d   File..---------
21c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 53 65  ----------....Se
21d0: 74 75 70 20 73 65 63 74 69 6f 6e 0d 0a 7e 7e 7e  tup section..~~~
21e0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 48 65  ~~~~~~~~~~....He
21f0: 61 64 65 72 0d 0a 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a  ader..^^^^^^....
2200: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2210: 2d 2d 2d 0d 0a 5b 73 65 74 75 70 5d 0d 0a 2d 2d  ---..[setup]..--
2220: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2230: 2d 0d 0a 0d 0a 54 68 65 20 72 75 6e 73 63 72 69  -....The runscri
2240: 70 74 20 6d 65 74 68 6f 64 20 69 73 20 61 20 62  pt method is a b
2250: 72 75 74 65 20 66 6f 72 63 65 20 77 61 79 20 74  rute force way t
2260: 6f 20 72 75 6e 20 73 63 72 69 70 74 73 20 77 68  o run scripts wh
2270: 65 72 65 20 74 68 65 0d 0a 75 73 65 72 20 69 73  ere the..user is
2280: 20 72 65 73 70 6f 6e 73 69 62 6c 65 20 66 6f 72   responsible for
2290: 20 73 65 74 74 69 6e 67 20 53 54 41 54 45 20 61   setting STATE a
22a0: 6e 64 20 53 54 41 54 55 53 0d 0a 0d 0a 2d 2d 2d  nd STATUS....---
22b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22c0: 0d 0a 72 75 6e 73 63 72 69 70 74 20 6d 61 69 6e  ..runscript main
22d0: 2e 63 73 68 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .csh..----------
22e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 52 65 71  ---------....Req
22f0: 75 69 72 65 6d 65 6e 74 73 20 73 65 63 74 69 6f  uirements sectio
2300: 6e 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  n..~~~~~~~~~~~~~
2310: 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 2e 48 65 61 64  ~~~~~~~.....Head
2320: 65 72 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  er..------------
2330: 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69 72  -------..[requir
2340: 65 6d 65 6e 74 73 5d 0d 0a 2d 2d 2d 2d 2d 2d 2d  ements]..-------
2350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
2360: 57 61 69 74 20 6f 6e 20 4f 74 68 65 72 20 54 65  Wait on Other Te
2370: 73 74 73 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  sts..^^^^^^^^^^^
2380: 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 2d 2d 2d 2d  ^^^^^^^^....----
2390: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
23a0: 0a 23 20 41 20 6e 6f 72 6d 61 6c 20 77 61 69 74  .# A normal wait
23b0: 6f 6e 20 77 61 69 74 73 20 66 6f 72 20 74 68 65  on waits for the
23c0: 20 70 72 69 6f 72 20 74 65 73 74 73 20 74 6f 20   prior tests to 
23d0: 62 65 20 43 4f 4d 50 4c 45 54 45 44 20 0d 0a 23  be COMPLETED ..#
23e0: 20 61 6e 64 20 50 41 53 53 2c 20 43 48 45 43 4b   and PASS, CHECK
23f0: 20 6f 72 20 57 41 49 56 45 44 0d 0a 77 61 69 74   or WAIVED..wait
2400: 6f 6e 20 74 65 73 74 31 20 74 65 73 74 32 0d 0a  on test1 test2..
2410: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2420: 2d 2d 2d 0d 0a 0d 0a 4d 6f 64 65 0d 0a 5e 5e 5e  ---....Mode..^^^
2430: 5e 0d 0a 0d 0a 54 68 65 20 64 65 66 61 75 6c 74  ^....The default
2440: 20 28 69 2e 65 2e 20 69 66 20 6d 6f 64 65 20 69   (i.e. if mode i
2450: 73 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 29  s not specified)
2460: 20 69 73 20 6e 6f 72 6d 61 6c 2e 20 41 6c 6c 20   is normal. All 
2470: 70 72 65 2d 64 65 70 65 6e 64 65 6e 74 20 74 65  pre-dependent te
2480: 73 74 73 0d 0a 6d 75 73 74 20 62 65 20 43 4f 4d  sts..must be COM
2490: 50 4c 45 54 45 44 20 61 6e 64 20 50 41 53 53 2c  PLETED and PASS,
24a0: 20 43 48 45 43 4b 20 6f 72 20 57 41 49 56 45 44   CHECK or WAIVED
24b0: 20 62 65 66 6f 72 65 20 74 68 65 20 74 65 73 74   before the test
24c0: 20 77 69 6c 6c 20 73 74 61 72 74 0d 0a 0d 0a 2d   will start....-
24d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
24e0: 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e 74  --..[requirement
24f0: 73 5d 0d 0a 6d 6f 64 65 20 20 20 6e 6f 72 6d 61  s]..mode   norma
2500: 6c 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  l..-------------
2510: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 54 68 65 20 74 6f  ------....The to
2520: 70 6c 65 76 65 6c 20 6d 6f 64 65 20 72 65 71 75  plevel mode requ
2530: 69 72 65 73 20 6f 6e 6c 79 20 74 68 61 74 20 74  ires only that t
2540: 68 65 20 70 72 69 6f 72 20 74 65 73 74 73 20 61  he prior tests a
2550: 72 65 20 43 4f 4d 50 4c 45 54 45 44 2e 0d 0a 0d  re COMPLETED....
2560: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .---------------
2570: 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 6d 65  ----..[requireme
2580: 6e 74 73 5d 0d 0a 6d 6f 64 65 20 74 6f 70 6c 65  nts]..mode tople
2590: 76 65 6c 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  vel..-----------
25a0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 41 20 69 74  --------....A it
25b0: 65 6d 20 62 61 73 65 64 20 77 61 69 74 6f 6e 20  em based waiton 
25c0: 77 69 6c 6c 20 73 74 61 72 74 20 69 74 65 6d 73  will start items
25d0: 20 69 6e 20 61 20 74 65 73 74 20 77 68 65 6e 20   in a test when 
25e0: 74 68 65 20 73 61 6d 65 2d 6e 61 6d 65 64 0d 0a  the same-named..
25f0: 69 74 65 6d 20 69 73 20 43 4f 4d 50 4c 45 54 45  item is COMPLETE
2600: 44 20 61 6e 64 20 50 41 53 53 2c 20 43 48 45 43  D and PASS, CHEC
2610: 4b 20 6f 72 20 57 41 49 56 45 44 20 69 6e 20 74  K or WAIVED in t
2620: 68 65 20 70 72 69 6f 72 20 74 65 73 74 2e 20 54  he prior test. T
2630: 68 69 73 0d 0a 77 61 73 20 68 69 73 74 6f 72 69  his..was histori
2640: 63 61 6c 6c 79 20 63 61 6c 6c 65 64 20 22 69 74  cally called "it
2650: 65 6d 77 61 69 74 22 20 6d 6f 64 65 2e 20 54 68  emwait" mode. Th
2660: 65 20 74 65 72 6d 73 20 22 69 74 65 6d 77 61 69  e terms "itemwai
2670: 74 22 20 61 6e 64 0d 0a 22 69 74 65 6d 6d 61 74  t" and.."itemmat
2680: 63 68 22 20 61 72 65 20 73 79 6e 6f 6e 79 6d 73  ch" are synonyms
2690: 2e 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .....-----------
26a0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69  --------..[requi
26b0: 72 65 6d 65 6e 74 73 5d 0d 0a 6d 6f 64 65 20 69  rements]..mode i
26c0: 74 65 6d 6d 61 74 63 68 0d 0a 2d 2d 2d 2d 2d 2d  temmatch..------
26d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  -------------...
26e0: 0a 4f 76 65 72 72 69 64 69 6e 67 20 45 6e 76 69  .Overriding Envi
26f0: 72 6f 6d 65 6e 74 20 56 61 72 69 61 62 6c 65 73  roment Variables
2700: 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ..~~~~~~~~~~~~~~
2710: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
2720: 7e 0d 0a 0d 0a 4f 76 65 72 72 69 64 65 20 76 61  ~....Override va
2730: 72 69 61 62 6c 65 73 20 62 65 66 6f 72 65 20 73  riables before s
2740: 74 61 72 74 69 6e 67 20 74 68 65 20 74 65 73 74  tarting the test
2750: 2e 20 43 61 6e 20 69 6e 63 6c 75 64 65 20 66 69  . Can include fi
2760: 6c 65 73 20 28 70 65 72 68 61 70 73 20 67 65 6e  les (perhaps gen
2770: 65 72 61 74 65 64 20 62 79 20 6d 65 67 61 74 65  erated by megate
2780: 73 74 20 2d 65 6e 76 64 65 6c 74 61 20 6f 72 20  st -envdelta or 
2790: 73 69 6d 69 6c 61 72 29 2e 0d 0a 0d 0a 2d 2d 2d  similar).....---
27a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
27b0: 2d 0d 0a 5b 70 72 65 2d 6c 61 75 6e 63 68 2d 65  -..[pre-launch-e
27c0: 6e 76 2d 76 61 72 73 5d 0d 0a 56 41 52 31 20 76  nv-vars]..VAR1 v
27d0: 61 6c 75 65 31 0d 0a 0d 0a 23 20 47 65 74 20 73  alue1....# Get s
27e0: 6f 6d 65 20 67 65 6e 65 72 61 74 65 64 20 73 65  ome generated se
27f0: 74 74 69 6e 67 73 0d 0a 5b 69 6e 63 6c 75 64 65  ttings..[include
2800: 20 2e 2e 2f 67 65 6e 65 72 61 74 65 64 2d 76 61   ../generated-va
2810: 72 73 2e 63 6f 6e 66 69 67 5d 0d 0a 0d 0a 23 20  rs.config]....# 
2820: 55 73 65 20 74 68 69 73 20 74 72 69 63 6b 20 74  Use this trick t
2830: 6f 20 75 6e 73 65 74 20 76 61 72 69 61 62 6c 65  o unset variable
2840: 73 0d 0a 23 7b 73 63 68 65 6d 65 20 28 75 6e 73  s..#{scheme (uns
2850: 65 74 65 6e 76 20 22 46 4f 4f 42 41 52 22 29 7d  etenv "FOOBAR")}
2860: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
2870: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 49 74 65 6d 6d 61  ------....Itemma
2880: 70 20 48 61 6e 64 6c 69 6e 67 0d 0a 7e 7e 7e 7e  p Handling..~~~~
2890: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a  ~~~~~~~~~~~~....
28a0: 46 6f 72 20 63 61 73 65 73 20 77 65 72 65 20 74  For cases were t
28b0: 68 65 20 64 65 70 65 6e 64 65 6e 74 20 74 65 73  he dependent tes
28c0: 74 20 68 61 73 20 61 20 73 69 6d 69 6c 61 72 20  t has a similar 
28d0: 62 75 74 20 6e 6f 74 20 69 64 65 6e 74 69 63 61  but not identica
28e0: 6c 0d 0a 69 74 65 6d 70 61 74 68 20 74 6f 20 74  l..itempath to t
28f0: 68 65 20 64 6f 77 6e 73 74 72 65 61 6d 20 74 65  he downstream te
2900: 73 74 20 61 6e 20 69 74 65 6d 6d 61 70 20 63 61  st an itemmap ca
2910: 6e 20 61 6c 6c 6f 77 20 66 6f 72 20 69 74 65 6d  n allow for item
2920: 6d 61 74 63 68 0d 0a 6d 6f 64 65 0d 0a 0d 0a 2e  match..mode.....
2930: 65 78 61 6d 70 6c 65 20 66 6f 72 20 72 65 6d 6f  example for remo
2940: 76 69 6e 67 20 70 61 72 74 20 6f 66 20 69 74 65  ving part of ite
2950: 6d 6d 61 70 20 66 6f 72 20 77 61 69 74 6f 6e 20  mmap for waiton 
2960: 74 65 73 74 20 28 65 67 3a 20 69 74 65 6d 20 2b  test (eg: item +
2970: 66 6f 6f 2d 78 2f 62 61 72 2b 20 64 65 70 65 6e  foo-x/bar+ depen
2980: 64 73 20 6f 6e 20 77 61 69 74 6f 6e 27 73 20 69  ds on waiton's i
2990: 74 65 6d 20 2b 79 2f 62 61 72 2b 29 0d 0a 2d 2d  tem +y/bar+)..--
29a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
29b0: 2d 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e 74 73  -..[requirements
29c0: 5d 0d 0a 6d 6f 64 65 20 69 74 65 6d 77 61 69 74  ]..mode itemwait
29d0: 0d 0a 23 20 69 74 65 6d 6d 61 70 20 3c 69 74 65  ..# itemmap <ite
29e0: 6d 20 70 61 74 74 65 72 6e 20 66 6f 72 20 74 68  m pattern for th
29f0: 69 73 20 74 65 73 74 3e 20 20 3c 69 74 65 6d 20  is test>  <item 
2a00: 72 65 70 6c 61 63 65 6d 65 6e 74 20 70 61 74 74  replacement patt
2a10: 65 72 6e 20 66 6f 72 20 77 61 69 74 6f 6e 20 74  ern for waiton t
2a20: 65 73 74 3e 0d 0a 69 74 65 6d 6d 61 70 20 2e 2a  est>..itemmap .*
2a30: 78 2f 20 79 2f 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d  x/ y/....-------
2a40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
2a50: 2e 65 78 61 6d 70 6c 65 20 66 6f 72 20 72 65 6d  .example for rem
2a60: 6f 76 69 6e 67 20 70 61 72 74 20 6f 66 20 69 74  oving part of it
2a70: 65 6d 6d 61 70 20 66 6f 72 20 77 61 69 74 6f 6e  emmap for waiton
2a80: 20 74 65 73 74 20 28 65 67 3a 20 69 74 65 6d 20   test (eg: item 
2a90: 2b 66 6f 6f 2f 62 61 72 2f 62 61 7a 2b 20 69 6e  +foo/bar/baz+ in
2aa0: 20 74 68 69 73 20 74 65 73 74 20 64 65 70 65 6e   this test depen
2ab0: 64 73 20 6f 6e 20 77 61 69 74 6f 6e 27 73 20 69  ds on waiton's i
2ac0: 74 65 6d 20 2b 62 61 7a 2b 29 0d 0a 2d 2d 2d 2d  tem +baz+)..----
2ad0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
2ae0: 0a 0d 0a 23 20 23 23 20 70 61 74 74 65 72 6e 20  ...# ## pattern 
2af0: 72 65 70 6c 61 63 65 6d 65 6e 74 20 6e 6f 74 65  replacement note
2b00: 73 0d 0a 23 0d 0a 23 20 23 23 20 45 78 61 6d 70  s..#..# ## Examp
2b10: 6c 65 0d 0a 23 20 23 23 20 52 65 6d 6f 76 65 20  le..# ## Remove 
2b20: 65 76 65 72 79 74 68 69 6e 67 20 75 70 20 74 6f  everything up to
2b30: 20 74 68 65 20 6c 61 73 74 20 2f 0d 0a 5b 72 65   the last /..[re
2b40: 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a 6d 6f 64  quirements]..mod
2b50: 65 20 69 74 65 6d 77 61 69 74 0d 0a 23 20 69 74  e itemwait..# it
2b60: 65 6d 6d 61 70 20 3c 69 74 65 6d 20 70 61 74 74  emmap <item patt
2b70: 65 72 6e 20 66 6f 72 20 74 68 69 73 20 74 65 73  ern for this tes
2b80: 74 3e 20 3c 6e 6f 74 68 69 6e 67 20 68 65 72 65  t> <nothing here
2b90: 20 69 6e 64 69 63 61 74 65 73 20 72 65 6d 6f 76   indicates remov
2ba0: 61 6c 3e 0d 0a 69 74 65 6d 6d 61 70 20 2e 2a 2f  al>..itemmap .*/
2bb0: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
2bc0: 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e 65 78 61 6d 70 6c  -----.....exampl
2bd0: 65 20 72 65 70 6c 61 63 69 6e 67 20 70 61 72 74  e replacing part
2be0: 20 6f 66 20 69 74 65 6d 6d 61 70 20 66 6f 72 20   of itemmap for 
2bf0: 28 65 67 3a 20 69 74 65 6d 20 2b 66 6f 6f 2f 31  (eg: item +foo/1
2c00: 32 33 34 2b 20 77 69 6c 6c 20 69 6d 70 6c 79 20  234+ will imply 
2c10: 77 61 69 74 6f 6e 27 73 20 69 74 65 6d 20 2b 62  waiton's item +b
2c20: 61 72 2f 31 32 33 34 2b 29 0d 0a 2d 2d 2d 2d 2d  ar/1234+)..-----
2c30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
2c40: 0d 0a 23 0d 0a 23 20 23 23 20 45 78 61 6d 70 6c  ..#..# ## Exampl
2c50: 65 0d 0a 23 20 23 23 20 52 65 70 6c 61 63 65 20  e..# ## Replace 
2c60: 66 6f 6f 2f 20 77 69 74 68 20 62 61 72 2f 0d 0a  foo/ with bar/..
2c70: 5b 72 65 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a  [requirements]..
2c80: 6d 6f 64 65 20 69 74 65 6d 77 61 69 74 0d 0a 23  mode itemwait..#
2c90: 20 69 74 65 6d 6d 61 70 20 3c 69 74 65 6d 20 70   itemmap <item p
2ca0: 61 74 74 65 72 6e 20 66 6f 72 20 74 68 69 73 20  attern for this 
2cb0: 74 65 73 74 3e 20 20 3c 69 74 65 6d 20 72 65 70  test>  <item rep
2cc0: 6c 61 63 65 6d 65 6e 74 20 70 61 74 74 65 72 6e  lacement pattern
2cd0: 20 66 6f 72 20 77 61 69 74 6f 6e 20 74 65 73 74   for waiton test
2ce0: 3e 0d 0a 69 74 65 6d 6d 61 70 20 66 6f 6f 2f 20  >..itemmap foo/ 
2cf0: 62 61 72 2f 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  bar/....--------
2d00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e  -----------.....
2d10: 65 78 61 6d 70 6c 65 20 66 6f 72 20 62 61 63 6b  example for back
2d20: 72 65 66 65 72 65 6e 63 65 20 28 65 67 3a 20 69  reference (eg: i
2d30: 74 65 6d 20 2b 66 6f 6f 32 33 2f 74 68 75 64 2b  tem +foo23/thud+
2d40: 20 77 69 6c 6c 20 69 6d 70 6c 79 20 77 61 69 74   will imply wait
2d50: 6f 6e 27 73 20 69 74 65 6d 20 2b 6e 75 6d 2d 32  on's item +num-2
2d60: 33 2f 62 61 72 2f 74 68 75 64 2b 0d 0a 2d 2d 2d  3/bar/thud+..---
2d70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2d80: 0d 0a 23 0d 0a 23 20 23 23 20 45 78 61 6d 70 6c  ..#..# ## Exampl
2d90: 65 0d 0a 23 20 23 23 20 63 61 6e 20 75 73 65 20  e..# ## can use 
2da0: 5c 7b 6e 75 6d 62 65 72 7d 20 69 6e 20 72 65 70  \{number} in rep
2db0: 6c 61 63 65 6d 65 6e 74 20 70 61 74 74 65 72 6e  lacement pattern
2dc0: 20 74 6f 20 62 61 63 6b 72 65 66 65 72 65 6e 63   to backreferenc
2dd0: 65 20 61 20 28 63 61 70 74 75 72 65 29 20 66 72  e a (capture) fr
2de0: 6f 6d 20 6d 61 74 63 68 69 6e 67 20 70 61 74 74  om matching patt
2df0: 65 72 6e 20 73 69 6d 69 6c 61 72 20 74 6f 20 73  ern similar to s
2e00: 65 64 20 6f 72 20 70 65 72 6c 0d 0a 5b 72 65 71  ed or perl..[req
2e10: 75 69 72 65 6d 65 6e 74 73 5d 0d 0a 6d 6f 64 65  uirements]..mode
2e20: 20 69 74 65 6d 77 61 69 74 0d 0a 23 20 69 74 65   itemwait..# ite
2e30: 6d 6d 61 70 20 3c 69 74 65 6d 20 70 61 74 74 65  mmap <item patte
2e40: 72 6e 20 66 6f 72 20 74 68 69 73 20 74 65 73 74  rn for this test
2e50: 3e 20 20 3c 69 74 65 6d 20 72 65 70 6c 61 63 65  >  <item replace
2e60: 6d 65 6e 74 20 70 61 74 74 65 72 6e 20 66 6f 72  ment pattern for
2e70: 20 77 61 69 74 6f 6e 20 74 65 73 74 3e 0d 0a 69   waiton test>..i
2e80: 74 65 6d 6d 61 70 20 66 6f 6f 28 5c 64 2b 29 2f  temmap foo(\d+)/
2e90: 20 6e 75 6d 2d 5c 31 2f 62 61 72 2f 0d 0a 0d 0a   num-\1/bar/....
2ea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2eb0: 2d 2d 2d 0d 0a 0d 0a 2e 65 78 61 6d 70 6c 65 20  ---.....example 
2ec0: 6d 75 6c 74 69 70 6c 65 20 69 74 65 6d 6d 61 70  multiple itemmap
2ed0: 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  s..-------------
2ee0: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 23 20 6d 75 6c 74  ------....# mult
2ef0: 69 2d 6c 69 6e 65 3b 20 6d 61 74 63 68 65 73 20  i-line; matches 
2f00: 61 72 65 20 61 70 70 6c 69 65 64 20 69 6e 20 74  are applied in t
2f10: 68 65 20 6c 69 73 74 65 64 20 6f 72 64 65 72 0d  he listed order.
2f20: 0a 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  .# The following
2f30: 20 77 6f 75 6c 64 20 6d 61 70 3a 0d 0a 23 20 20   would map:..#  
2f40: 20 61 31 32 33 62 33 32 31 20 74 6f 20 62 33 32   a123b321 to b32
2f50: 31 66 6f 6f 61 31 32 33 20 74 68 65 6e 20 74 6f  1fooa123 then to
2f60: 20 33 32 31 66 6f 6f 61 31 32 33 70 0d 0a 23 0d   321fooa123p..#.
2f70: 0a 5b 72 65 71 75 69 72 65 6d 65 6e 74 73 5d 0d  .[requirements].
2f80: 0a 69 74 65 6d 6d 61 70 20 28 61 5c 64 2b 29 28  .itemmap (a\d+)(
2f90: 62 5c 64 2b 29 20 5c 32 66 6f 6f 5c 31 0d 0a 20  b\d+) \2foo\1.. 
2fa0: 20 62 28 2e 2a 29 20 5c 31 70 0d 0a 2d 2d 2d 2d   b(.*) \1p..----
2fb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
2fc0: 0a 0d 0a 0d 0a 43 6f 6d 70 6c 65 78 20 6d 61 70  .....Complex map
2fd0: 70 69 6e 67 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ping..^^^^^^^^^^
2fe0: 5e 5e 5e 5e 5e 0d 0a 43 6f 6d 70 6c 65 78 20 6d  ^^^^^..Complex m
2ff0: 61 70 70 69 6e 67 73 20 63 61 6e 20 62 65 20 68  appings can be h
3000: 61 6e 64 6c 65 64 20 77 69 74 68 20 61 20 73 65  andled with a se
3010: 70 61 72 61 74 65 20 5b 69 74 65 6d 6d 61 70 5d  parate [itemmap]
3020: 20 73 65 63 74 69 6f 6e 20 28 69 6e 73 74 65 61   section (instea
3030: 64 20 69 66 20 61 6e 20 69 74 65 6d 6d 61 70 20  d if an itemmap 
3040: 6c 69 6e 65 20 69 6e 20 74 68 65 20 5b 72 65 71  line in the [req
3050: 75 69 72 65 6d 65 6e 74 73 5d 20 73 65 63 74 69  uirements] secti
3060: 6f 6e 29 0d 0a 0d 0a 45 61 63 68 20 6c 69 6e 65  on)....Each line
3070: 20 69 6e 20 61 6e 20 69 74 65 6d 6d 61 70 20 73   in an itemmap s
3080: 65 63 74 69 6f 6e 20 73 74 61 72 74 73 20 77 69  ection starts wi
3090: 74 68 20 61 20 77 61 69 74 6f 6e 20 74 65 73 74  th a waiton test
30a0: 20 6e 61 6d 65 20 66 6f 6c 6c 6f 77 65 64 20 62   name followed b
30b0: 79 20 61 6e 20 69 74 65 6d 6d 61 70 20 65 78 70  y an itemmap exp
30c0: 72 65 73 73 69 6f 6e 0d 0a 0d 0a 2e 65 67 3a 20  ression.....eg: 
30d0: 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61  The following ca
30e0: 75 73 65 73 20 77 61 69 74 6f 6e 20 74 65 73 74  uses waiton test
30f0: 20 41 20 69 74 65 6d 20 2b 62 61 72 2f 31 32 33   A item +bar/123
3100: 34 2b 20 74 6f 20 72 75 6e 20 77 68 65 6e 20 6f  4+ to run when o
3110: 75 72 20 74 65 73 74 27 73 20 2b 66 6f 6f 2f 31  ur test's +foo/1
3120: 32 33 34 2b 20 69 74 65 6d 20 69 73 20 72 65 71  234+ item is req
3130: 75 65 73 74 65 64 20 61 73 20 77 65 6c 6c 20 61  uested as well a
3140: 73 20 63 61 75 73 69 6e 67 20 77 61 69 74 6f 6e  s causing waiton
3150: 20 74 65 73 74 20 42 27 73 20 2b 62 6c 61 68 2b   test B's +blah+
3160: 20 69 74 65 6d 20 74 6f 20 72 75 6e 20 77 68 65   item to run whe
3170: 6e 20 6f 75 72 20 74 65 73 74 27 73 20 2b 73 74  n our test's +st
3180: 75 66 66 2f 62 6c 61 68 2b 20 69 74 65 6d 20 69  uff/blah+ item i
3190: 73 20 72 65 71 75 65 73 74 65 64 0d 0a 2d 2d 2d  s requested..---
31a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 69 74  -----------..[it
31b0: 65 6d 6d 61 70 5d 0d 0a 41 20 66 6f 6f 2f 20 62  emmap]..A foo/ b
31c0: 61 72 2f 0d 0a 42 20 73 74 75 66 66 2f 0d 0a 2d  ar/..B stuff/..-
31d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  -------------...
31e0: 0a 0d 0a 43 6f 6d 70 6c 65 78 20 6d 61 70 70 69  ...Complex mappi
31f0: 6e 67 20 65 78 61 6d 70 6c 65 0d 0a 5e 5e 5e 5e  ng example..^^^^
3200: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ^^^^^^^^^^^^^^^^
3210: 5e 5e 5e 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 20 69 6d  ^^^........// im
3220: 61 67 65 3a 3a 69 74 65 6d 6d 61 70 2e 70 6e 67  age::itemmap.png
3230: 5b 5d 0d 0a 69 6d 61 67 65 3a 3a 63 6f 6d 70 6c  []..image::compl
3240: 65 78 2d 69 74 65 6d 6d 61 70 2e 70 6e 67 5b 5d  ex-itemmap.png[]
3250: 0d 0a 0d 0a 0d 0a 57 65 20 61 63 63 6f 6d 70 6c  ......We accompl
3260: 69 73 68 20 74 68 69 73 20 62 79 20 63 6f 6e 66  ish this by conf
3270: 69 67 75 72 69 6e 67 20 74 68 65 20 74 65 73 74  iguring the test
3280: 63 6f 6e 66 69 67 73 20 6f 66 20 6f 75 72 20 74  configs of our t
3290: 65 73 74 73 20 43 20 44 20 61 6e 64 20 45 20 61  ests C D and E a
32a0: 73 20 66 6f 6c 6c 6f 77 73 3a 0d 0a 0d 0a 2e 54  s follows:.....T
32b0: 65 73 74 63 6f 6e 66 69 67 20 66 6f 72 20 54 65  estconfig for Te
32c0: 73 74 20 45 20 68 61 73 0d 0a 2d 2d 2d 2d 2d 2d  st E has..------
32d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
32e0: 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e 74 73 5d  ..[requirements]
32f0: 0d 0a 77 61 69 74 6f 6e 20 43 0d 0a 69 74 65 6d  ..waiton C..item
3300: 6d 61 70 20 28 5c 64 2b 29 2f 72 65 73 20 5c 31  map (\d+)/res \1
3310: 2f 62 62 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /bb..-----------
3320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e  -----------.....
3330: 54 65 73 74 63 6f 6e 66 69 67 20 66 6f 72 20 54  Testconfig for T
3340: 65 73 74 20 44 20 68 61 73 0d 0a 2d 2d 2d 2d 2d  est D has..-----
3350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3360: 2d 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e 74 73  -..[requirements
3370: 5d 0d 0a 77 61 69 74 6f 6e 20 43 0d 0a 69 74 65  ]..waiton C..ite
3380: 6d 6d 61 70 20 28 5c 64 2b 29 2f 72 65 73 20 5c  mmap (\d+)/res \
3390: 31 2f 61 61 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  1/aa..----------
33a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
33b0: 2e 54 65 73 74 63 6f 6e 66 69 67 20 66 6f 72 20  .Testconfig for 
33c0: 54 65 73 74 20 43 20 68 61 73 0d 0a 2d 2d 2d 2d  Test C has..----
33d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
33e0: 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e 74  --..[requirement
33f0: 73 5d 0d 0a 77 61 69 74 6f 6e 20 41 20 42 0d 0a  s]..waiton A B..
3400: 0d 0a 5b 69 74 65 6d 6d 61 70 5d 0d 0a 41 20 28  ..[itemmap]..A (
3410: 5c 64 2b 29 2f 61 61 20 61 61 2f 5c 31 0d 0a 42  \d+)/aa aa/\1..B
3420: 20 28 5c 64 2b 29 2f 62 62 20 62 62 2f 5c 31 0d   (\d+)/bb bb/\1.
3430: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .---------------
3440: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e 54 65 73 74  -------.....Test
3450: 63 6f 6e 66 69 67 73 20 66 6f 72 20 54 65 73 74  configs for Test
3460: 20 42 20 61 6e 64 20 54 65 73 74 20 41 20 68 61   B and Test A ha
3470: 76 65 20 6e 6f 20 77 61 69 74 6f 6e 20 6f 72 20  ve no waiton or 
3480: 69 74 65 6d 6d 61 70 20 63 6f 6e 66 69 67 75 72  itemmap configur
3490: 65 64 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ed..------------
34a0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 2d 2d 2d 2d 2d 2d 2d  -------..-------
34b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
34c0: 2e 57 61 6c 6b 20 74 68 72 6f 75 67 68 20 6f 6e  .Walk through on
34d0: 65 20 69 74 65 6d 20 2d 2d 20 77 65 20 77 61 6e  e item -- we wan
34e0: 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  t the following 
34f0: 74 6f 20 68 61 70 70 65 6e 20 66 6f 72 20 74 65  to happen for te
3500: 73 74 70 61 74 74 20 2b 44 2f 31 2f 72 65 73 2b  stpatt +D/1/res+
3510: 20 28 73 65 65 20 62 6c 75 65 20 62 6f 78 65 73   (see blue boxes
3520: 20 69 6e 20 63 6f 6d 70 6c 65 78 20 69 74 65 6d   in complex item
3530: 6d 61 70 69 6e 67 20 66 69 67 75 72 65 20 61 62  maping figure ab
3540: 6f 76 65 29 3a 0d 0a 0d 0a 2e 20 65 67 20 66 72  ove):..... eg fr
3550: 6f 6d 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20  om command line 
3560: 2b 6d 65 67 61 74 65 73 74 20 2d 72 75 6e 20 2d  +megatest -run -
3570: 74 65 73 74 70 61 74 74 20 44 2f 31 2f 72 65 73  testpatt D/1/res
3580: 20 2d 74 61 72 67 65 74 20 6d 79 74 61 72 67 65   -target mytarge
3590: 74 20 2d 72 75 6e 6e 61 6d 65 20 6d 79 72 75 6e  t -runname myrun
35a0: 6e 61 6d 65 2b 0d 0a 2e 20 46 75 6c 6c 20 6c 69  name+... Full li
35b0: 73 74 20 74 6f 20 62 65 20 72 75 6e 20 69 73 20  st to be run is 
35c0: 6e 6f 77 3a 20 2b 44 2f 31 2f 72 65 73 2b 0d 0a  now: +D/1/res+..
35d0: 2e 20 54 65 73 74 20 44 20 68 61 73 20 61 20 77  . Test D has a w
35e0: 61 69 74 6f 6e 20 2d 20 74 65 73 74 20 43 2e 20  aiton - test C. 
35f0: 20 54 65 73 74 20 44 27 73 20 69 74 65 6d 6d 61   Test D's itemma
3600: 70 20 72 75 6c 65 20 2b 69 74 65 6d 6d 61 70 20  p rule +itemmap 
3610: 28 5c 64 26 70 6c 75 73 3b 29 2f 72 65 73 20 5c  (\d&plus;)/res \
3620: 31 2f 61 61 2b 20 2d 3e 20 20 63 61 75 73 65 73  1/aa+ ->  causes
3630: 20 2b 43 2f 31 2f 61 61 2b 20 74 6f 20 72 75 6e   +C/1/aa+ to run
3640: 20 62 65 66 6f 72 65 20 2b 44 2f 31 2f 72 65 73   before +D/1/res
3650: 2b 0d 0a 2e 20 46 75 6c 6c 20 6c 69 73 74 20 74  +... Full list t
3660: 6f 20 62 65 20 72 75 6e 20 69 73 20 6e 6f 77 3a  o be run is now:
3670: 20 2b 44 2f 31 2f 72 65 73 2b 2c 20 2b 43 2f 31   +D/1/res+, +C/1
3680: 2f 61 61 2b 0d 0a 2e 20 54 65 73 74 20 43 20 77  /aa+... Test C w
3690: 61 73 20 61 20 77 61 69 74 6f 6e 20 2d 20 74 65  as a waiton - te
36a0: 73 74 20 41 2e 20 54 65 73 74 20 43 27 73 20 72  st A. Test C's r
36b0: 75 6c 65 20 2b 41 20 28 5c 64 26 70 6c 75 73 3b  ule +A (\d&plus;
36c0: 29 2f 61 61 20 61 61 2f 5c 31 2b 20 2d 3e 20 63  )/aa aa/\1+ -> c
36d0: 61 75 73 65 73 20 2b 41 2f 61 61 2f 31 2b 20 74  auses +A/aa/1+ t
36e0: 6f 20 72 75 6e 20 62 65 66 6f 72 65 20 2b 43 2f  o run before +C/
36f0: 31 2f 61 61 2b 0d 0a 2e 20 46 75 6c 6c 20 6c 69  1/aa+... Full li
3700: 73 74 20 74 6f 20 62 65 20 72 75 6e 20 69 73 20  st to be run is 
3710: 6e 6f 77 3a 20 2b 44 2f 31 2f 72 65 73 2b 2c 20  now: +D/1/res+, 
3720: 2b 43 2f 31 2f 61 61 2b 2c 20 2b 41 2f 61 61 2f  +C/1/aa+, +A/aa/
3730: 31 2b 0d 0a 2e 20 54 65 73 74 20 41 20 68 61 73  1+... Test A has
3740: 20 6e 6f 20 77 61 69 74 6f 6e 73 2e 20 20 41 6c   no waitons.  Al
3750: 6c 20 77 61 69 74 6f 6e 73 20 6f 66 20 61 6c 6c  l waitons of all
3760: 20 74 65 73 74 73 20 69 6e 20 66 75 6c 6c 20 6c   tests in full l
3770: 69 73 74 20 68 61 76 65 20 62 65 65 6e 20 70 72  ist have been pr
3780: 6f 63 65 73 73 65 64 2e 20 20 46 75 6c 6c 20 6c  ocessed.  Full l
3790: 69 73 74 20 69 73 20 66 69 6e 61 6c 69 7a 65 64  ist is finalized
37a0: 2e 0d 0a 0d 0a 0d 0a 0d 0a 69 74 65 6d 73 74 61  .........itemsta
37b0: 62 6c 65 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d  ble..^^^^^^^^^^.
37c0: 0a 41 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20  .An alternative 
37d0: 74 6f 20 64 65 66 69 6e 69 6e 67 20 69 74 65 6d  to defining item
37e0: 73 20 69 73 20 74 68 65 20 69 74 65 6d 73 74 61  s is the itemsta
37f0: 62 6c 65 20 73 65 63 74 69 6f 6e 2e 20 20 54 68  ble section.  Th
3800: 69 73 20 6c 65 74 73 20 79 6f 75 20 64 65 66 69  is lets you defi
3810: 6e 65 20 74 68 65 20 69 74 65 6d 70 61 74 68 20  ne the itempath 
3820: 69 6e 20 61 20 74 61 62 6c 65 20 66 6f 72 6d 61  in a table forma
3830: 74 20 72 61 74 68 65 72 20 74 68 61 6e 20 73 70  t rather than sp
3840: 65 63 69 66 79 69 6e 67 20 63 6f 6d 70 6f 6e 65  ecifying compone
3850: 6e 74 73 20 61 6e 64 20 72 65 6c 79 69 6e 67 20  nts and relying 
3860: 6f 6e 20 67 65 74 74 69 6e 67 20 61 6c 6c 20 70  on getting all p
3870: 65 72 6d 75 74 61 74 69 6f 6e 73 20 6f 66 20 74  ermutations of t
3880: 68 6f 73 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 2e  hose components.
3890: 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 44 79 6e 61  ............Dyna
38a0: 6d 69 63 20 46 6c 6f 77 20 44 65 70 65 6e 64 65  mic Flow Depende
38b0: 6e 63 79 20 54 72 65 65 0d 0a 5e 5e 5e 5e 5e 5e  ncy Tree..^^^^^^
38c0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ^^^^^^^^^^^^^^^^
38d0: 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 2e 41 75 74 6f 67  ^^^^^^.....Autog
38e0: 65 6e 65 72 61 74 69 6f 6e 20 77 61 69 74 6f 6e  eneration waiton
38f0: 20 6c 69 73 74 20 66 6f 72 20 64 79 6e 61 6d 69   list for dynami
3900: 63 20 66 6c 6f 77 20 64 65 70 65 6e 64 65 6e 63  c flow dependenc
3910: 79 20 74 72 65 65 73 0d 0a 2d 2d 2d 2d 2d 2d 2d  y trees..-------
3920: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 72  ------------..[r
3930: 65 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a 23 20  equirements]..# 
3940: 57 69 74 68 20 61 20 74 6f 70 6c 65 76 65 6c 20  With a toplevel 
3950: 74 65 73 74 20 79 6f 75 20 6d 61 79 20 77 69 73  test you may wis
3960: 68 20 74 6f 20 67 65 6e 65 72 61 74 65 20 79 6f  h to generate yo
3970: 75 72 20 6c 69 73 74 20 0d 0a 23 20 6f 66 20 74  ur list ..# of t
3980: 65 73 74 73 20 74 6f 20 72 75 6e 20 64 79 6e 61  ests to run dyna
3990: 6d 69 63 61 6c 6c 79 0d 0a 23 0d 0a 77 61 69 74  mically..#..wait
39a0: 6f 6e 20 23 7b 73 68 65 6c 6c 20 67 65 74 2d 76  on #{shell get-v
39b0: 61 6c 69 64 2d 74 65 73 74 73 2d 74 6f 2d 72 75  alid-tests-to-ru
39c0: 6e 2e 73 68 7d 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  n.sh}..---------
39d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 52 75  ----------....Ru
39e0: 6e 20 74 69 6d 65 20 6c 69 6d 69 74 0d 0a 5e 5e  n time limit..^^
39f0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a  ^^^^^^^^^^^^....
3a00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3a10: 2d 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e 74 73  -..[requirements
3a20: 5d 0d 0a 72 75 6e 74 69 6d 65 6c 69 6d 20 31 68  ]..runtimelim 1h
3a30: 20 32 6d 20 33 73 20 20 23 20 74 68 69 73 20 77   2m 3s  # this w
3a40: 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c  ill automaticall
3a50: 79 20 6b 69 6c 6c 20 74 68 65 20 74 65 73 74 20  y kill the test 
3a60: 69 66 20 69 74 20 72 75 6e 73 20 66 6f 72 20 6d  if it runs for m
3a70: 6f 72 65 20 74 68 61 6e 20 31 68 20 32 6d 20 61  ore than 1h 2m a
3a80: 6e 64 20 33 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  nd 3s..---------
3a90: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 53 6b 69 70  --------....Skip
3aa0: 0d 0a 5e 5e 5e 5e 0d 0a 0d 0a 41 20 74 65 73 74  ..^^^^....A test
3ab0: 20 77 69 74 68 20 61 20 73 6b 69 70 20 73 65 63   with a skip sec
3ac0: 74 69 6f 6e 20 77 69 6c 6c 20 63 6f 6e 64 69 74  tion will condit
3ad0: 69 6f 6e 61 6c 20 73 6b 69 70 20 72 75 6e 6e 69  ional skip runni
3ae0: 6e 67 2e 0d 0a 0d 0a 2e 53 6b 69 70 20 73 65 63  ng......Skip sec
3af0: 74 69 6f 6e 20 65 78 61 6d 70 6c 65 0d 0a 2d 2d  tion example..--
3b00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
3b10: 0a 5b 73 6b 69 70 5d 0d 0a 70 72 65 76 72 75 6e  .[skip]..prevrun
3b20: 6e 69 6e 67 20 78 0d 0a 23 20 72 75 6e 64 65 6c  ning x..# rundel
3b30: 61 79 20 33 30 6d 20 31 35 73 0d 0a 2d 2d 2d 2d  ay 30m 15s..----
3b40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  -------------...
3b50: 0a 53 6b 69 70 20 6f 6e 20 53 74 69 6c 6c 2d 72  .Skip on Still-r
3b60: 75 6e 6e 69 6e 67 20 54 65 73 74 73 0d 0a 5e 5e  unning Tests..^^
3b70: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ^^^^^^^^^^^^^^^^
3b80: 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 2d 2d 2d  ^^^^^^^^^....---
3b90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
3ba0: 23 20 4e 42 2f 2f 20 49 66 20 74 68 65 20 70 72  # NB// If the pr
3bb0: 65 76 72 75 6e 6e 69 6e 67 20 6c 69 6e 65 20 65  evrunning line e
3bc0: 78 69 73 74 73 20 77 69 74 68 20 2a 61 6e 79 2a  xists with *any*
3bd0: 20 76 61 6c 75 65 20 74 68 65 20 74 65 73 74 20   value the test 
3be0: 77 69 6c 6c 0d 0a 23 20 61 75 74 6f 6d 61 74 69  will..# automati
3bf0: 63 61 6c 6c 79 20 53 4b 49 50 20 69 66 20 74 68  cally SKIP if th
3c00: 65 20 73 61 6d 65 2d 6e 61 6d 65 64 20 74 65 73  e same-named tes
3c10: 74 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 52  t is currently R
3c20: 55 4e 4e 49 4e 47 2e 20 54 68 65 0d 0a 23 20 22  UNNING. The..# "
3c30: 78 22 20 63 61 6e 20 62 65 20 61 6e 79 20 73 74  x" can be any st
3c40: 72 69 6e 67 2e 20 43 6f 6d 6d 65 6e 74 20 6f 75  ring. Comment ou
3c50: 74 20 74 68 65 20 70 72 65 76 72 75 6e 6e 69 6e  t the prevrunnin
3c60: 67 20 6c 69 6e 65 20 74 6f 20 74 75 72 6e 20 6f  g line to turn o
3c70: 66 66 0d 0a 23 20 73 6b 69 70 2e 0d 0a 0d 0a 5b  ff..# skip.....[
3c80: 73 6b 69 70 5d 0d 0a 70 72 65 76 72 75 6e 6e 69  skip]..prevrunni
3c90: 6e 67 20 78 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ng x..----------
3ca0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 53 6b 69 70 20  -------....Skip 
3cb0: 69 66 20 61 20 46 69 6c 65 20 45 78 69 73 74 73  if a File Exists
3cc0: 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ..^^^^^^^^^^^^^^
3cd0: 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 2d 2d 2d 2d 2d  ^^^^^^^....-----
3ce0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 73  ------------..[s
3cf0: 6b 69 70 5d 0d 0a 66 69 6c 65 65 78 69 73 74 73  kip]..fileexists
3d00: 20 2f 70 61 74 68 2f 74 6f 2f 61 2f 66 69 6c 65   /path/to/a/file
3d10: 20 23 20 73 6b 69 70 20 69 66 20 2f 70 61 74 68   # skip if /path
3d20: 2f 74 6f 2f 61 2f 66 69 6c 65 20 65 78 69 73 74  /to/a/file exist
3d30: 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  s..-------------
3d40: 2d 2d 2d 2d 0d 0a 0d 0a 53 6b 69 70 20 69 66 20  ----....Skip if 
3d50: 74 65 73 74 20 72 61 6e 20 6d 6f 72 65 20 72 65  test ran more re
3d60: 63 65 6e 74 6c 79 20 74 68 61 6e 20 73 70 65 63  cently than spec
3d70: 69 66 69 65 64 20 74 69 6d 65 0d 0a 5e 5e 5e 5e  ified time..^^^^
3d80: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ^^^^^^^^^^^^^^^^
3d90: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ^^^^^^^^^^^^^^^^
3da0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a  ^^^^^^^^^^^^^^..
3db0: 0d 0a 2e 53 6b 69 70 20 69 66 20 74 68 69 73 20  ...Skip if this 
3dc0: 74 65 73 74 20 68 61 73 20 62 65 65 6e 20 72 75  test has been ru
3dd0: 6e 20 69 6e 20 74 68 65 20 70 61 73 74 20 66 69  n in the past fi
3de0: 66 74 65 65 6e 20 6d 69 6e 75 74 65 73 20 61 6e  fteen minutes an
3df0: 64 20 31 35 20 73 65 63 6f 6e 64 73 2e 0d 0a 2d  d 15 seconds...-
3e00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3e10: 0d 0a 5b 73 6b 69 70 5d 0d 0a 72 75 6e 64 65 6c  ..[skip]..rundel
3e20: 61 79 20 31 35 6d 20 31 35 73 0d 0a 2d 2d 2d 2d  ay 15m 15s..----
3e30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  -------------...
3e40: 0a 44 69 73 6b 73 0d 0a 5e 5e 5e 5e 5e 0d 0a 0d  .Disks..^^^^^...
3e50: 0a 41 20 64 69 73 6b 73 20 73 65 63 74 69 6f 6e  .A disks section
3e60: 20 69 6e 20 74 65 73 74 63 6f 6e 66 69 67 20 77   in testconfig w
3e70: 69 6c 6c 20 6f 76 65 72 72 69 64 65 20 74 68 65  ill override the
3e80: 20 64 69 73 6b 73 20 73 65 63 74 69 6f 6e 20 69   disks section i
3e90: 6e 0d 0a 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66  n..megatest.conf
3ea0: 69 67 2e 20 54 68 69 73 20 63 61 6e 20 62 65 20  ig. This can be 
3eb0: 75 73 65 64 20 74 6f 20 61 6c 6c 6f 63 61 74 65  used to allocate
3ec0: 20 64 69 73 6b 73 20 6f 6e 20 61 20 70 65 72 2d   disks on a per-
3ed0: 74 65 73 74 20 6f 72 20 70 65 72 20 69 74 65 6d  test or per item
3ee0: 0d 0a 62 61 73 69 73 2e 0d 0a 0d 0a 43 6f 6e 74  ..basis.....Cont
3ef0: 72 6f 6c 6c 65 64 20 77 61 69 76 65 72 20 70 72  rolled waiver pr
3f00: 6f 70 61 67 61 74 69 6f 6e 0d 0a 5e 5e 5e 5e 5e  opagation..^^^^^
3f10: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ^^^^^^^^^^^^^^^^
3f20: 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 49 66 20 74  ^^^^^^^^....If t
3f30: 65 73 74 20 69 73 20 46 41 49 4c 20 61 6e 64 20  est is FAIL and 
3f40: 70 72 65 76 69 6f 75 73 20 74 65 73 74 20 69 6e  previous test in
3f50: 20 72 75 6e 20 77 69 74 68 20 73 61 6d 65 20 4d   run with same M
3f60: 54 5f 54 41 52 47 45 54 20 69 73 20 57 41 49 56  T_TARGET is WAIV
3f70: 45 44 20 74 68 65 6e 20 61 70 70 6c 79 20 74 68  ED then apply th
3f80: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 75 6c 65  e following rule
3f90: 73 20 66 72 6f 6d 20 74 68 65 20 74 65 73 74 63  s from the testc
3fa0: 6f 6e 66 69 67 3a 0d 0a 49 66 20 61 20 77 61 69  onfig:..If a wai
3fb0: 76 65 72 20 63 68 65 63 6b 20 69 73 20 73 70 65  ver check is spe
3fc0: 63 69 66 69 65 64 20 69 6e 20 74 68 65 20 74 65  cified in the te
3fd0: 73 74 63 6f 6e 66 69 67 20 61 70 70 6c 79 20 74  stconfig apply t
3fe0: 68 65 20 63 68 65 63 6b 20 61 6e 64 20 69 66 20  he check and if 
3ff0: 69 74 20 70 61 73 73 65 73 20 74 68 65 6e 20 73  it passes then s
4000: 65 74 20 74 68 69 73 20 46 41 49 4c 20 74 6f 20  et this FAIL to 
4010: 57 41 49 56 45 44 0d 0a 0d 0a 57 61 69 76 65 72  WAIVED....Waiver
4020: 20 63 68 65 63 6b 20 68 61 73 20 74 77 6f 20 70   check has two p
4030: 61 72 74 73 2c 20 31 29 20 61 20 6c 69 73 74 20  arts, 1) a list 
4040: 6f 66 20 77 61 69 76 65 72 2c 20 72 75 6c 65 6e  of waiver, rulen
4050: 61 6d 65 2c 20 66 69 6c 65 70 61 74 74 65 72 6e  ame, filepattern
4060: 73 20 61 6e 64 20 32 29 20 74 68 65 20 72 75 6c  s and 2) the rul
4070: 65 6e 61 6d 65 20 73 63 72 69 70 74 20 73 70 65  ename script spe
4080: 63 20 28 6e 6f 74 65 20 74 68 61 74 20 22 64 69  c (note that "di
4090: 66 66 22 20 61 6e 64 20 22 6c 6f 67 70 72 6f 22  ff" and "logpro"
40a0: 20 61 72 65 20 70 72 65 64 65 66 69 6e 65 64 29   are predefined)
40b0: 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....------------
40c0: 2d 2d 2d 2d 2d 0d 0a 23 23 23 23 23 23 20 45 58  -----..###### EX
40d0: 41 4d 50 4c 45 20 46 52 4f 4d 20 74 65 73 74 63  AMPLE FROM testc
40e0: 6f 6e 66 69 67 20 23 23 23 23 23 23 23 23 23 0d  onfig #########.
40f0: 0a 23 20 6d 61 74 63 68 69 6e 67 20 66 69 6c 65  .# matching file
4100: 28 73 29 20 77 69 6c 6c 20 62 65 20 64 69 66 66  (s) will be diff
4110: 27 64 20 77 69 74 68 20 70 72 65 76 69 6f 75 73  'd with previous
4120: 20 72 75 6e 20 61 6e 64 20 6c 6f 67 70 72 6f 20   run and logpro 
4130: 61 70 70 6c 69 65 64 0d 0a 23 20 69 66 20 50 41  applied..# if PA
4140: 53 53 20 6f 72 20 57 41 52 4e 20 72 65 73 75 6c  SS or WARN resul
4150: 74 20 66 72 6f 6d 20 6c 6f 67 70 72 6f 20 74 68  t from logpro th
4160: 65 6e 20 57 41 49 56 45 52 20 73 74 61 74 65 20  en WAIVER state 
4170: 69 73 20 73 65 74 0d 0a 23 0d 0a 5b 77 61 69 76  is set..#..[waiv
4180: 65 72 73 5d 0d 0a 23 20 6c 6f 67 70 72 6f 5f 66  ers]..# logpro_f
4190: 69 6c 65 20 20 20 20 72 75 6c 65 6e 61 6d 65 20  ile    rulename 
41a0: 20 20 20 20 20 69 6e 70 75 74 5f 67 6c 6f 62 0d       input_glob.
41b0: 0a 77 61 69 76 65 72 5f 31 20 20 20 20 20 20 20  .waiver_1       
41c0: 20 20 6c 6f 67 70 72 6f 20 20 20 20 20 20 20 20    logpro        
41d0: 6c 6f 6f 6b 69 74 74 6d 70 2e 6c 6f 67 0d 0a 0d  lookittmp.log...
41e0: 0a 5b 77 61 69 76 65 72 5f 72 75 6c 65 73 5d 0d  .[waiver_rules].
41f0: 0a 0d 0a 23 20 54 68 69 73 20 62 75 69 6c 74 69  ...# This builti
4200: 6e 20 72 75 6c 65 20 69 73 20 74 68 65 20 64 65  n rule is the de
4210: 66 61 75 6c 74 20 69 66 20 74 68 65 72 65 20 69  fault if there i
4220: 73 20 6e 6f 20 3c 77 61 69 76 65 72 6e 61 6d 65  s no <waivername
4230: 3e 2e 6c 6f 67 70 72 6f 20 66 69 6c 65 0d 0a 23  >.logpro file..#
4240: 20 64 69 66 66 20 20 20 64 69 66 66 20 25 66 69   diff   diff %fi
4250: 6c 65 31 25 20 25 66 69 6c 65 32 25 0d 0a 0d 0a  le1% %file2%....
4260: 23 20 54 68 69 73 20 62 75 69 6c 74 69 6e 20 72  # This builtin r
4270: 75 6c 65 20 69 73 20 61 70 70 6c 69 65 64 20 69  ule is applied i
4280: 66 20 61 20 3c 77 61 69 76 65 72 6e 61 6d 65 3e  f a <waivername>
4290: 2e 6c 6f 67 70 72 6f 20 66 69 6c 65 20 65 78 69  .logpro file exi
42a0: 73 74 73 0d 0a 23 20 6c 6f 67 70 72 6f 20 64 69  sts..# logpro di
42b0: 66 66 20 25 66 69 6c 65 31 25 20 25 66 69 6c 65  ff %file1% %file
42c0: 32 25 20 7c 20 6c 6f 67 70 72 6f 20 25 77 61 69  2% | logpro %wai
42d0: 76 65 72 6e 61 6d 65 25 2e 6c 6f 67 70 72 6f 20  vername%.logpro 
42e0: 25 77 61 69 76 65 72 6e 61 6d 65 25 2e 68 74 6d  %waivername%.htm
42f0: 6c 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  l..-------------
4300: 2d 2d 2d 2d 0d 0a 0d 0a 45 7a 73 74 65 70 73 0d  ----....Ezsteps.
4310: 0a 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 2e 45 78 61  .~~~~~~~.....Exa
4320: 6d 70 6c 65 20 65 7a 73 74 65 70 73 20 77 69 74  mple ezsteps wit
4330: 68 20 6c 6f 67 70 72 6f 20 72 75 6c 65 73 0d 0a  h logpro rules..
4340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4350: 2d 0d 0a 5b 65 7a 73 74 65 70 73 5d 0d 0a 6c 6f  -..[ezsteps]..lo
4360: 6f 6b 69 74 74 6d 70 20 20 20 6c 73 20 2f 74 6d  okittmp   ls /tm
4370: 70 0d 0a 0d 0a 5b 6c 6f 67 70 72 6f 5d 0d 0a 6c  p....[logpro]..l
4380: 6f 6f 6b 69 74 74 6d 70 20 3b 3b 20 4e 6f 74 65  ookittmp ;; Note
4390: 3a 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 66 6f  : config file fo
43a0: 72 6d 61 74 20 73 75 70 70 6f 72 74 73 20 6d 75  rmat supports mu
43b0: 6c 74 69 2d 6c 69 6e 65 20 65 6e 74 72 69 65 73  lti-line entries
43c0: 20 77 68 65 72 65 20 6c 65 61 64 69 6e 67 20 77   where leading w
43d0: 68 69 74 65 73 70 61 63 65 20 69 73 20 72 65 6d  hitespace is rem
43e0: 6f 76 65 64 20 66 72 6f 6d 20 65 61 63 68 20 6c  oved from each l
43f0: 69 6e 65 0d 0a 20 20 3b 3b 20 20 20 20 20 61 20  ine..  ;;     a 
4400: 62 6c 61 6e 6b 20 6c 69 6e 65 20 69 6e 64 69 63  blank line indic
4410: 61 74 65 73 20 74 68 65 20 65 6e 64 20 6f 66 20  ates the end of 
4420: 74 68 65 20 62 6c 6f 63 6b 20 6f 66 20 74 65 78  the block of tex
4430: 74 20 0d 0a 20 20 28 65 78 70 65 63 74 3a 72 65  t ..  (expect:re
4440: 71 75 69 72 65 64 20 69 6e 20 22 4c 6f 67 46 69  quired in "LogFi
4450: 6c 65 42 6f 64 79 22 20 3e 20 30 20 22 41 20 66  leBody" > 0 "A f
4460: 69 6c 65 20 6e 61 6d 65 20 74 68 61 74 20 73 68  ile name that sh
4470: 6f 75 6c 64 20 6e 65 76 65 72 20 65 78 69 73 74  ould never exist
4480: 21 22 20 23 2f 54 68 69 73 20 69 73 20 61 20 61  !" #/This is a a
4490: 77 66 75 6c 6c 79 20 73 74 75 70 69 64 20 66 69  wfully stupid fi
44a0: 6c 65 20 6e 61 6d 65 20 74 68 61 74 20 73 68 6f  le name that sho
44b0: 75 6c 64 20 6e 65 76 65 72 20 62 65 20 66 6f 75  uld never be fou
44c0: 6e 64 20 69 6e 20 74 68 65 20 74 65 6d 70 20 64  nd in the temp d
44d0: 69 72 2f 29 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  ir/)....--------
44e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 54 6f 20  ---------....To 
44f0: 74 72 61 6e 73 66 65 72 20 74 68 65 20 65 6e 76  transfer the env
4500: 69 72 6f 6e 6d 65 6e 74 20 74 6f 20 74 68 65 20  ironment to the 
4510: 6e 65 78 74 20 73 74 65 70 20 79 6f 75 20 63 61  next step you ca
4520: 6e 20 64 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69  n do the followi
4530: 6e 67 3a 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  ng:....---------
4540: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4550: 2d 2d 2d 0d 0a 24 4d 54 5f 4d 45 47 41 54 45 53  ---..$MT_MEGATES
4560: 54 20 2d 65 6e 76 32 66 69 6c 65 20 2e 65 7a 73  T -env2file .ezs
4570: 74 65 70 73 2f 24 7b 73 74 65 70 6e 61 6d 65 7d  teps/${stepname}
4580: 09 20 20 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .  ..-----------
4590: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
45a0: 2d 0d 0a 0d 0a 54 72 69 67 67 65 72 73 0d 0a 7e  -....Triggers..~
45b0: 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 49 6e 20 79 6f  ~~~~~~~....In yo
45c0: 75 72 20 74 65 73 74 63 6f 6e 66 69 67 20 6f 72  ur testconfig or
45d0: 20 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 69 67   megatest.config
45e0: 20 74 72 69 67 67 65 72 73 20 63 61 6e 20 62 65   triggers can be
45f0: 20 73 70 65 63 69 66 69 65 64 20 0d 0a 0d 0a 2d   specified ....-
4600: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4610: 0d 0a 5b 74 72 69 67 67 65 72 73 5d 0d 0a 0d 0a  ..[triggers]....
4620: 23 20 43 61 6c 6c 20 73 63 72 69 70 74 20 72 75  # Call script ru
4630: 6e 6e 69 6e 67 2e 73 68 20 77 68 65 6e 20 74 65  nning.sh when te
4640: 73 74 20 67 6f 65 73 20 74 6f 20 73 74 61 74 65  st goes to state
4650: 3d 52 55 4e 4e 49 4e 47 2c 20 73 74 61 74 75 73  =RUNNING, status
4660: 3d 50 41 53 53 0d 0a 52 55 4e 4e 49 4e 47 2f 50  =PASS..RUNNING/P
4670: 41 53 53 20 72 75 6e 6e 69 6e 67 2e 73 68 0d 0a  ASS running.sh..
4680: 0d 0a 23 20 43 61 6c 6c 20 73 63 72 69 70 74 20  ..# Call script 
4690: 72 75 6e 6e 69 6e 67 2e 73 68 20 61 6e 79 20 74  running.sh any t
46a0: 69 6d 65 20 73 74 61 74 65 20 67 6f 65 73 20 74  ime state goes t
46b0: 6f 20 52 55 4e 4e 49 4e 47 0d 0a 52 55 4e 4e 49  o RUNNING..RUNNI
46c0: 4e 47 2f 20 72 75 6e 6e 69 6e 67 2e 73 68 0d 0a  NG/ running.sh..
46d0: 0d 0a 23 20 43 61 6c 6c 20 73 63 72 69 70 74 20  ..# Call script 
46e0: 6f 6e 70 61 73 73 2e 73 68 20 61 6e 79 20 74 69  onpass.sh any ti
46f0: 6d 65 20 73 74 61 74 75 73 20 67 6f 65 73 20 74  me status goes t
4700: 6f 20 50 41 53 53 0d 0a 50 41 53 53 2f 20 6f 6e  o PASS..PASS/ on
4710: 70 61 73 73 2e 73 68 0d 0a 2d 2d 2d 2d 2d 2d 2d  pass.sh..-------
4720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 53 63  ----------....Sc
4730: 72 69 70 74 73 20 63 61 6c 6c 65 64 20 77 69 6c  ripts called wil
4740: 6c 20 68 61 76 65 3b 20 74 65 73 74 2d 69 64 20  l have; test-id 
4750: 74 65 73 74 2d 72 75 6e 64 69 72 20 74 72 69 67  test-rundir trig
4760: 67 65 72 20 74 65 73 74 2d 6e 61 6d 65 20 69 74  ger test-name it
4770: 65 6d 2d 70 61 74 68 20 73 74 61 74 65 20 73 74  em-path state st
4780: 61 74 75 73 20 65 76 65 6e 74 2d 74 69 6d 65 2c  atus event-time,
4790: 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 63 6f   added to the co
47a0: 6d 6d 61 6e 64 6c 69 6e 65 2e 0d 0a 0d 0a 48 49  mmandline.....HI
47b0: 4e 54 0d 0a 0d 0a 54 6f 20 73 74 61 72 74 20 61  NT....To start a
47c0: 6e 20 78 74 65 72 6d 20 28 75 73 65 66 75 6c 20  n xterm (useful 
47d0: 66 6f 72 20 64 65 62 75 67 67 69 6e 67 29 2c 20  for debugging), 
47e0: 75 73 65 20 61 20 63 6f 6d 6d 61 6e 64 20 6c 69  use a command li
47f0: 6e 65 20 6c 69 6b 65 20 74 68 65 20 66 6f 6c 6c  ne like the foll
4800: 6f 77 69 6e 67 3a 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d  owing:....------
4810: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 74 72  -----------..[tr
4820: 69 67 67 65 72 73 5d 0d 0a 43 4f 4d 50 4c 45 54  iggers]..COMPLET
4830: 45 44 2f 20 78 74 65 72 6d 20 2d 65 20 62 61 73  ED/ xterm -e bas
4840: 68 20 2d 73 20 2d 2d 20 0d 0a 2d 2d 2d 2d 2d 2d  h -s -- ..------
4850: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 4e  -----------....N
4860: 4f 54 45 3a 20 54 68 65 72 65 20 69 73 20 61 20  OTE: There is a 
4870: 74 72 61 69 6c 69 6e 67 20 73 70 61 63 65 20 61  trailing space a
4880: 66 74 65 72 20 74 68 65 20 2d 2d 0d 0a 0d 0a 54  fter the --....T
4890: 68 65 72 65 20 61 72 65 20 61 20 6e 75 6d 62 65  here are a numbe
48a0: 72 20 6f 66 20 65 6e 76 69 72 6f 6e 6d 65 6e 74  r of environment
48b0: 20 76 61 72 69 61 62 6c 65 73 20 61 76 61 69 6c   variables avail
48c0: 61 62 6c 65 20 74 6f 20 74 68 65 20 74 72 69 67  able to the trig
48d0: 67 65 72 20 73 63 72 69 70 74 0d 0a 62 75 74 20  ger script..but 
48e0: 73 69 6e 63 65 20 74 72 69 67 67 65 72 73 20 63  since triggers c
48f0: 61 6e 20 62 65 20 63 61 6c 6c 65 64 20 69 6e 20  an be called in 
4900: 76 61 72 69 6f 75 73 20 63 6f 6e 74 65 78 74 73  various contexts
4910: 20 6e 6f 74 20 61 6c 6c 20 76 61 72 69 61 62 6c   not all variabl
4920: 65 73 20 61 72 65 0d 0a 61 76 61 69 6c 61 62 6c  es are..availabl
4930: 65 20 61 74 20 61 6c 6c 20 74 69 6d 65 73 2e 20  e at all times. 
4940: 54 68 65 20 74 72 69 67 67 65 72 20 73 63 72 69  The trigger scri
4950: 70 74 20 73 68 6f 75 6c 64 20 63 68 65 63 6b 20  pt should check 
4960: 66 6f 72 20 74 68 65 20 76 61 72 69 61 62 6c 65  for the variable
4970: 20 61 6e 64 0d 0a 66 61 69 6c 20 67 72 61 63 65   and..fail grace
4980: 66 75 6c 6c 79 20 69 66 20 69 74 20 64 6f 65 73  fully if it does
4990: 6e 27 74 20 65 78 69 73 74 2e 0d 0a 0d 0a 2e 45  n't exist......E
49a0: 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61  nvironment varia
49b0: 62 6c 65 73 20 76 69 73 69 62 6c 65 20 74 6f 20  bles visible to 
49c0: 74 68 65 20 74 72 69 67 67 65 72 20 73 63 72 69  the trigger scri
49d0: 70 74 0d 0a 5b 77 69 64 74 68 3d 22 39 30 25 22  pt..[width="90%"
49e0: 2c 63 6f 6c 73 3d 22 5e 2c 32 6d 22 2c 66 72 61  ,cols="^,2m",fra
49f0: 6d 65 3d 22 74 6f 70 62 6f 74 22 2c 6f 70 74 69  me="topbot",opti
4a00: 6f 6e 73 3d 22 68 65 61 64 65 72 22 5d 0d 0a 7c  ons="header"]..|
4a10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4a20: 3d 3d 3d 3d 3d 3d 0d 0a 7c 56 61 72 69 61 62 6c  ======..|Variabl
4a30: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20  e             | 
4a40: 50 75 72 70 6f 73 65 20 20 20 20 20 20 20 20 20  Purpose         
4a50: 20 20 20 0d 0a 7c 20 4d 54 5f 54 45 53 54 5f 52     ..| MT_TEST_R
4a60: 55 4e 5f 44 49 52 20 20 20 20 20 7c 20 54 68 65  UN_DIR     | The
4a70: 20 64 69 72 65 63 74 6f 72 79 20 77 68 65 72 65   directory where
4a80: 20 4d 65 67 61 74 65 73 74 20 72 61 6e 20 74 68   Megatest ran th
4a90: 69 73 20 74 65 73 74 20 20 20 20 20 20 20 20 20  is test         
4aa0: 20 20 20 20 20 20 20 20 20 20 0d 0a 7c 20 4d 54            ..| MT
4ab0: 5f 43 4d 44 49 4e 46 4f 20 20 20 20 20 20 20 20  _CMDINFO        
4ac0: 20 20 7c 20 45 6e 63 6f 64 65 64 20 63 6f 6d 6d    | Encoded comm
4ad0: 61 6e 64 20 64 61 74 61 20 66 6f 72 20 74 68 65  and data for the
4ae0: 20 74 65 73 74 20 20 20 20 20 20 20 20 20 20 20   test           
4af0: 20 20 20 20 20 20 20 20 0d 0a 7c 20 4d 54 5f 44          ..| MT_D
4b00: 45 42 55 47 5f 4d 4f 44 45 20 20 20 20 20 20 20  EBUG_MODE       
4b10: 7c 20 55 73 65 64 20 74 6f 20 70 61 73 73 20 74  | Used to pass t
4b20: 68 65 20 64 65 62 75 67 20 6d 6f 64 65 20 74 6f  he debug mode to
4b30: 20 6e 65 73 74 65 64 20 63 61 6c 6c 73 20 74 6f   nested calls to
4b40: 20 4d 65 67 61 74 65 73 74 20 20 20 20 20 20 20   Megatest       
4b50: 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 7c 20              ..| 
4b60: 4d 54 5f 52 55 4e 5f 41 52 45 41 5f 48 4f 4d 45  MT_RUN_AREA_HOME
4b70: 20 20 20 20 7c 20 4d 65 67 61 74 65 73 74 20 68      | Megatest h
4b80: 6f 6d 65 20 61 72 65 61 20 0d 0a 7c 20 4d 54 5f  ome area ..| MT_
4b90: 54 45 53 54 53 55 49 54 45 4e 41 4d 45 20 20 20  TESTSUITENAME   
4ba0: 20 7c 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74   | The name of t
4bb0: 68 69 73 20 74 65 73 74 73 75 69 74 65 20 6f 72  his testsuite or
4bc0: 20 61 72 65 61 20 20 20 20 20 20 20 20 20 20 20   area           
4bd0: 20 20 20 20 20 20 20 20 0d 0a 7c 20 4d 54 5f 54          ..| MT_T
4be0: 45 53 54 5f 4e 41 4d 45 20 20 20 20 20 20 20 20  EST_NAME        
4bf0: 7c 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  | The name of th
4c00: 69 73 20 74 65 73 74 0d 0a 7c 20 4d 54 5f 49 54  is test..| MT_IT
4c10: 45 4d 5f 49 4e 46 4f 20 20 20 20 20 20 20 20 7c  EM_INFO        |
4c20: 20 54 68 65 20 76 61 72 69 61 62 6c 65 20 61 6e   The variable an
4c30: 64 20 76 61 6c 75 65 73 20 66 6f 72 20 74 68 65  d values for the
4c40: 20 74 65 73 74 20 69 74 65 6d 0d 0a 7c 20 4d 54   test item..| MT
4c50: 5f 4d 45 47 41 54 45 53 54 20 20 20 20 20 20 20  _MEGATEST       
4c60: 20 20 7c 20 57 68 69 63 68 20 4d 65 67 61 74 65    | Which Megate
4c70: 73 74 20 62 69 6e 61 72 79 20 69 73 20 62 65 69  st binary is bei
4c80: 6e 67 20 75 73 65 64 20 62 79 20 74 68 69 73 20  ng used by this 
4c90: 61 72 65 61 0d 0a 7c 20 4d 54 5f 54 41 52 47 45  area..| MT_TARGE
4ca0: 54 20 20 20 20 20 20 20 20 20 20 20 7c 20 54 68  T           | Th
4cb0: 65 20 74 61 72 67 65 74 20 76 61 72 69 61 62 6c  e target variabl
4cc0: 65 20 76 61 6c 75 65 73 2c 20 73 65 70 61 72 61  e values, separa
4cd0: 74 65 64 20 62 79 20 27 2f 27 0d 0a 7c 20 4d 54  ted by '/'..| MT
4ce0: 5f 4c 49 4e 4b 54 52 45 45 20 20 20 20 20 20 20  _LINKTREE       
4cf0: 20 20 7c 20 54 68 65 20 62 61 73 65 20 6f 66 20    | The base of 
4d00: 74 68 65 20 6c 69 6e 6b 20 74 72 65 65 20 77 68  the link tree wh
4d10: 65 72 65 20 61 6c 6c 20 72 75 6e 20 74 65 73 74  ere all run test
4d20: 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 0d 0a  s can be found..
4d30: 7c 20 4d 54 5f 49 54 45 4d 50 41 54 48 20 20 20  | MT_ITEMPATH   
4d40: 20 20 20 20 20 20 7c 20 54 68 65 20 76 61 6c 75        | The valu
4d50: 65 73 20 6f 66 20 74 68 65 20 69 74 65 6d 20 70  es of the item p
4d60: 61 74 68 20 76 61 72 69 61 62 6c 65 73 2c 20 73  ath variables, s
4d70: 65 70 61 72 61 74 65 64 20 62 79 20 27 2f 27 0d  eparated by '/'.
4d80: 0a 7c 20 4d 54 5f 52 55 4e 4e 41 4d 45 20 20 20  .| MT_RUNNAME   
4d90: 20 20 20 20 20 20 20 7c 20 54 68 65 20 6e 61 6d         | The nam
4da0: 65 20 6f 66 20 74 68 65 20 72 75 6e 0d 0a 7c 3d  e of the run..|=
4db0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
4dc0: 3d 3d 3d 3d 3d 0d 0a 0d 0a 0d 0a 4f 76 65 72 72  =====......Overr
4dd0: 69 64 65 20 74 68 65 20 54 6f 70 6c 65 76 65 6c  ide the Toplevel
4de0: 20 48 54 4d 4c 20 46 69 6c 65 0d 0a 7e 7e 7e 7e   HTML File..~~~~
4df0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
4e00: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 4d  ~~~~~~~~~~~....M
4e10: 65 67 61 74 65 73 74 20 67 65 6e 65 72 61 74 65  egatest generate
4e20: 73 20 61 20 73 69 6d 70 6c 65 20 68 74 6d 6c 20  s a simple html 
4e30: 66 69 6c 65 20 73 75 6d 6d 61 72 79 20 66 6f 72  file summary for
4e40: 20 74 6f 70 20 6c 65 76 65 6c 20 74 65 73 74 73   top level tests
4e50: 20 6f 66 0d 0a 69 74 65 72 61 74 65 64 20 74 65   of..iterated te
4e60: 73 74 73 2e 20 54 68 65 20 67 65 6e 65 72 61 74  sts. The generat
4e70: 69 6f 6e 20 63 61 6e 20 62 65 20 6f 76 65 72 72  ion can be overr
4e80: 69 64 64 65 6e 2e 20 4e 4f 54 45 3a 20 74 68 65  idden. NOTE: the
4e90: 20 6f 75 74 70 75 74 20 6f 66 0d 0a 74 68 65 20   output of..the 
4ea0: 73 63 72 69 70 74 20 69 73 20 63 61 70 74 75 72  script is captur
4eb0: 65 64 20 66 72 6f 6d 20 73 74 64 6f 75 74 20 74  ed from stdout t
4ec0: 6f 20 63 72 65 61 74 65 20 74 68 65 20 68 74 6d  o create the htm
4ed0: 6c 2e 0d 0a 0d 0a 0d 0a 2e 46 6f 72 20 74 65 73  l........For tes
4ee0: 74 20 22 72 75 6e 66 69 72 73 74 22 20 6f 76 65  t "runfirst" ove
4ef0: 72 72 69 64 65 20 74 68 65 20 74 6f 70 6c 65 76  rride the toplev
4f00: 65 6c 20 67 65 6e 65 72 61 74 69 6f 6e 20 77 69  el generation wi
4f10: 74 68 20 61 20 73 63 72 69 70 74 20 22 6d 79 73  th a script "mys
4f20: 75 6d 6d 61 72 79 2e 73 68 22 0d 0a 2d 2d 2d 2d  ummary.sh"..----
4f30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23  -------------..#
4f40: 20 4f 76 65 72 72 69 64 65 20 74 68 65 20 72 6f   Override the ro
4f50: 6c 6c 75 70 20 66 6f 72 20 73 70 65 63 69 66 69  llup for specifi
4f60: 63 20 74 65 73 74 73 0d 0a 5b 74 65 73 74 72 6f  c tests..[testro
4f70: 6c 6c 75 70 5d 0d 0a 72 75 6e 66 69 72 73 74 20  llup]..runfirst 
4f80: 6d 79 73 75 6d 6d 61 72 79 2e 73 68 0d 0a 2d 2d  mysummary.sh..--
4f90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
4fa0: 0a 0d 0a 41 72 63 68 69 76 69 6e 67 20 53 65 74  ...Archiving Set
4fb0: 75 70 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  up..------------
4fc0: 2d 2d 2d 0d 0a 0d 0a 49 6e 20 6d 65 67 61 74 65  ---....In megate
4fd0: 73 74 2e 63 6f 6e 66 69 67 20 61 64 64 20 74 68  st.config add th
4fe0: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 65 63 74  e following sect
4ff0: 69 6f 6e 73 3a 0d 0a 0d 0a 2e 6d 65 67 61 74 65  ions:.....megate
5000: 73 74 2e 63 6f 6e 66 69 67 0d 0a 2d 2d 2d 2d 2d  st.config..-----
5010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 61 72 63 68  ---------..[arch
5020: 69 76 65 5d 0d 0a 23 20 77 68 65 72 65 20 74 6f  ive]..# where to
5030: 20 67 65 74 20 62 75 70 20 65 78 65 63 75 74 61   get bup executa
5040: 62 6c 65 0d 0a 23 20 62 75 70 20 2f 70 61 74 68  ble..# bup /path
5050: 2f 74 6f 2f 62 75 70 0d 0a 0d 0a 5b 61 72 63 68  /to/bup....[arch
5060: 69 76 65 2d 64 69 73 6b 73 5d 0d 0a 0d 0a 23 20  ive-disks]....# 
5070: 41 72 63 68 69 76 65 73 20 77 69 6c 6c 20 62 65  Archives will be
5080: 20 6f 72 67 61 6e 69 73 65 64 20 75 6e 64 65 72   organised under
5090: 20 74 68 65 73 65 20 70 61 74 68 73 20 6c 69 6b   these paths lik
50a0: 65 20 74 68 69 73 3a 0d 0a 23 20 20 3c 74 65 73  e this:..#  <tes
50b0: 74 73 75 69 74 65 3e 2f 3c 63 72 65 61 74 69 6f  tsuite>/<creatio
50c0: 6e 64 61 74 65 3e 0d 0a 23 20 57 69 74 68 69 6e  ndate>..# Within
50d0: 20 74 68 65 20 61 72 63 68 69 76 65 20 74 68 65   the archive the
50e0: 20 64 61 74 61 20 69 73 20 73 74 72 75 63 74 75   data is structu
50f0: 72 65 64 20 6c 69 6b 65 20 74 68 69 73 3a 0d 0a  red like this:..
5100: 23 20 20 3c 74 61 72 67 65 74 3e 2f 3c 72 75 6e  #  <target>/<run
5110: 6e 61 6d 65 3e 2f 3c 74 65 73 74 3e 2f 0d 0a 61  name>/<test>/..a
5120: 72 63 68 69 76 65 30 20 2f 6d 66 73 2f 6d 79 61  rchive0 /mfs/mya
5130: 72 63 68 69 76 65 2d 64 61 74 61 2f 61 64 69 73  rchive-data/adis
5140: 6b 31 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  k1..------------
5150: 2d 2d 0d 0a 0d 0a 48 61 6e 64 6c 69 6e 67 20 45  --....Handling E
5160: 6e 76 69 72 6f 6e 6d 65 6e 74 20 56 61 72 69 61  nvironment Varia
5170: 62 6c 65 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  bles..----------
5180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5190: 2d 2d 2d 2d 0d 0a 0d 0a 49 74 20 69 73 20 6f 66  ----....It is of
51a0: 74 65 6e 20 6e 65 63 65 73 73 61 72 79 20 74 6f  ten necessary to
51b0: 20 63 61 70 74 75 72 65 20 61 6e 64 20 6f 72 20   capture and or 
51c0: 6d 61 6e 69 70 75 6c 61 74 65 20 65 6e 76 69 72  manipulate envir
51d0: 6f 6e 6d 65 6e 74 0d 0a 76 61 72 69 61 62 6c 65  onment..variable
51e0: 73 2e 20 4d 65 67 61 74 65 73 74 20 68 61 73 20  s. Megatest has 
51f0: 73 6f 6d 65 20 66 61 63 69 6c 69 74 69 65 73 20  some facilities 
5200: 62 75 69 6c 74 20 69 6e 20 74 6f 20 68 65 6c 70  built in to help
5210: 2e 0d 0a 0d 0a 43 61 70 74 75 72 65 20 76 61 72  .....Capture var
5220: 69 61 62 6c 65 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e  iables..~~~~~~~~
5230: 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 2e 43 6f  ~~~~~~~~~.....Co
5240: 6d 6d 61 6e 64 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  mmands..--------
5250: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5260: 2d 2d 2d 2d 2d 2d 0d 0a 23 20 63 61 70 74 75 72  ------..# captur
5270: 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6e  e the current en
5280: 76 69 72 6f 6d 65 6e 74 20 69 6e 74 6f 20 61 20  viroment into a 
5290: 64 62 20 63 61 6c 6c 65 64 20 65 6e 76 64 61 74  db called envdat
52a0: 2e 64 62 20 75 6e 64 65 72 0d 0a 23 20 74 68 65  .db under..# the
52b0: 20 63 6f 6e 74 65 78 74 20 22 62 65 66 6f 72 65   context "before
52c0: 22 0d 0a 6d 65 67 61 74 65 73 74 20 2d 65 6e 76  "..megatest -env
52d0: 63 61 70 20 62 65 66 6f 72 65 0d 0a 0d 0a 23 20  cap before....# 
52e0: 63 61 70 74 75 72 65 20 74 68 65 20 63 75 72 72  capture the curr
52f0: 65 6e 74 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20  ent environment 
5300: 69 6e 74 6f 20 61 20 64 62 20 63 61 6c 6c 65 64  into a db called
5310: 20 73 74 61 72 74 75 70 2e 64 62 20 77 69 74 68   startup.db with
5320: 20 0d 0a 23 20 63 6f 6e 74 65 78 74 20 22 61 66   ..# context "af
5330: 74 65 72 22 0d 0a 6d 65 67 61 74 65 73 74 20 2d  ter"..megatest -
5340: 65 6e 76 63 61 70 20 61 66 74 65 72 20 73 74 61  envcap after sta
5350: 72 74 75 70 2e 64 62 0d 0a 0d 0a 23 20 77 72 69  rtup.db....# wri
5360: 74 65 20 74 68 65 20 64 69 66 66 20 66 72 6f 6d  te the diff from
5370: 20 62 65 66 6f 72 65 20 74 6f 20 61 66 74 65 72   before to after
5380: 0d 0a 6d 65 67 61 74 65 73 74 20 2d 65 6e 76 64  ..megatest -envd
5390: 65 6c 74 61 20 62 65 66 6f 72 65 2d 61 66 74 65  elta before-afte
53a0: 72 20 2d 64 75 6d 70 6d 6f 64 65 20 62 61 73 68  r -dumpmode bash
53b0: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
53c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
53d0: 0d 0a 0d 0a 44 75 6d 70 20 6d 6f 64 65 73 20 69  ....Dump modes i
53e0: 6e 63 6c 75 64 65 20 62 61 73 68 2c 20 63 73 68  nclude bash, csh
53f0: 20 61 6e 64 20 63 6f 6e 66 69 67 2e 20 59 6f 75   and config. You
5400: 20 63 61 6e 20 69 6e 63 6c 75 64 65 20 63 6f 6e   can include con
5410: 66 69 67 20 64 61 74 61 0d 0a 69 6e 74 6f 20 6d  fig data..into m
5420: 65 67 61 74 65 73 74 2e 63 6f 6e 66 69 67 20 6f  egatest.config o
5430: 72 20 72 75 6e 63 6f 6e 66 69 67 73 2e 63 6f 6e  r runconfigs.con
5440: 66 69 67 2e 0d 0a 0d 0a 2e 45 78 61 6d 70 6c 65  fig......Example
5450: 20 6f 66 20 67 65 6e 65 72 61 74 69 6e 67 20 61   of generating a
5460: 6e 64 20 75 73 69 6e 67 20 63 6f 6e 66 69 67 20  nd using config 
5470: 64 61 74 61 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  data..----------
5480: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5490: 2d 2d 2d 2d 0d 0a 6d 65 67 61 74 65 73 74 20 2d  ----..megatest -
54a0: 65 6e 76 63 61 70 20 6f 72 69 67 69 6e 61 6c 0d  envcap original.
54b0: 0a 23 20 64 6f 20 73 6f 6d 65 20 73 74 75 66 66  .# do some stuff
54c0: 20 68 65 72 65 0d 0a 6d 65 67 61 74 65 73 74 20   here..megatest 
54d0: 2d 65 6e 76 63 61 70 20 6d 75 6e 67 65 64 0d 0a  -envcap munged..
54e0: 6d 65 67 61 74 65 73 74 20 2d 65 6e 76 64 65 6c  megatest -envdel
54f0: 74 61 20 6f 72 69 67 69 6e 61 6c 2d 6d 75 6e 67  ta original-mung
5500: 65 64 20 2d 64 75 6d 70 6d 6f 64 65 20 69 6e 69  ed -dumpmode ini
5510: 20 2d 6f 20 6d 6f 64 69 66 69 65 64 2e 63 6f 6e   -o modified.con
5520: 66 69 67 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  fig..-----------
5530: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5540: 2d 2d 2d 0d 0a 0d 0a 54 68 65 6e 20 69 6e 20 72  ---....Then in r
5550: 75 6e 63 6f 6e 66 69 67 73 2e 63 6f 6e 66 69 67  unconfigs.config
5560: 0d 0a 0d 0a 2e 45 78 61 6d 70 6c 65 20 6f 66 20  .....Example of 
5570: 75 73 69 6e 67 20 6d 6f 64 69 66 69 65 64 2e 63  using modified.c
5580: 6f 6e 66 69 67 20 69 6e 20 61 20 74 65 73 74 63  onfig in a testc
5590: 6f 6e 66 69 67 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  onfig..---------
55a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
55b0: 2d 2d 2d 2d 2d 0d 0a 63 61 74 20 74 65 73 74 63  -----..cat testc
55c0: 6f 6e 66 69 67 0d 0a 5b 70 72 65 2d 6c 61 75 6e  onfig..[pre-laun
55d0: 63 68 2d 65 6e 76 2d 76 61 72 73 5d 0d 0a 5b 69  ch-env-vars]..[i
55e0: 6e 63 6c 75 64 65 20 6d 6f 64 69 66 69 65 64 2e  nclude modified.
55f0: 63 6f 6e 66 69 67 5d 0d 0a 2d 2d 2d 2d 2d 2d 2d  config]..-------
5600: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5610: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 4d 61 6e 61 67  -------....Manag
5620: 69 6e 67 20 4f 6c 64 20 52 75 6e 73 0d 0a 2d 2d  ing Old Runs..--
5630: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
5640: 0a 0d 0a 49 74 20 69 73 20 6f 66 74 65 6e 20 64  ...It is often d
5650: 65 73 69 72 65 64 20 74 6f 20 6b 65 65 70 20 73  esired to keep s
5660: 6f 6d 65 20 6f 6c 64 65 72 20 72 75 6e 73 20 61  ome older runs a
5670: 72 6f 75 6e 64 20 62 75 74 20 74 68 69 73 20 6d  round but this m
5680: 75 73 74 20 62 65 20 62 61 6c 61 6e 63 65 64 20  ust be balanced 
5690: 77 69 74 68 20 74 68 65 20 63 6f 73 74 73 20 6f  with the costs o
56a0: 66 20 64 69 73 6b 20 73 70 61 63 65 2e 0d 0a 0d  f disk space....
56b0: 0a 2e 20 55 73 65 20 2d 72 65 6d 6f 76 65 2d 6b  .. Use -remove-k
56c0: 65 65 70 0d 0a 2e 20 55 73 65 20 2d 61 72 63 68  eep... Use -arch
56d0: 69 76 65 20 28 63 61 6e 20 61 6c 73 6f 20 62 65  ive (can also be
56e0: 20 64 6f 6e 65 20 66 72 6f 6d 20 74 68 65 20 2d   done from the -
56f0: 72 65 6d 6f 76 65 2d 6b 65 65 70 20 69 6e 74 65  remove-keep inte
5700: 72 66 61 63 65 29 0d 0a 2e 20 75 73 65 20 2d 72  rface)... use -r
5710: 65 6d 6f 76 65 2d 72 75 6e 73 20 77 69 74 68 20  emove-runs with 
5720: 2d 6b 65 65 70 2d 72 65 63 6f 72 64 73 0d 0a 0d  -keep-records...
5730: 0a 2e 46 6f 72 20 65 61 63 68 20 74 61 72 67 65  ..For each targe
5740: 74 2c 20 72 65 6d 6f 76 65 20 61 6c 6c 20 72 75  t, remove all ru
5750: 6e 73 20 62 75 74 20 74 68 65 20 6d 6f 73 74 20  ns but the most 
5760: 72 65 63 65 6e 74 20 33 20 69 66 20 74 68 65 79  recent 3 if they
5770: 20 61 72 65 20 6f 76 65 72 20 31 20 77 65 65 6b   are over 1 week
5780: 20 6f 6c 64 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   old..----------
5790: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 20 75  -----------..# u
57a0: 73 65 20 2d 70 72 65 63 6d 64 20 27 73 6c 65 65  se -precmd 'slee
57b0: 70 20 35 3b 6e 62 66 61 6b 65 27 20 74 6f 20 6c  p 5;nbfake' to l
57c0: 69 6d 69 74 20 6f 76 65 72 6c 6f 61 64 69 6e 67  imit overloading
57d0: 20 74 68 65 20 68 6f 73 74 20 63 6f 6d 70 75 74   the host comput
57e0: 65 72 20 62 75 74 20 74 6f 20 61 6c 6c 6f 77 20  er but to allow 
57f0: 74 68 65 20 72 65 6d 6f 76 65 73 20 74 6f 20 72  the removes to r
5800: 75 6e 20 69 6e 20 70 61 72 61 6c 6c 65 6c 2e 0d  un in parallel..
5810: 0a 6d 65 67 61 74 65 73 74 20 2d 61 63 74 69 6f  .megatest -actio
5820: 6e 73 20 70 72 69 6e 74 2c 72 65 6d 6f 76 65 2d  ns print,remove-
5830: 72 75 6e 73 20 2d 72 65 6d 6f 76 65 2d 6b 65 65  runs -remove-kee
5840: 70 20 33 20 2d 74 61 72 67 65 74 20 25 2f 25 2f  p 3 -target %/%/
5850: 25 2f 25 20 2d 72 75 6e 6e 61 6d 65 20 25 20 2d  %/% -runname % -
5860: 61 67 65 20 31 77 20 2d 70 72 65 63 6d 64 20 27  age 1w -precmd '
5870: 73 6c 65 65 70 20 35 3b 6e 62 66 61 6b 65 27 22  sleep 5;nbfake'"
5880: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
5890: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 4e 65 73 74 65  -------....Neste
58a0: 64 20 52 75 6e 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  d Runs..--------
58b0: 2d 2d 2d 0d 0a 0d 0a 41 20 4d 65 67 61 74 65 73  ---....A Megates
58c0: 74 20 74 65 73 74 20 63 61 6e 20 72 75 6e 20 61  t test can run a
58d0: 20 66 75 6c 6c 20 4d 65 67 61 74 65 73 74 20 72   full Megatest r
58e0: 75 6e 20 69 6e 20 65 69 74 68 65 72 20 74 68 65  un in either the
58f0: 20 73 61 6d 65 0d 0a 4d 65 67 61 74 65 73 74 20   same..Megatest 
5900: 61 72 65 61 20 6f 72 20 69 6e 20 61 6e 6f 74 68  area or in anoth
5910: 65 72 20 61 72 65 61 2e 20 54 68 69 73 20 69 73  er area. This is
5920: 20 61 20 70 6f 77 65 72 66 75 6c 20 77 61 79 20   a powerful way 
5930: 6f 66 20 63 68 61 69 6e 69 6e 67 0d 0a 63 6f 6d  of chaining..com
5940: 70 6c 65 78 20 73 75 69 74 65 73 20 6f 66 20 74  plex suites of t
5950: 65 73 74 73 20 61 6e 64 20 6f 72 20 61 63 74 69  ests and or acti
5960: 6f 6e 73 2e 0d 0a 0d 0a 49 66 20 79 6f 75 20 61  ons.....If you a
5970: 72 65 20 6e 6f 74 20 75 73 69 6e 67 20 74 68 65  re not using the
5980: 20 63 75 72 72 65 6e 74 20 61 72 65 61 20 79 6f   current area yo
5990: 75 20 63 61 6e 20 75 73 65 20 65 7a 73 74 65 70  u can use ezstep
59a0: 73 20 74 6f 20 72 65 74 72 69 65 76 65 0d 0a 61  s to retrieve..a
59b0: 6e 64 20 73 65 74 75 70 20 74 68 65 20 73 75 62  nd setup the sub
59c0: 2d 4d 65 67 61 74 65 73 74 20 72 75 6e 20 61 72  -Megatest run ar
59d0: 65 61 2e 0d 0a 0d 0a 49 6e 20 74 68 65 20 74 65  ea.....In the te
59e0: 73 74 63 6f 6e 66 69 67 3a 0d 0a 2d 2d 2d 2d 2d  stconfig:..-----
59f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 73 75 62  ----------..[sub
5a00: 72 75 6e 5d 0d 0a 0d 0a 23 20 52 65 71 75 69 72  run]....# Requir
5a10: 65 64 3a 20 77 61 69 74 20 66 6f 72 20 74 68 65  ed: wait for the
5a20: 20 72 75 6e 20 6f 72 20 6a 75 73 74 20 6c 61 75   run or just lau
5a30: 6e 63 68 20 69 74 0d 0a 23 20 20 20 20 20 20 20  nch it..#       
5a40: 20 20 20 20 69 66 20 6e 6f 20 74 68 65 6e 20 74      if no then t
5a50: 68 65 20 72 75 6e 20 77 69 6c 6c 20 62 65 20 61  he run will be a
5a60: 6e 20 61 75 74 6f 6d 61 74 69 63 20 50 41 53 53  n automatic PASS
5a70: 20 69 72 72 65 73 70 65 63 74 69 76 65 20 6f 66   irrespective of
5a80: 20 74 68 65 20 61 63 74 75 61 6c 20 72 65 73 75   the actual resu
5a90: 6c 74 0d 0a 72 75 6e 2d 77 61 69 74 20 79 65 73  lt..run-wait yes
5aa0: 7c 6e 6f 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61  |no....# Optiona
5ab0: 6c 3a 20 77 68 65 72 65 20 74 6f 20 65 78 65 63  l: where to exec
5ac0: 75 74 65 20 74 68 65 20 72 75 6e 2e 20 44 65 66  ute the run. Def
5ad0: 61 75 6c 74 20 69 73 20 74 68 65 20 63 75 72 72  ault is the curr
5ae0: 65 6e 74 20 72 75 6e 61 72 65 61 0d 0a 72 75 6e  ent runarea..run
5af0: 2d 61 72 65 61 20 2f 73 6f 6d 65 2f 70 61 74 68  -area /some/path
5b00: 2f 74 6f 2f 6d 65 67 61 74 65 73 74 2f 61 72 65  /to/megatest/are
5b10: 61 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61 6c 3a  a....# Optional:
5b20: 20 6d 65 74 68 6f 64 20 74 6f 20 75 73 65 20 74   method to use t
5b30: 6f 20 64 65 74 65 72 6d 69 6e 65 20 70 61 73 73  o determine pass
5b40: 2f 66 61 69 6c 20 73 74 61 74 75 73 20 6f 66 20  /fail status of 
5b50: 74 68 65 20 72 75 6e 0d 0a 23 20 20 20 61 75 74  the run..#   aut
5b60: 6f 20 28 64 65 66 61 75 6c 74 29 20 2d 20 72 6f  o (default) - ro
5b70: 6c 6c 20 75 70 20 74 68 65 20 6e 65 74 20 73 74  ll up the net st
5b80: 61 74 65 2f 73 74 61 74 75 73 20 6f 66 20 74 68  ate/status of th
5b90: 65 20 73 75 62 2d 72 75 6e 0d 0a 23 20 20 20 6c  e sub-run..#   l
5ba0: 6f 67 70 72 6f 20 20 20 20 20 20 20 20 20 2d 20  ogpro         - 
5bb0: 75 73 65 20 74 68 65 20 70 72 6f 76 69 64 65 64  use the provided
5bc0: 20 6c 6f 67 70 72 6f 20 72 75 6c 65 73 2c 20 68   logpro rules, h
5bd0: 61 70 70 65 6e 73 20 61 75 74 6f 6d 61 74 69 63  appens automatic
5be0: 61 6c 6c 79 20 69 66 20 74 68 65 72 65 20 69 73  ally if there is
5bf0: 20 61 20 6c 6f 67 70 72 6f 20 73 65 63 74 69 6f   a logpro sectio
5c00: 6e 0d 0a 23 20 70 61 73 73 66 61 69 6c 20 61 75  n..# passfail au
5c10: 74 6f 7c 6c 6f 67 70 72 6f 0d 0a 23 20 45 78 61  to|logpro..# Exa
5c20: 6d 70 6c 65 20 6f 66 20 6c 6f 67 70 72 6f 3a 0d  mple of logpro:.
5c30: 0a 70 61 73 73 66 61 69 6c 20 6c 6f 67 70 72 6f  .passfail logpro
5c40: 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61 6c 3a 20  ....# Optional: 
5c50: 0d 0a 6c 6f 67 70 72 6f 20 3b 3b 20 69 66 20 74  ..logpro ;; if t
5c60: 68 69 73 20 73 65 63 74 69 6f 6e 20 65 78 69 73  his section exis
5c70: 74 73 20 74 68 65 6e 20 6c 6f 67 70 72 6f 20 69  ts then logpro i
5c80: 73 20 75 73 65 64 20 74 6f 20 64 65 74 65 72 6d  s used to determ
5c90: 69 6e 65 20 70 61 73 73 2f 66 61 69 6c 0d 0a 20  ine pass/fail.. 
5ca0: 20 28 65 78 70 65 63 74 3a 72 65 71 75 69 72 65   (expect:require
5cb0: 64 20 69 6e 20 22 4c 6f 67 46 69 6c 65 42 6f 64  d in "LogFileBod
5cc0: 79 22 20 3e 3d 20 31 20 22 41 74 20 6c 65 61 73  y" >= 1 "At leas
5cd0: 74 20 6f 6e 65 20 70 61 73 73 22 20 23 2f 50 41  t one pass" #/PA
5ce0: 53 53 2f 29 0d 0a 20 20 28 65 78 70 65 63 74 3a  SS/)..  (expect:
5cf0: 65 72 72 6f 72 20 20 20 20 20 69 6e 20 22 4c 6f  error     in "Lo
5d00: 67 46 69 6c 65 42 6f 64 79 22 20 20 3d 20 30 20  gFileBody"  = 0 
5d10: 22 4e 6f 20 46 41 49 4c 73 20 61 6c 6c 6f 77 65  "No FAILs allowe
5d20: 64 22 20 20 23 2f 46 41 49 4c 2f 29 0d 0a 0d 0a  d"  #/FAIL/)....
5d30: 23 20 4f 70 74 69 6f 6e 61 6c 3a 20 74 61 72 67  # Optional: targ
5d40: 65 74 20 74 72 61 6e 73 6c 61 74 6f 72 2c 20 64  et translator, d
5d50: 65 66 61 75 6c 74 20 69 73 20 74 6f 20 75 73 65  efault is to use
5d60: 20 74 68 65 20 70 61 72 65 6e 74 20 74 61 72 67   the parent targ
5d70: 65 74 0d 0a 74 61 72 67 65 74 20 23 7b 73 68 65  et..target #{she
5d80: 6c 6c 20 73 6f 6d 65 73 63 72 69 70 74 2e 73 68  ll somescript.sh
5d90: 7d 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61 6c 3a  }....# Optional:
5da0: 20 72 75 6e 6e 61 6d 65 20 74 72 61 6e 73 6c 61   runname transla
5db0: 74 6f 72 2f 67 65 6e 65 72 61 74 6f 72 2c 20 64  tor/generator, d
5dc0: 65 66 61 75 6c 74 20 69 73 20 74 6f 20 75 73 65  efault is to use
5dd0: 20 74 68 65 20 70 61 72 65 6e 74 20 72 75 6e 6e   the parent runn
5de0: 61 6d 65 0d 0a 72 75 6e 2d 6e 61 6d 65 20 23 7b  ame..run-name #{
5df0: 73 6f 6d 65 73 63 72 69 70 74 2e 73 68 7d 0d 0a  somescript.sh}..
5e00: 0d 0a 23 20 4f 70 74 69 6f 6e 61 6c 3a 20 74 65  ..# Optional: te
5e10: 73 74 70 61 74 74 20 73 70 65 63 2c 20 64 65 66  stpatt spec, def
5e20: 61 75 6c 74 20 69 73 20 74 6f 20 66 69 72 73 74  ault is to first
5e30: 20 6c 6f 6f 6b 20 66 6f 72 20 54 45 53 54 50 41   look for TESTPA
5e40: 54 54 20 73 70 65 63 20 66 72 6f 6d 20 72 75 6e  TT spec from run
5e50: 63 6f 6e 66 69 67 73 20 75 6e 6c 65 73 73 20 74  configs unless t
5e60: 68 65 72 65 20 69 73 20 61 20 63 6f 6e 74 6f 75  here is a contou
5e70: 72 20 73 70 65 63 0d 0a 74 65 73 74 2d 70 61 74  r spec..test-pat
5e80: 74 20 25 2f 69 74 65 6d 31 2c 74 65 73 74 32 0d  t %/item1,test2.
5e90: 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61 6c 3a 20 63  ...# Optional: c
5ea0: 6f 6e 74 6f 75 72 20 73 70 65 63 2c 20 75 73 65  ontour spec, use
5eb0: 20 74 68 65 20 6e 61 6d 65 64 20 63 6f 6e 74 6f   the named conto
5ec0: 75 72 20 66 72 6f 6d 20 74 68 65 20 6d 65 67 61  ur from the mega
5ed0: 74 65 73 74 2e 63 6f 6e 66 69 67 20 63 6f 6e 74  test.config cont
5ee0: 6f 75 72 20 73 70 65 63 0d 0a 63 6f 6e 74 6f 75  our spec..contou
5ef0: 72 20 63 6f 6e 74 6f 75 72 6e 61 6d 65 20 23 23  r contourname ##
5f00: 23 20 4e 4f 54 45 3a 20 4e 6f 74 20 69 6d 70 6c  # NOTE: Not impl
5f10: 65 6d 65 6e 74 65 64 20 79 65 74 21 20 4c 65 74  emented yet! Let
5f20: 20 75 73 20 6b 6e 6f 77 20 69 66 20 79 6f 75 20   us know if you 
5f30: 6e 65 65 64 20 74 68 69 73 20 66 65 61 74 75 72  need this featur
5f40: 65 2e 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61 6c  e.....# Optional
5f50: 3a 20 6d 6f 64 65 2d 70 61 74 74 2c 20 75 73 65  : mode-patt, use
5f60: 20 74 68 69 73 20 73 70 65 63 20 66 6f 72 20 74   this spec for t
5f70: 65 73 74 70 61 74 74 20 66 72 6f 6d 20 72 75 6e  estpatt from run
5f80: 63 6f 6e 66 69 67 73 0d 0a 6d 6f 64 65 2d 70 61  configs..mode-pa
5f90: 74 74 20 54 45 53 54 50 41 54 54 0d 0a 0d 0a 23  tt TESTPATT....#
5fa0: 20 4f 70 74 69 6f 6e 61 6c 3a 20 74 61 67 2d 65   Optional: tag-e
5fb0: 78 70 72 2c 20 75 73 65 20 74 68 69 73 20 74 61  xpr, use this ta
5fc0: 67 2d 65 78 70 72 20 74 6f 20 73 65 6c 65 63 74  g-expr to select
5fd0: 20 74 65 73 74 73 0d 0a 74 61 67 2d 65 78 70 72   tests..tag-expr
5fe0: 20 71 75 69 63 6b 0d 0a 0d 0a 23 20 4f 70 74 69   quick....# Opti
5ff0: 6f 6e 61 6c 3a 20 28 6e 6f 74 20 79 65 74 20 69  onal: (not yet i
6000: 6d 70 6c 65 6d 65 6e 74 65 64 2c 20 72 65 6d 6f  mplemented, remo
6010: 76 65 2d 72 75 6e 73 20 69 73 20 61 6c 77 61 79  ve-runs is alway
6020: 73 20 70 72 6f 70 61 67 61 74 65 64 20 61 74 20  s propagated at 
6030: 74 68 69 73 20 74 69 6d 65 29 2c 20 70 72 6f 70  this time), prop
6040: 61 67 61 74 65 20 74 68 65 73 65 20 61 63 74 69  agate these acti
6050: 6f 6e 73 20 66 72 6f 6d 20 74 68 65 20 70 61 72  ons from the par
6060: 65 6e 74 0d 0a 23 20 20 20 20 20 20 20 20 20 20  ent..#          
6070: 20 74 65 73 74 0d 0a 23 20 20 20 4e 6f 74 65 2f   test..#   Note/
6080: 2f 20 64 65 66 61 75 6c 74 20 69 73 20 25 20 66  / default is % f
6090: 6f 72 20 61 6c 6c 0d 0a 70 72 6f 70 61 67 61 74  or all..propagat
60a0: 65 20 72 65 6d 6f 76 65 2d 72 75 6e 73 20 61 72  e remove-runs ar
60b0: 63 68 69 76 65 20 2e 2e 2e 0d 0a 0d 0a 2d 2d 2d  chive .......---
60c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
60d0: 50 72 6f 67 72 61 6d 6d 69 6e 67 20 41 50 49 0d  Programming API.
60e0: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .---------------
60f0: 0d 0a 0d 0a 54 68 65 73 65 20 72 6f 75 74 69 6e  ....These routin
6100: 65 73 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 64  es can be called
6110: 20 66 72 6f 6d 20 74 68 65 20 6d 65 67 61 74 65   from the megate
6120: 73 74 20 72 65 70 6c 2e 20 0d 0a 0d 0a 2e 41 50  st repl. .....AP
6130: 49 20 4b 65 79 73 20 52 65 6c 61 74 65 64 20 43  I Keys Related C
6140: 61 6c 6c 73 0d 0a 5b 77 69 64 74 68 3d 22 37 30  alls..[width="70
6150: 25 22 2c 63 6f 6c 73 3d 22 5e 2c 32 6d 2c 32 6d  %",cols="^,2m,2m
6160: 2c 32 6d 22 2c 66 72 61 6d 65 3d 22 74 6f 70 62  ,2m",frame="topb
6170: 6f 74 22 2c 6f 70 74 69 6f 6e 73 3d 22 68 65 61  ot",options="hea
6180: 64 65 72 2c 66 6f 6f 74 65 72 22 5d 0d 0a 7c 3d  der,footer"]..|=
6190: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
61a0: 3d 3d 3d 3d 3d 0d 0a 7c 41 50 49 20 43 61 6c 6c  =====..|API Call
61b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
61c0: 20 20 20 20 20 20 20 20 7c 20 50 75 72 70 6f 73          | Purpos
61d0: 65 20 63 6f 6d 6d 65 6e 74 73 20 20 20 7c 20 52  e comments   | R
61e0: 65 74 75 72 6e 73 20 20 20 20 20 20 20 20 20 20  eturns          
61f0: 20 20 20 20 20 20 20 7c 20 43 6f 6d 6d 65 6e 74         | Comment
6200: 73 0d 0a 7c 28 72 6d 74 3a 67 65 74 2d 6b 65 79  s..|(rmt:get-key
6210: 73 20 72 75 6e 2d 69 64 29 20 20 20 20 20 20 20  s run-id)       
6220: 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20      |           
6230: 20 20 20 20 20 20 20 20 20 7c 20 28 20 6b 65 79           | ( key
6240: 31 20 6b 65 79 32 20 2e 2e 2e 20 29 20 20 20 20  1 key2 ... )    
6250: 20 20 20 7c 20 0d 0a 7c 20 28 72 6d 74 3a 67 65     | ..| (rmt:ge
6260: 74 2d 6b 65 79 2d 76 61 6c 2d 70 61 69 72 73 20  t-key-val-pairs 
6270: 72 75 6e 2d 69 64 29 20 7c 20 20 20 20 20 20 20  run-id) |       
6280: 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 23               | #
6290: 74 3d 73 75 63 63 65 73 73 2f 23 66 3d 66 61 69  t=success/#f=fai
62a0: 6c 20 20 20 20 20 20 7c 20 57 6f 72 6b 73 20 6f  l      | Works o
62b0: 6e 6c 79 20 69 66 20 74 68 65 20 73 65 72 76 65  nly if the serve
62c0: 72 20 69 73 20 73 74 69 6c 6c 20 72 65 61 63 68  r is still reach
62d0: 61 62 6c 65 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d  able..|=========
62e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d  =============...
62f0: 0a 0d 0a 3a 6e 75 6d 62 65 72 65 64 21 3a 0d 0a  ...:numbered!:..
6300: 0a 5a 20 34 65 39 63 63 36 61 65 61 61 34 65 64  .Z 4e9cc6aeaa4ed
6310: 30 63 62 62 35 34 37 37 32 62 35 33 64 39 33 61  0cbb54772b53d93a
6320: 64 63 36 0a                                      dc6.