Megatest

Hex Artifact Content
Login

Artifact ce07c2e8f36cb633a3af130c99e2b5e7314078e6:

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