Megatest

Hex Artifact Content
Login

Artifact 70bb7186b672af973f665c245a1578e2c2015780:

Wiki page [reference] by mrwellan 2018-02-15 10:44:59.
0000: 44 20 32 30 31 38 2d 30 32 2d 31 35 54 31 37 3a  D 2018-02-15T17:
0010: 34 34 3a 35 39 2e 30 34 34 0a 4c 20 72 65 66 65  44:59.044.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 37 64 38 63 36 39 64 31 61 66 62  in.P 7d8c69d1afb
0040: 65 33 32 66 63 63 39 34 33 66 35 36 35 66 62 32  e32fcc943f565fb2
0050: 66 30 36 64 63 61 31 35 34 30 38 63 37 0a 55 20  f06dca15408c7.U 
0060: 6d 72 77 65 6c 6c 61 6e 0a 57 20 32 33 30 31 33  mrwellan.W 23013
0070: 0a 52 65 66 65 72 65 6e 63 65 0d 0a 2d 2d 2d 2d  .Reference..----
0080: 2d 2d 2d 2d 2d 0d 0a 0d 0a 43 6f 6e 66 69 67 20  -----....Config 
0090: 46 69 6c 65 20 48 65 6c 70 65 72 73 0d 0a 7e 7e  File Helpers..~~
00a0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
00b0: 7e 0d 0a 0d 0a 56 61 72 69 6f 75 73 20 68 65 6c  ~....Various hel
00c0: 70 65 72 73 20 66 6f 72 20 6d 6f 72 65 20 61 64  pers for more ad
00d0: 76 61 6e 63 65 64 20 63 6f 6e 66 69 67 20 66 69  vanced config fi
00e0: 6c 65 73 2e 0d 0a 0d 0a 2e 48 65 6c 70 65 72 73  les......Helpers
00f0: 0d 0a 5b 77 69 64 74 68 3d 22 38 30 25 22 2c 63  ..[width="80%",c
0100: 6f 6c 73 3d 22 5e 2c 32 6d 2c 32 6d 2c 32 6d 22  ols="^,2m,2m,2m"
0110: 2c 66 72 61 6d 65 3d 22 74 6f 70 62 6f 74 22 2c  ,frame="topbot",
0120: 6f 70 74 69 6f 6e 73 3d 22 68 65 61 64 65 72 22  options="header"
0130: 5d 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ]..|============
0140: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 7c 48 65 6c  ==========..|Hel
0150: 70 65 72 20 20 20 20 20 20 20 20 20 20 20 20 20  per             
0160: 20 20 20 20 20 20 20 20 20 7c 20 50 75 72 70 6f           | Purpo
0170: 73 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20  se              
0180: 20 20 20 20 20 20 20 20 20 7c 20 56 61 6c 69 64           | Valid
0190: 20 76 61 6c 75 65 73 20 20 20 20 20 20 20 20 20   values         
01a0: 20 20 20 7c 20 43 6f 6d 6d 65 6e 74 73 0d 0a 7c     | Comments..|
01b0: 20 23 7b 73 63 68 65 6d 65 20 28 73 63 68 65 6d   #{scheme (schem
01c0: 65 20 63 6f 64 65 2e 2e 2e 29 7d 20 7c 20 45 78  e code...)} | Ex
01d0: 65 63 75 74 65 20 61 72 62 69 74 72 61 72 79 20  ecute arbitrary 
01e0: 73 63 68 65 6d 65 20 63 6f 64 65 20 7c 20 41 6e  scheme code | An
01f0: 79 20 76 61 6c 69 64 20 73 63 68 65 6d 65 20 20  y valid scheme  
0200: 20 20 20 20 20 20 7c 20 56 61 6c 75 65 20 72 65        | Value re
0210: 74 75 72 6e 65 64 20 66 72 6f 6d 20 74 68 65 20  turned from the 
0220: 63 61 6c 6c 20 69 73 20 63 6f 6e 76 65 72 74 65  call is converte
0230: 64 20 74 6f 20 61 20 73 74 72 69 6e 67 20 61 6e  d to a string an
0240: 64 20 70 72 6f 63 65 73 73 65 64 20 61 73 20 70  d processed as p
0250: 61 72 74 20 6f 66 20 74 68 65 20 63 6f 6e 66 69  art of the confi
0260: 67 20 66 69 6c 65 0d 0a 7c 20 23 7b 73 79 73 74  g file..| #{syst
0270: 65 6d 20 63 6f 6d 6d 61 6e 64 7d 20 20 20 20 20  em command}     
0280: 20 20 20 20 20 7c 20 45 78 65 63 75 74 65 20 70       | Execute p
0290: 72 6f 67 72 61 6d 2c 20 69 6e 73 65 72 74 73 20  rogram, inserts 
02a0: 65 78 69 74 20 63 6f 64 65 20 20 7c 20 41 6e 79  exit code  | Any
02b0: 20 76 61 6c 69 64 20 55 6e 69 78 20 63 6f 6d 6d   valid Unix comm
02c0: 61 6e 64 20 20 7c 20 44 69 73 63 61 72 64 73 20  and  | Discards 
02d0: 74 68 65 20 6f 75 74 70 75 74 20 66 72 6f 6d 20  the output from 
02e0: 74 68 65 20 70 72 6f 67 72 61 6d 0d 0a 7c 20 23  the program..| #
02f0: 7b 73 68 65 6c 6c 20 20 63 6f 6d 6d 61 6e 64 7d  {shell  command}
0300: 20 6f 72 20 23 7b 73 68 20 2e 2e 2e 7d 20 20 7c   or #{sh ...}  |
0310: 20 45 78 65 63 75 74 65 20 70 72 6f 67 72 61 6d   Execute program
0320: 2c 20 69 6e 73 65 72 74 73 20 72 65 73 75 6c 74  , inserts result
0330: 20 66 72 6f 6d 20 73 74 64 6f 75 74 20 7c 20 41   from stdout | A
0340: 6e 79 20 76 61 6c 69 64 20 55 6e 69 78 20 63 6f  ny valid Unix co
0350: 6d 6d 61 6e 64 20 7c 20 56 61 6c 75 65 20 72 65  mmand | Value re
0360: 74 75 72 6e 65 64 20 66 72 6f 6d 20 74 68 65 20  turned from the 
0370: 63 61 6c 6c 20 69 73 20 63 6f 6e 76 65 72 74 65  call is converte
0380: 64 20 74 6f 20 61 20 73 74 72 69 6e 67 20 61 6e  d to a string an
0390: 64 20 70 72 6f 63 65 73 73 65 64 20 61 73 20 70  d processed as p
03a0: 61 72 74 20 6f 66 20 74 68 65 20 63 6f 6e 66 69  art of the confi
03b0: 67 20 66 69 6c 65 0d 0a 7c 20 23 7b 72 65 61 6c  g file..| #{real
03c0: 70 61 74 68 20 70 61 74 68 7d 20 6f 72 20 23 7b  path path} or #{
03d0: 72 70 20 2e 2e 2e 7d 20 20 20 7c 20 52 65 70 6c  rp ...}   | Repl
03e0: 61 63 65 20 77 69 74 68 20 6e 6f 72 6d 61 6c 69  ace with normali
03f0: 7a 65 64 20 70 61 74 68 20 7c 20 4d 75 73 74 20  zed path | Must 
0400: 62 65 20 61 20 76 61 6c 69 64 20 70 61 74 68 20  be a valid path 
0410: 7c 0d 0a 7c 20 23 7b 67 65 74 65 6e 76 20 56 41  |..| #{getenv VA
0420: 52 7d 20 6f 72 20 23 7b 67 76 20 56 41 52 7d 20  R} or #{gv VAR} 
0430: 20 20 20 20 20 7c 20 52 65 70 6c 61 63 65 20 77       | Replace w
0440: 69 74 68 20 63 6f 6e 74 65 6e 74 20 6f 66 20 65  ith content of e
0450: 6e 76 20 76 61 72 69 61 62 6c 65 20 7c 20 4d 75  nv variable | Mu
0460: 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 76 61  st be a valid va
0470: 72 20 7c 0d 0a 7c 20 23 7b 67 65 74 20 73 20 76  r |..| #{get s v
0480: 7d 20 6f 72 20 23 7b 67 20 73 20 76 7d 20 20 20  } or #{g s v}   
0490: 20 20 7c 20 52 65 70 6c 61 63 65 20 77 69 74 68    | Replace with
04a0: 20 76 61 72 69 61 62 6c 65 20 76 20 66 72 6f 6d   variable v from
04b0: 20 73 65 63 74 69 6f 6e 20 73 20 7c 20 56 61 72   section s | Var
04c0: 69 61 62 6c 65 20 6d 75 73 74 20 62 65 20 64 65  iable must be de
04d0: 66 69 6e 65 64 20 62 65 66 6f 72 65 20 75 73 65  fined before use
04e0: 20 7c 0d 0a 7c 20 23 7b 72 67 65 74 20 76 7d 20   |..| #{rget v} 
04f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0500: 20 7c 20 52 65 70 6c 61 63 65 20 77 69 74 68 20   | Replace with 
0510: 76 61 72 69 61 62 6c 65 20 76 20 66 72 6f 6d 20  variable v from 
0520: 74 61 72 67 65 74 20 6f 72 20 64 65 66 61 75 6c  target or defaul
0530: 74 20 6f 66 20 72 75 6e 63 6f 6e 66 69 67 73 20  t of runconfigs 
0540: 66 69 6c 65 20 7c 20 7c 0d 0a 7c 20 23 7b 6d 74  file | |..| #{mt
0550: 72 61 68 7d 20 20 20 20 20 20 20 20 20 20 20 20  rah}            
0560: 20 20 20 20 20 20 20 7c 20 52 65 70 6c 61 63 65         | Replace
0570: 20 77 69 74 68 20 74 68 65 20 70 61 74 68 20 74   with the path t
0580: 6f 20 74 68 65 20 6d 65 67 61 74 65 73 74 20 74  o the megatest t
0590: 65 73 74 73 75 69 74 65 20 61 72 65 61 20 7c 20  estsuite area | 
05a0: 7c 20 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  | ..|===========
05b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 43  ===========....C
05c0: 6f 6e 66 69 67 20 46 69 6c 65 20 53 65 74 74 69  onfig File Setti
05d0: 6e 67 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ngs..~~~~~~~~~~~
05e0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 53 65 74  ~~~~~~~~~....Set
05f0: 74 69 6e 67 73 20 69 6e 20 6d 65 67 61 74 65 73  tings in megates
0600: 74 2e 63 6f 6e 66 69 67 0d 0a 0d 0a 43 6f 6e 66  t.config....Conf
0610: 69 67 20 46 69 6c 65 20 41 64 64 69 74 69 6f 6e  ig File Addition
0620: 61 6c 20 46 65 61 74 75 72 65 73 0d 0a 7e 7e 7e  al Features..~~~
0630: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
0640: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a  ~~~~~~~~~~~~....
0650: 49 6e 63 6c 75 64 69 6e 67 20 6f 75 74 70 75 74  Including output
0660: 20 66 72 6f 6d 20 61 20 73 63 72 69 70 74 20 61   from a script a
0670: 73 20 69 66 20 69 74 20 77 61 73 20 69 6e 6c 69  s if it was inli
0680: 6e 65 20 74 6f 20 74 68 65 20 63 6f 6e 66 69 67  ne to the config
0690: 20 66 69 6c 65 3a 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d   file:....------
06a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
06b0: 2d 2d 2d 0d 0a 5b 73 63 72 69 70 74 69 6e 63 20  ---..[scriptinc 
06c0: 6d 79 73 63 72 69 70 74 2e 73 68 5d 0d 0a 2d 2d  myscript.sh]..--
06d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
06e0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 49 66 20 74 68  -------....If th
06f0: 65 20 73 63 72 69 70 74 20 6f 75 74 70 75 74 73  e script outputs
0700: 3a 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  :....-----------
0710: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
0720: 5b 69 74 65 6d 73 5d 0d 0a 41 20 61 20 62 20 63  [items]..A a b c
0730: 0d 0a 42 20 64 20 65 20 66 0d 0a 2d 2d 2d 2d 2d  ..B d e f..-----
0740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0750: 2d 2d 2d 2d 0d 0a 0d 0a 54 68 65 6e 20 74 68 65  ----....Then the
0760: 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 77 6f 75   config file wou
0770: 6c 64 20 65 66 66 65 63 74 69 76 65 6c 79 20 61  ld effectively a
0780: 70 70 65 61 72 20 74 6f 20 63 6f 6e 74 61 69 6e  ppear to contain
0790: 20 61 6e 20 69 74 65 6d 73 20 73 65 63 74 69 6f   an items sectio
07a0: 6e 0d 0a 65 78 61 63 74 6c 79 20 6c 69 6b 65 20  n..exactly like 
07b0: 74 68 65 20 6f 75 74 70 75 74 20 66 72 6f 6d 20  the output from 
07c0: 74 68 65 20 73 63 72 69 70 74 2e 20 54 68 69 73  the script. This
07d0: 20 69 73 20 75 73 65 66 75 6c 20 77 68 65 6e 20   is useful when 
07e0: 64 79 6e 61 6d 69 63 61 6c 6c 79 0d 0a 63 72 65  dynamically..cre
07f0: 61 74 69 6e 67 20 69 74 65 6d 73 2c 20 69 74 65  ating items, ite
0800: 6d 73 74 61 62 6c 65 73 20 61 6e 64 20 6f 74 68  mstables and oth
0810: 65 72 20 63 6f 6e 66 69 67 20 73 74 72 75 63 74  er config struct
0820: 75 72 65 73 2e 20 59 6f 75 20 63 61 6e 20 73 65  ures. You can se
0830: 65 20 74 68 65 0d 0a 65 78 70 61 6e 73 69 6f 6e  e the..expansion
0840: 20 6f 66 20 74 68 65 20 63 61 6c 6c 20 62 79 20   of the call by 
0850: 6c 6f 6f 6b 69 6e 67 20 69 6e 20 74 68 65 20 63  looking in the c
0860: 61 63 68 65 64 20 66 69 6c 65 73 20 28 6c 6f 6f  ached files (loo
0870: 6b 20 69 6e 20 79 6f 75 72 20 6c 69 6e 6b 74 72  k in your linktr
0880: 65 65 0d 0a 66 6f 72 20 6d 65 67 61 74 65 73 74  ee..for megatest
0890: 2e 63 6f 6e 66 69 67 20 61 6e 64 20 72 75 6e 63  .config and runc
08a0: 6f 6e 66 69 67 73 2e 63 6f 6e 66 69 67 20 63 61  onfigs.config ca
08b0: 63 68 65 20 66 69 6c 65 73 20 61 6e 64 20 69 6e  che files and in
08c0: 20 79 6f 75 72 20 74 65 73 74 20 72 75 6e 0d 0a   your test run..
08d0: 61 72 65 61 73 20 66 6f 72 20 74 68 65 20 65 78  areas for the ex
08e0: 70 61 6e 64 65 64 20 61 6e 64 20 63 61 63 68 65  panded and cache
08f0: 64 20 74 65 73 74 63 6f 6e 66 69 67 29 2e 0d 0a  d testconfig)...
0900: 0d 0a 57 69 6c 64 63 61 72 64 73 20 61 6e 64 20  ..Wildcards and 
0910: 72 65 67 65 78 65 73 20 69 6e 20 54 61 72 67 65  regexes in Targe
0920: 74 73 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ts....----------
0930: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
0940: 0a 5b 61 2f 32 2f 62 5d 0d 0a 56 41 52 31 20 56  .[a/2/b]..VAR1 V
0950: 41 4c 31 0d 0a 0d 0a 5b 61 2f 25 2f 62 5d 0d 0a  AL1....[a/%/b]..
0960: 56 41 52 31 20 56 41 4c 32 0d 0a 2d 2d 2d 2d 2d  VAR1 VAL2..-----
0970: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0980: 2d 2d 2d 2d 0d 0a 0d 0a 57 69 6c 6c 20 72 65 73  ----....Will res
0990: 75 6c 74 20 69 6e 3a 0d 0a 0d 0a 2d 2d 2d 2d 2d  ult in:....-----
09a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
09b0: 2d 2d 2d 2d 0d 0a 5b 61 2f 32 2f 62 5d 0d 0a 56  ----..[a/2/b]..V
09c0: 41 52 31 20 56 41 4c 32 0d 0a 2d 2d 2d 2d 2d 2d  AR1 VAL2..------
09d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
09e0: 2d 2d 2d 0d 0a 0d 0a 43 61 6e 20 75 73 65 20 65  ---....Can use e
09f0: 69 74 68 65 72 20 77 69 6c 64 63 61 72 64 20 6f  ither wildcard o
0a00: 66 20 22 25 22 20 6f 72 20 61 20 72 65 67 75 6c  f "%" or a regul
0a10: 61 72 20 65 78 70 72 65 73 73 69 6f 6e 3a 0d 0a  ar expression:..
0a20: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
0a30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 2f 61  -----------..[/a
0a40: 62 63 2e 2a 64 65 66 2f 5d 0d 0a 2d 2d 2d 2d 2d  bc.*def/]..-----
0a50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0a60: 2d 2d 2d 2d 0d 0a 0d 0a 44 69 73 6b 20 53 70 61  ----....Disk Spa
0a70: 63 65 20 43 68 65 63 6b 73 0d 0a 5e 5e 5e 5e 5e  ce Checks..^^^^^
0a80: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a  ^^^^^^^^^^^^....
0a90: 53 6f 6d 65 20 70 61 72 61 6d 65 74 65 72 73 20  Some parameters 
0aa0: 79 6f 75 20 63 61 6e 20 70 75 74 20 69 6e 20 74  you can put in t
0ab0: 68 65 20 5b 73 65 74 75 70 5d 20 73 65 63 74 69  he [setup] secti
0ac0: 6f 6e 20 6f 66 20 6d 65 67 61 74 65 73 74 2e 63  on of megatest.c
0ad0: 6f 6e 66 69 67 3a 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d  onfig:....------
0ae0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23  -------------..#
0af0: 20 6d 69 6e 69 6d 75 6d 20 73 70 61 63 65 20 72   minimum space r
0b00: 65 71 75 69 72 65 64 20 69 6e 20 61 20 72 75 6e  equired in a run
0b10: 20 64 69 73 6b 20 0d 0a 6d 69 6e 73 70 61 63 65   disk ..minspace
0b20: 20 31 30 30 30 30 30 30 30 0d 0a 0d 0a 23 20 6d   10000000....# m
0b30: 69 6e 69 6d 75 6d 20 73 70 61 63 65 20 72 65 71  inimum space req
0b40: 75 69 72 65 64 20 69 6e 20 64 62 64 69 72 3a 0d  uired in dbdir:.
0b50: 0a 64 62 64 69 72 2d 73 70 61 63 65 2d 72 65 71  .dbdir-space-req
0b60: 75 69 72 65 64 20 31 30 30 30 30 30 0d 0a 0d 0a  uired 100000....
0b70: 23 20 73 63 72 69 70 74 20 74 68 61 74 20 74 61  # script that ta
0b80: 6b 65 73 20 70 61 74 68 20 61 73 20 70 61 72 61  kes path as para
0b90: 6d 65 74 65 72 20 61 6e 64 20 72 65 74 75 72 6e  meter and return
0ba0: 73 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65  s number of byte
0bb0: 73 20 61 76 61 69 6c 61 62 6c 65 3a 0d 0a 66 72  s available:..fr
0bc0: 65 65 2d 73 70 61 63 65 2d 73 63 72 69 70 74 20  ee-space-script 
0bd0: 63 68 65 63 6b 2d 73 70 61 63 65 2e 73 68 0d 0a  check-space.sh..
0be0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0bf0: 2d 2d 2d 0d 0a 0d 0a 54 72 69 6d 20 74 72 61 69  ---....Trim trai
0c00: 6c 69 6e 67 20 73 70 61 63 65 73 0d 0a 5e 5e 5e  ling spaces..^^^
0c10: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ^^^^^^^^^^^^^^^^
0c20: 5e 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ^....-----------
0c30: 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 63 6f 6e 66 69 67  -------..[config
0c40: 66 3a 73 65 74 74 69 6e 67 73 20 74 72 69 6d 2d  f:settings trim-
0c50: 74 72 61 69 6c 69 6e 67 2d 73 70 61 63 65 73 20  trailing-spaces 
0c60: 79 65 73 5d 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  yes]..----------
0c70: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 4a 6f 62 20  --------....Job 
0c80: 53 75 62 6d 69 73 73 69 6f 6e 20 43 6f 6e 74 72  Submission Contr
0c90: 6f 6c 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ol..^^^^^^^^^^^^
0ca0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 53 75  ^^^^^^^^^^....Su
0cb0: 62 6d 69 74 20 6a 6f 62 73 20 74 6f 20 48 6f 73  bmit jobs to Hos
0cc0: 74 20 54 79 70 65 73 20 62 61 73 65 64 20 6f 6e  t Types based on
0cd0: 20 54 65 73 74 20 4e 61 6d 65 0d 0a 2b 2b 2b 2b   Test Name..++++
0ce0: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b  ++++++++++++++++
0cf0: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b  ++++++++++++++++
0d00: 2b 2b 2b 2b 2b 2b 2b 2b 0d 0a 0d 0a 2e 49 6e 20  ++++++++.....In 
0d10: 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 69 67 0d  megatest.config.
0d20: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .---------------
0d30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 68 6f 73 74  ---------..[host
0d40: 2d 74 79 70 65 73 5d 0d 0a 67 65 6e 65 72 61 6c  -types]..general
0d50: 20 20 20 6e 62 66 61 6b 65 0d 0a 72 65 6d 6f 74     nbfake..remot
0d60: 65 20 20 20 20 62 73 75 62 0d 0a 0d 0a 5b 6c 61  e    bsub....[la
0d70: 75 6e 63 68 65 72 73 5d 0d 0a 72 75 6e 66 69 72  unchers]..runfir
0d80: 73 74 2f 73 75 6d 25 20 72 65 6d 6f 74 65 0d 0a  st/sum% remote..
0d90: 25 20 67 65 6e 65 72 61 6c 0d 0a 0d 0a 5b 6a 6f  % general....[jo
0da0: 62 74 6f 6f 6c 73 5d 0d 0a 6c 61 75 6e 63 68 65  btools]..launche
0db0: 72 20 62 73 75 62 0d 0a 23 20 69 66 20 64 65 66  r bsub..# if def
0dc0: 69 6e 65 64 20 61 6e 64 20 6e 6f 74 20 22 6e 6f  ined and not "no
0dd0: 22 20 66 6c 65 78 69 2d 6c 61 75 6e 63 68 65 72  " flexi-launcher
0de0: 20 77 69 6c 6c 20 62 79 70 61 73 73 20 6c 61 75   will bypass lau
0df0: 6e 63 68 65 72 20 75 6e 6c 65 73 73 20 0d 0a 23  ncher unless ..#
0e00: 20 74 68 65 72 65 20 69 73 20 6e 6f 20 68 6f 73   there is no hos
0e10: 74 2d 74 79 70 65 20 6d 61 74 63 68 2e 0d 0a 66  t-type match...f
0e20: 6c 65 78 69 2d 6c 61 75 6e 63 68 65 72 20 79 65  lexi-launcher ye
0e30: 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  s..-------------
0e40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 68  -----------....h
0e50: 6f 73 74 2d 74 79 70 65 73 0d 0a 2b 2b 2b 2b 2b  ost-types..+++++
0e60: 2b 2b 2b 2b 2b 0d 0a 0d 0a 4c 69 73 74 20 6f 66  +++++....List of
0e70: 20 68 6f 73 74 20 74 79 70 65 73 20 61 6e 64 20   host types and 
0e80: 74 68 65 20 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20  the commandline 
0e90: 74 6f 20 72 75 6e 20 61 20 6a 6f 62 20 6f 6e 20  to run a job on 
0ea0: 74 68 61 74 20 68 6f 73 74 20 74 79 70 65 2e 0d  that host type..
0eb0: 0a 0d 0a 2e 68 6f 73 74 2d 74 79 70 65 20 3d 3e  ....host-type =>
0ec0: 20 6c 61 75 6e 63 68 20 63 6f 6d 6d 61 6e 64 0d   launch command.
0ed0: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 67  .------------..g
0ee0: 65 6e 65 72 61 6c 20 6e 62 66 61 6b 65 0d 0a 2d  eneral nbfake..-
0ef0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 6c  -----------....l
0f00: 61 75 6e 63 68 65 72 73 0d 0a 2b 2b 2b 2b 2b 2b  aunchers..++++++
0f10: 2b 2b 2b 0d 0a 0d 0a 2e 74 65 73 74 2f 69 74 65  +++.....test/ite
0f20: 6d 70 61 74 68 20 3d 3e 20 68 6f 73 74 2d 74 79  mpath => host-ty
0f30: 70 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  pe..------------
0f40: 0d 0a 72 75 6e 66 69 72 73 74 2f 73 75 6d 25 20  ..runfirst/sum% 
0f50: 72 65 6d 6f 74 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  remote..--------
0f60: 2d 2d 2d 2d 0d 0a 0d 0a 4d 69 73 63 65 6c 6c 61  ----....Miscella
0f70: 6e 65 6f 75 73 20 53 65 74 75 70 20 49 74 65 6d  neous Setup Item
0f80: 73 0d 0a 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b  s..+++++++++++++
0f90: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 0d 0a 0d 0a  ++++++++++++....
0fa0: 41 74 74 65 6d 70 74 20 74 6f 20 72 65 72 75 6e  Attempt to rerun
0fb0: 20 74 65 73 74 73 20 69 6e 20 22 53 54 55 43 4b   tests in "STUCK
0fc0: 2f 44 45 41 44 22 2c 20 22 6e 2f 61 22 2c 20 22  /DEAD", "n/a", "
0fd0: 5a 45 52 4f 5f 49 54 45 4d 53 22 20 73 74 61 74  ZERO_ITEMS" stat
0fe0: 65 73 2e 0d 0a 0d 0a 2e 49 6e 20 6d 65 67 61 74  es......In megat
0ff0: 65 73 74 2e 63 6f 6e 66 69 67 0d 0a 2d 2d 2d 2d  est.config..----
1000: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
1010: 5b 73 65 74 75 70 5d 0d 0a 72 65 72 75 6e 73 20  [setup]..reruns 
1020: 35 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  5..-------------
1030: 2d 2d 2d 2d 2d 0d 0a 0d 0a 52 65 70 6c 61 63 65  -----....Replace
1040: 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 6c 61   the default bla
1050: 63 6b 6c 69 73 74 65 64 20 65 6e 76 69 72 6f 6e  cklisted environ
1060: 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73 20 77  ment variables w
1070: 69 74 68 20 75 73 65 72 20 73 75 70 70 6c 69 65  ith user supplie
1080: 64 0d 0a 6c 69 73 74 2e 0d 0a 0d 0a 44 65 66 61  d..list.....Defa
1090: 75 6c 74 20 6c 69 73 74 3a 20 55 53 45 52 20 48  ult list: USER H
10a0: 4f 4d 45 20 44 49 53 50 4c 41 59 20 4c 53 5f 43  OME DISPLAY LS_C
10b0: 4f 4c 4f 52 53 20 58 4b 45 59 53 59 4d 44 42 20  OLORS XKEYSYMDB 
10c0: 45 44 49 54 4f 52 20 4d 41 4b 45 46 4c 41 47 53  EDITOR MAKEFLAGS
10d0: 20 4d 41 4b 45 46 20 4d 41 4b 45 4f 56 45 52 52   MAKEF MAKEOVERR
10e0: 49 44 45 53 0d 0a 0d 0a 2e 41 64 64 20 61 20 22  IDES.....Add a "
10f0: 62 61 64 22 20 76 61 72 69 61 62 6c 65 20 22 50  bad" variable "P
1100: 52 4f 4d 50 54 22 20 74 6f 20 74 68 65 20 76 61  ROMPT" to the va
1110: 72 69 61 62 6c 65 73 20 74 68 61 74 20 77 69 6c  riables that wil
1120: 6c 20 62 65 20 63 6f 6d 6d 65 6e 74 65 64 20 6f  l be commented o
1130: 75 74 0d 0a 69 6e 20 74 68 65 20 6d 65 67 61 74  ut..in the megat
1140: 65 73 74 2e 73 68 20 61 6e 64 20 6d 65 67 61 74  est.sh and megat
1150: 65 73 74 2e 63 73 68 20 66 69 6c 65 73 3a 0d 0a  est.csh files:..
1160: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1170: 2d 0d 0a 5b 73 65 74 75 70 5d 0d 0a 62 6c 61 63  -..[setup]..blac
1180: 6b 6c 69 73 74 76 61 72 73 20 55 53 45 52 20 48  klistvars USER H
1190: 4f 4d 45 20 44 49 53 50 4c 41 59 20 4c 53 5f 43  OME DISPLAY LS_C
11a0: 4f 4c 4f 52 53 20 58 4b 45 59 53 59 4d 44 42 20  OLORS XKEYSYMDB 
11b0: 45 44 49 54 4f 52 20 4d 41 4b 45 46 4c 41 47 53  EDITOR MAKEFLAGS
11c0: 20 50 52 4f 4d 50 54 0d 0a 2d 2d 2d 2d 2d 2d 2d   PROMPT..-------
11d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 52 75  ----------....Ru
11e0: 6e 20 74 69 6d 65 20 6c 69 6d 69 74 0d 0a 2b 2b  n time limit..++
11f0: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 0d 0a 0d 0a  ++++++++++++....
1200: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1210: 2d 0d 0a 5b 73 65 74 75 70 5d 0d 0a 23 20 74 68  -..[setup]..# th
1220: 69 73 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69  is will automati
1230: 63 61 6c 6c 79 20 6b 69 6c 6c 20 74 68 65 20 74  cally kill the t
1240: 65 73 74 20 69 66 20 69 74 20 72 75 6e 73 20 66  est if it runs f
1250: 6f 72 20 6d 6f 72 65 20 74 68 61 6e 20 31 68 20  or more than 1h 
1260: 32 6d 20 61 6e 64 20 33 73 0d 0a 72 75 6e 74 69  2m and 3s..runti
1270: 6d 65 6c 69 6d 20 31 68 20 32 6d 20 33 73 0d 0a  melim 1h 2m 3s..
1280: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1290: 2d 0d 0a 0d 0a 54 65 73 74 73 20 62 72 6f 77 73  -....Tests brows
12a0: 65 72 20 76 69 65 77 0d 0a 7e 7e 7e 7e 7e 7e 7e  er view..~~~~~~~
12b0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 54  ~~~~~~~~~~~....T
12c0: 68 65 20 74 65 73 74 73 20 62 72 6f 77 73 65 72  he tests browser
12d0: 20 28 73 65 65 20 74 68 65 20 52 75 6e 20 43 6f   (see the Run Co
12e0: 6e 74 72 6f 6c 20 74 61 62 20 6f 6e 20 74 68 65  ntrol tab on the
12f0: 20 64 61 73 68 62 6f 61 72 64 29 20 68 61 73 20   dashboard) has 
1300: 74 77 6f 20 76 69 65 77 73 20 66 6f 72 20 64 69  two views for di
1310: 73 70 6c 61 79 69 6e 67 20 74 68 65 20 74 65 73  splaying the tes
1320: 74 73 2e 20 0d 0a 0d 0a 2e 20 44 6f 74 20 28 67  ts. ..... Dot (g
1330: 72 61 70 68 76 69 7a 29 20 62 61 73 65 64 20 74  raphviz) based t
1340: 72 65 65 0d 0a 2e 20 4e 6f 20 64 6f 74 2c 20 70  ree... No dot, p
1350: 6c 61 69 6e 20 6c 69 73 74 69 6e 67 0d 0a 0d 0a  lain listing....
1360: 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 74  The default is t
1370: 68 65 20 67 72 61 70 68 76 69 7a 20 62 61 73 65  he graphviz base
1380: 64 20 74 72 65 65 20 62 75 74 20 69 66 20 79 6f  d tree but if yo
1390: 75 72 20 74 65 73 74 73 20 64 6f 6e 27 74 20 76  ur tests don't v
13a0: 69 65 77 0d 0a 77 65 6c 6c 20 69 6e 20 74 68 61  iew..well in tha
13b0: 74 20 6d 6f 64 65 20 74 68 65 6e 20 75 73 65 20  t mode then use 
13c0: 22 6e 6f 64 6f 74 22 20 74 6f 20 74 75 72 6e 20  "nodot" to turn 
13d0: 69 74 20 6f 66 66 2e 0d 0a 0d 0a 2d 2d 2d 2d 2d  it off.....-----
13e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 73  ------------..[s
13f0: 65 74 75 70 5d 0d 0a 6e 6f 64 6f 74 0d 0a 2d 2d  etup]..nodot..--
1400: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
1410: 0a 0d 0a 44 61 73 68 62 6f 61 72 64 20 73 65 74  ...Dashboard set
1420: 74 69 6e 67 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e  tings..~~~~~~~~~
1430: 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 2e 52 75  ~~~~~~~~~.....Ru
1440: 6e 73 20 74 61 62 20 62 75 74 74 6f 6e 73 2c 20  ns tab buttons, 
1450: 66 6f 6e 74 20 61 6e 64 20 73 69 7a 65 0d 0a 2d  font and size..-
1460: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1470: 2d 0d 0a 5b 64 61 73 68 62 6f 61 72 64 5d 0d 0a  -..[dashboard]..
1480: 62 74 6e 2d 68 65 69 67 68 74 20 78 31 34 0d 0a  btn-height x14..
1490: 62 74 6e 2d 66 6f 6e 74 73 7a 20 31 30 0d 0a 63  btn-fontsz 10..c
14a0: 65 6c 6c 2d 77 69 64 74 68 20 36 30 0d 0a 2d 2d  ell-width 60..--
14b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14c0: 0d 0a 0d 0a 44 61 74 61 62 61 73 65 20 73 65 74  ....Database set
14d0: 74 69 6e 67 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e  tings..~~~~~~~~~
14e0: 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 2e 44 61 74  ~~~~~~~~.....Dat
14f0: 61 62 61 73 65 20 63 6f 6e 66 69 67 20 73 65 74  abase config set
1500: 74 69 6e 67 73 20 69 6e 20 5b 73 65 74 75 70 5d  tings in [setup]
1510: 20 73 65 63 74 69 6f 6e 20 6f 66 20 6d 65 67 61   section of mega
1520: 74 65 73 74 2e 63 6f 6e 66 69 67 0d 0a 5b 77 69  test.config..[wi
1530: 64 74 68 3d 22 37 30 25 22 2c 63 6f 6c 73 3d 22  dth="70%",cols="
1540: 5e 2c 32 6d 2c 32 6d 2c 32 6d 22 2c 66 72 61 6d  ^,2m,2m,2m",fram
1550: 65 3d 22 74 6f 70 62 6f 74 22 2c 6f 70 74 69 6f  e="topbot",optio
1560: 6e 73 3d 22 68 65 61 64 65 72 22 5d 0d 0a 7c 3d  ns="header"]..|=
1570: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1580: 3d 3d 3d 3d 3d 0d 0a 7c 56 61 72 20 20 20 20 20  =====..|Var     
1590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15a0: 20 20 7c 20 50 75 72 70 6f 73 65 20 20 20 20 20    | Purpose     
15b0: 20 20 20 20 20 20 20 7c 20 56 61 6c 69 64 20 76         | Valid v
15c0: 61 6c 75 65 73 20 20 20 20 20 20 20 20 20 20 20  alues           
15d0: 20 7c 20 43 6f 6d 6d 65 6e 74 73 0d 0a 7c 64 65   | Comments..|de
15e0: 6c 61 79 2d 6f 6e 2d 62 75 73 79 20 20 20 20 20  lay-on-busy     
15f0: 20 20 20 20 20 20 20 20 7c 20 50 72 65 76 65 6e          | Preven
1600: 74 20 63 6f 6e 63 75 72 72 65 6e 74 20 61 63 63  t concurrent acc
1610: 65 73 73 20 69 73 73 75 65 73 20 7c 20 79 65 73  ess issues | yes
1620: 5c 7c 6e 6f 20 6f 72 20 6e 6f 74 20 64 65 66 69  \|no or not defi
1630: 6e 65 64 20 7c 20 44 65 66 61 75 6c 74 3d 6e 6f  ned | Default=no
1640: 2c 20 6d 61 79 20 68 65 6c 70 20 6f 6e 20 73 6f  , may help on so
1650: 6d 65 20 6e 65 74 77 6f 72 6b 20 66 69 6c 65 20  me network file 
1660: 73 79 73 74 65 6d 73 2c 20 6d 61 79 20 73 6c 6f  systems, may slo
1670: 77 20 74 68 69 6e 67 73 20 64 6f 77 6e 20 61 6c  w things down al
1680: 73 6f 2e 0d 0a 7c 64 61 65 6d 6f 6e 69 7a 65 20  so...|daemonize 
1690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a0: 7c 20 44 61 65 6d 6f 6e 69 7a 65 20 74 68 65 20  | Daemonize the 
16b0: 73 65 72 76 65 72 20 6f 6e 20 73 74 61 72 74 20  server on start 
16c0: 7c 20 79 65 73 5c 7c 6e 6f 20 6f 72 20 6e 6f 74  | yes\|no or not
16d0: 20 64 65 66 69 6e 65 64 20 7c 20 44 65 66 61 75   defined | Defau
16e0: 6c 74 3d 6e 6f 0d 0a 7c 66 61 73 74 73 74 61 72  lt=no..|faststar
16f0: 74 09 09 20 20 20 7c 20 41 6c 6c 20 64 69 72 65  t..   | All dire
1700: 63 74 20 66 69 6c 65 20 61 63 63 65 73 73 20 74  ct file access t
1710: 6f 20 73 71 6c 69 74 65 20 64 62 20 66 69 6c 65  o sqlite db file
1720: 73 20 7c 20 79 65 73 5c 7c 6e 6f 20 6f 72 20 6e  s | yes\|no or n
1730: 6f 74 20 64 65 66 69 6e 65 64 20 7c 20 44 65 66  ot defined | Def
1740: 61 75 6c 74 3d 79 65 73 2c 20 73 75 67 67 65 73  ault=yes, sugges
1750: 74 20 6e 6f 20 66 6f 72 20 63 65 6e 74 72 61 6c  t no for central
1760: 20 61 75 74 6f 6d 61 74 65 64 20 73 79 73 74 65   automated syste
1770: 6d 73 20 61 6e 64 20 79 65 73 20 66 6f 72 20 69  ms and yes for i
1780: 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 0d 0a  nteractive use..
1790: 7c 68 6f 6d 65 68 6f 73 74 20 09 09 20 20 20 7c  |homehost ..   |
17a0: 20 53 74 61 72 74 20 73 65 72 76 65 72 73 20 6f   Start servers o
17b0: 6e 20 74 68 69 73 20 68 6f 73 74 20 7c 20 3c 68  n this host | <h
17c0: 6f 73 74 6e 61 6d 65 3e 20 7c 20 44 65 66 61 75  ostname> | Defau
17d0: 6c 74 73 20 74 6f 20 6c 6f 63 61 6c 20 68 6f 73  lts to local hos
17e0: 74 0d 0a 7c 68 6f 73 74 6e 61 6d 65 09 09 20 20  t..|hostname..  
17f0: 20 7c 20 48 6f 73 74 6e 61 6d 65 20 74 6f 20 62   | Hostname to b
1800: 69 6e 64 20 74 6f 20 7c 20 3c 68 6f 73 74 6e 61  ind to | <hostna
1810: 6d 65 3e 5c 7c 2d 09 20 20 7c 20 4f 6e 20 6d 75  me>\|-.  | On mu
1820: 6c 74 69 2d 68 6f 6d 65 64 20 68 6f 73 74 73 20  lti-homed hosts 
1830: 61 6c 6c 6f 77 73 20 62 69 6e 64 69 6e 67 20 74  allows binding t
1840: 6f 20 73 70 65 63 69 66 69 63 20 68 6f 73 74 6e  o specific hostn
1850: 61 6d 65 0d 0a 7c 6c 6f 77 70 6f 72 74 09 09 20  ame..|lowport.. 
1860: 20 20 7c 20 53 74 61 72 74 20 73 65 61 72 63 68    | Start search
1870: 69 6e 67 20 66 6f 72 20 61 20 70 6f 72 74 20 61  ing for a port a
1880: 74 20 74 68 69 73 20 70 6f 72 74 6e 75 6d 7c 20  t this portnum| 
1890: 33 32 37 36 38 20 7c 20 0d 0a 7c 72 65 71 75 69  32768 | ..|requi
18a0: 72 65 64 09 09 20 20 20 7c 20 53 65 72 76 65 72  red..   | Server
18b0: 20 72 65 71 75 69 72 65 64 20 20 20 20 7c 20 79   required    | y
18c0: 65 73 5c 7c 6e 6f 20 6f 72 20 6e 6f 74 20 64 65  es\|no or not de
18d0: 66 69 6e 65 64 20 20 7c 20 44 65 66 61 75 6c 74  fined  | Default
18e0: 3d 6e 6f 2c 20 66 6f 72 63 65 20 73 74 61 72 74  =no, force start
18f0: 20 6f 66 20 73 65 72 76 65 72 20 61 6c 77 61 79   of server alway
1900: 73 0d 0a 7c 73 65 72 76 65 72 2d 71 75 65 72 79  s..|server-query
1910: 2d 74 68 72 65 73 68 6f 6c 64 09 20 20 20 7c 20  -threshold.   | 
1920: 53 74 61 72 74 20 73 65 72 76 65 72 20 77 68 65  Start server whe
1930: 6e 20 71 75 65 72 69 65 73 20 74 61 6b 65 20 6c  n queries take l
1940: 6f 6e 67 65 72 20 74 68 61 6e 20 74 68 69 73 20  onger than this 
1950: 7c 20 6e 75 6d 62 65 72 20 69 6e 20 6d 69 6c 6c  | number in mill
1960: 69 73 65 63 6f 6e 64 73 20 7c 20 44 65 66 61 75  iseconds | Defau
1970: 6c 74 3d 33 30 30 0d 0a 7c 74 69 6d 65 6f 75 74  lt=300..|timeout
1980: 09 09 20 20 20 7c 20 68 74 74 70 20 61 70 69 20  ..   | http api 
1990: 74 69 6d 65 6f 75 74 20 09 7c 20 6e 75 6d 62 65  timeout .| numbe
19a0: 72 20 69 6e 20 68 6f 75 72 73 09 20 20 7c 20 44  r in hours.  | D
19b0: 65 66 61 75 6c 74 20 69 73 20 31 20 6d 69 6e 75  efault is 1 minu
19c0: 74 65 2c 20 64 6f 20 6e 6f 74 20 63 68 61 6e 67  te, do not chang
19d0: 65 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  e..|============
19e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 54 68  ==========....Th
19f0: 65 20 74 65 73 74 63 6f 6e 66 69 67 20 46 69 6c  e testconfig Fil
1a00: 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  e..-------------
1a10: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 53 65 74 75 70 20  ------....Setup 
1a20: 73 65 63 74 69 6f 6e 0d 0a 7e 7e 7e 7e 7e 7e 7e  section..~~~~~~~
1a30: 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 48 65 61 64 65 72  ~~~~~~....Header
1a40: 0d 0a 5e 5e 5e 5e 5e 5e 0d 0a 0d 0a 2d 2d 2d 2d  ..^^^^^^....----
1a50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
1a60: 0a 5b 73 65 74 75 70 5d 0d 0a 2d 2d 2d 2d 2d 2d  .[setup]..------
1a70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  -------------...
1a80: 0a 54 68 65 20 72 75 6e 73 63 72 69 70 74 20 6d  .The runscript m
1a90: 65 74 68 6f 64 20 69 73 20 61 20 62 72 75 74 65  ethod is a brute
1aa0: 20 66 6f 72 63 65 20 77 61 79 20 74 6f 20 72 75   force way to ru
1ab0: 6e 20 73 63 72 69 70 74 73 20 77 68 65 72 65 20  n scripts where 
1ac0: 74 68 65 0d 0a 75 73 65 72 20 69 73 20 72 65 73  the..user is res
1ad0: 70 6f 6e 73 69 62 6c 65 20 66 6f 72 20 73 65 74  ponsible for set
1ae0: 74 69 6e 67 20 53 54 41 54 45 20 61 6e 64 20 53  ting STATE and S
1af0: 54 41 54 55 53 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d  TATUS....-------
1b00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 72 75  ------------..ru
1b10: 6e 73 63 72 69 70 74 20 6d 61 69 6e 2e 63 73 68  nscript main.csh
1b20: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
1b30: 2d 2d 2d 2d 2d 0d 0a 0d 0a 52 65 71 75 69 72 65  -----....Require
1b40: 6d 65 6e 74 73 20 73 65 63 74 69 6f 6e 0d 0a 7e  ments section..~
1b50: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
1b60: 7e 7e 7e 0d 0a 0d 0a 2e 48 65 61 64 65 72 0d 0a  ~~~.....Header..
1b70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1b80: 2d 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e  ---..[requiremen
1b90: 74 73 5d 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ts]..-----------
1ba0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 57 61 69 74  --------....Wait
1bb0: 20 6f 6e 20 4f 74 68 65 72 20 54 65 73 74 73 0d   on Other Tests.
1bc0: 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  .^^^^^^^^^^^^^^^
1bd0: 5e 5e 5e 5e 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  ^^^^....--------
1be0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 20 41  -----------..# A
1bf0: 20 6e 6f 72 6d 61 6c 20 77 61 69 74 6f 6e 20 77   normal waiton w
1c00: 61 69 74 73 20 66 6f 72 20 74 68 65 20 70 72 69  aits for the pri
1c10: 6f 72 20 74 65 73 74 73 20 74 6f 20 62 65 20 43  or tests to be C
1c20: 4f 4d 50 4c 45 54 45 44 20 0d 0a 23 20 61 6e 64  OMPLETED ..# and
1c30: 20 50 41 53 53 2c 20 43 48 45 43 4b 20 6f 72 20   PASS, CHECK or 
1c40: 57 41 49 56 45 44 0d 0a 77 61 69 74 6f 6e 20 74  WAIVED..waiton t
1c50: 65 73 74 31 20 74 65 73 74 32 0d 0a 2d 2d 2d 2d  est1 test2..----
1c60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
1c70: 0a 0d 0a 4d 6f 64 65 0d 0a 5e 5e 5e 5e 0d 0a 0d  ...Mode..^^^^...
1c80: 0a 54 68 65 20 64 65 66 61 75 6c 74 20 28 69 2e  .The default (i.
1c90: 65 2e 20 69 66 20 6d 6f 64 65 20 69 73 20 6e 6f  e. if mode is no
1ca0: 74 20 73 70 65 63 69 66 69 65 64 29 20 69 73 20  t specified) is 
1cb0: 6e 6f 72 6d 61 6c 2e 20 41 6c 6c 20 70 72 65 2d  normal. All pre-
1cc0: 64 65 70 65 6e 64 65 6e 74 20 74 65 73 74 73 0d  dependent tests.
1cd0: 0a 6d 75 73 74 20 62 65 20 43 4f 4d 50 4c 45 54  .must be COMPLET
1ce0: 45 44 20 61 6e 64 20 50 41 53 53 2c 20 43 48 45  ED and PASS, CHE
1cf0: 43 4b 20 6f 72 20 57 41 49 56 45 44 20 62 65 66  CK or WAIVED bef
1d00: 6f 72 65 20 74 68 65 20 74 65 73 74 20 77 69 6c  ore the test wil
1d10: 6c 20 73 74 61 72 74 0d 0a 0d 0a 2d 2d 2d 2d 2d  l start....-----
1d20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
1d30: 5b 72 65 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a  [requirements]..
1d40: 6d 6f 64 65 20 20 20 6e 6f 72 6d 61 6c 0d 0a 2d  mode   normal..-
1d50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1d60: 2d 2d 0d 0a 0d 0a 54 68 65 20 74 6f 70 6c 65 76  --....The toplev
1d70: 65 6c 20 6d 6f 64 65 20 72 65 71 75 69 72 65 73  el mode requires
1d80: 20 6f 6e 6c 79 20 74 68 61 74 20 74 68 65 20 70   only that the p
1d90: 72 69 6f 72 20 74 65 73 74 73 20 61 72 65 20 43  rior tests are C
1da0: 4f 4d 50 4c 45 54 45 44 2e 0d 0a 0d 0a 2d 2d 2d  OMPLETED.....---
1db0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1dc0: 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e 74 73 5d  ..[requirements]
1dd0: 0d 0a 6d 6f 64 65 20 74 6f 70 6c 65 76 65 6c 0d  ..mode toplevel.
1de0: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .---------------
1df0: 2d 2d 2d 2d 0d 0a 0d 0a 41 20 69 74 65 6d 20 62  ----....A item b
1e00: 61 73 65 64 20 77 61 69 74 6f 6e 20 77 69 6c 6c  ased waiton will
1e10: 20 73 74 61 72 74 20 69 74 65 6d 73 20 69 6e 20   start items in 
1e20: 61 20 74 65 73 74 20 77 68 65 6e 20 74 68 65 20  a test when the 
1e30: 73 61 6d 65 2d 6e 61 6d 65 64 0d 0a 69 74 65 6d  same-named..item
1e40: 20 69 73 20 43 4f 4d 50 4c 45 54 45 44 20 61 6e   is COMPLETED an
1e50: 64 20 50 41 53 53 2c 20 43 48 45 43 4b 20 6f 72  d PASS, CHECK or
1e60: 20 57 41 49 56 45 44 20 69 6e 20 74 68 65 20 70   WAIVED in the p
1e70: 72 69 6f 72 20 74 65 73 74 2e 20 54 68 69 73 0d  rior test. This.
1e80: 0a 77 61 73 20 68 69 73 74 6f 72 69 63 61 6c 6c  .was historicall
1e90: 79 20 63 61 6c 6c 65 64 20 22 69 74 65 6d 77 61  y called "itemwa
1ea0: 69 74 22 20 6d 6f 64 65 2e 20 54 68 65 20 74 65  it" mode. The te
1eb0: 72 6d 73 20 22 69 74 65 6d 77 61 69 74 22 20 61  rms "itemwait" a
1ec0: 6e 64 0d 0a 22 69 74 65 6d 6d 61 74 63 68 22 20  nd.."itemmatch" 
1ed0: 61 72 65 20 73 79 6e 6f 6e 79 6d 73 2e 0d 0a 0d  are synonyms....
1ee0: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .---------------
1ef0: 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 6d 65  ----..[requireme
1f00: 6e 74 73 5d 0d 0a 6d 6f 64 65 20 69 74 65 6d 6d  nts]..mode itemm
1f10: 61 74 63 68 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  atch..----------
1f20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 4f 76 65  ---------....Ove
1f30: 72 72 69 64 69 6e 67 20 45 6e 76 69 72 6f 6d 65  rriding Envirome
1f40: 6e 74 20 56 61 72 69 61 62 6c 65 73 0d 0a 7e 7e  nt Variables..~~
1f50: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
1f60: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d  ~~~~~~~~~~~~~...
1f70: 0a 4f 76 65 72 72 69 64 65 20 76 61 72 69 61 62  .Override variab
1f80: 6c 65 73 20 62 65 66 6f 72 65 20 73 74 61 72 74  les before start
1f90: 69 6e 67 20 74 68 65 20 74 65 73 74 2e 20 43 61  ing the test. Ca
1fa0: 6e 20 69 6e 63 6c 75 64 65 20 66 69 6c 65 73 20  n include files 
1fb0: 28 70 65 72 68 61 70 73 20 67 65 6e 65 72 61 74  (perhaps generat
1fc0: 65 64 20 62 79 20 6d 65 67 61 74 65 73 74 20 2d  ed by megatest -
1fd0: 65 6e 76 64 65 6c 74 61 20 6f 72 20 73 69 6d 69  envdelta or simi
1fe0: 6c 61 72 29 2e 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d  lar).....-------
1ff0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b  -------------..[
2000: 70 72 65 2d 6c 61 75 6e 63 68 2d 65 6e 76 2d 76  pre-launch-env-v
2010: 61 72 73 5d 0d 0a 56 41 52 31 20 76 61 6c 75 65  ars]..VAR1 value
2020: 31 0d 0a 0d 0a 23 20 47 65 74 20 73 6f 6d 65 20  1....# Get some 
2030: 67 65 6e 65 72 61 74 65 64 20 73 65 74 74 69 6e  generated settin
2040: 67 73 0d 0a 5b 69 6e 63 6c 75 64 65 20 2e 2e 2f  gs..[include ../
2050: 67 65 6e 65 72 61 74 65 64 2d 76 61 72 73 2e 63  generated-vars.c
2060: 6f 6e 66 69 67 5d 0d 0a 0d 0a 23 20 55 73 65 20  onfig]....# Use 
2070: 74 68 69 73 20 74 72 69 63 6b 20 74 6f 20 75 6e  this trick to un
2080: 73 65 74 20 76 61 72 69 61 62 6c 65 73 0d 0a 23  set variables..#
2090: 7b 73 63 68 65 6d 65 20 28 75 6e 73 65 74 65 6e  {scheme (unseten
20a0: 76 20 22 46 4f 4f 42 41 52 22 29 7d 0d 0a 2d 2d  v "FOOBAR")}..--
20b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
20c0: 2d 2d 0d 0a 0d 0a 49 74 65 6d 6d 61 70 20 48 61  --....Itemmap Ha
20d0: 6e 64 6c 69 6e 67 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e  ndling..~~~~~~~~
20e0: 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 46 6f 72 20  ~~~~~~~~....For 
20f0: 63 61 73 65 73 20 77 65 72 65 20 74 68 65 20 64  cases were the d
2100: 65 70 65 6e 64 65 6e 74 20 74 65 73 74 20 68 61  ependent test ha
2110: 73 20 61 20 73 69 6d 69 6c 61 72 20 62 75 74 20  s a similar but 
2120: 6e 6f 74 20 69 64 65 6e 74 69 63 61 6c 0d 0a 69  not identical..i
2130: 74 65 6d 70 61 74 68 20 74 6f 20 74 68 65 20 64  tempath to the d
2140: 6f 77 6e 73 74 72 65 61 6d 20 74 65 73 74 20 61  ownstream test a
2150: 6e 20 69 74 65 6d 6d 61 70 20 63 61 6e 20 61 6c  n itemmap can al
2160: 6c 6f 77 20 66 6f 72 20 69 74 65 6d 6d 61 74 63  low for itemmatc
2170: 68 0d 0a 6d 6f 64 65 0d 0a 0d 0a 2e 65 78 61 6d  h..mode.....exam
2180: 70 6c 65 20 66 6f 72 20 72 65 6d 6f 76 69 6e 67  ple for removing
2190: 20 70 61 72 74 20 6f 66 20 69 74 65 6d 6d 61 70   part of itemmap
21a0: 20 66 6f 72 20 77 61 69 74 6f 6e 20 74 65 73 74   for waiton test
21b0: 20 28 65 67 3a 20 69 74 65 6d 20 2b 66 6f 6f 2d   (eg: item +foo-
21c0: 78 2f 62 61 72 2b 20 64 65 70 65 6e 64 73 20 6f  x/bar+ depends o
21d0: 6e 20 77 61 69 74 6f 6e 27 73 20 69 74 65 6d 20  n waiton's item 
21e0: 2b 79 2f 62 61 72 2b 29 0d 0a 2d 2d 2d 2d 2d 2d  +y/bar+)..------
21f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b  -------------..[
2200: 72 65 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a 6d  requirements]..m
2210: 6f 64 65 20 69 74 65 6d 77 61 69 74 0d 0a 23 20  ode itemwait..# 
2220: 69 74 65 6d 6d 61 70 20 3c 69 74 65 6d 20 70 61  itemmap <item pa
2230: 74 74 65 72 6e 20 66 6f 72 20 74 68 69 73 20 74  ttern for this t
2240: 65 73 74 3e 20 20 3c 69 74 65 6d 20 72 65 70 6c  est>  <item repl
2250: 61 63 65 6d 65 6e 74 20 70 61 74 74 65 72 6e 20  acement pattern 
2260: 66 6f 72 20 77 61 69 74 6f 6e 20 74 65 73 74 3e  for waiton test>
2270: 0d 0a 69 74 65 6d 6d 61 70 20 2e 2a 78 2f 20 79  ..itemmap .*x/ y
2280: 2f 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /....-----------
2290: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e 65 78 61  --------.....exa
22a0: 6d 70 6c 65 20 66 6f 72 20 72 65 6d 6f 76 69 6e  mple for removin
22b0: 67 20 70 61 72 74 20 6f 66 20 69 74 65 6d 6d 61  g part of itemma
22c0: 70 20 66 6f 72 20 77 61 69 74 6f 6e 20 74 65 73  p for waiton tes
22d0: 74 20 28 65 67 3a 20 69 74 65 6d 20 2b 66 6f 6f  t (eg: item +foo
22e0: 2f 62 61 72 2f 62 61 7a 2b 20 69 6e 20 74 68 69  /bar/baz+ in thi
22f0: 73 20 74 65 73 74 20 64 65 70 65 6e 64 73 20 6f  s test depends o
2300: 6e 20 77 61 69 74 6f 6e 27 73 20 69 74 65 6d 20  n waiton's item 
2310: 2b 62 61 7a 2b 29 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  +baz+)..--------
2320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 23  -----------....#
2330: 20 23 23 20 70 61 74 74 65 72 6e 20 72 65 70 6c   ## pattern repl
2340: 61 63 65 6d 65 6e 74 20 6e 6f 74 65 73 0d 0a 23  acement notes..#
2350: 0d 0a 23 20 23 23 20 45 78 61 6d 70 6c 65 0d 0a  ..# ## Example..
2360: 23 20 23 23 20 52 65 6d 6f 76 65 20 65 76 65 72  # ## Remove ever
2370: 79 74 68 69 6e 67 20 75 70 20 74 6f 20 74 68 65  ything up to the
2380: 20 6c 61 73 74 20 2f 0d 0a 5b 72 65 71 75 69 72   last /..[requir
2390: 65 6d 65 6e 74 73 5d 0d 0a 6d 6f 64 65 20 69 74  ements]..mode it
23a0: 65 6d 77 61 69 74 0d 0a 23 20 69 74 65 6d 6d 61  emwait..# itemma
23b0: 70 20 3c 69 74 65 6d 20 70 61 74 74 65 72 6e 20  p <item pattern 
23c0: 66 6f 72 20 74 68 69 73 20 74 65 73 74 3e 20 3c  for this test> <
23d0: 6e 6f 74 68 69 6e 67 20 68 65 72 65 20 69 6e 64  nothing here ind
23e0: 69 63 61 74 65 73 20 72 65 6d 6f 76 61 6c 3e 0d  icates removal>.
23f0: 0a 69 74 65 6d 6d 61 70 20 2e 2a 2f 0d 0a 2d 2d  .itemmap .*/..--
2400: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2410: 2d 0d 0a 0d 0a 2e 65 78 61 6d 70 6c 65 20 72 65  -.....example re
2420: 70 6c 61 63 69 6e 67 20 70 61 72 74 20 6f 66 20  placing part of 
2430: 69 74 65 6d 6d 61 70 20 66 6f 72 20 28 65 67 3a  itemmap for (eg:
2440: 20 69 74 65 6d 20 2b 66 6f 6f 2f 31 32 33 34 2b   item +foo/1234+
2450: 20 77 69 6c 6c 20 69 6d 70 6c 79 20 77 61 69 74   will imply wait
2460: 6f 6e 27 73 20 69 74 65 6d 20 2b 62 61 72 2f 31  on's item +bar/1
2470: 32 33 34 2b 29 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  234+)..---------
2480: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 23 0d  ----------....#.
2490: 0a 23 20 23 23 20 45 78 61 6d 70 6c 65 0d 0a 23  .# ## Example..#
24a0: 20 23 23 20 52 65 70 6c 61 63 65 20 66 6f 6f 2f   ## Replace foo/
24b0: 20 77 69 74 68 20 62 61 72 2f 0d 0a 5b 72 65 71   with bar/..[req
24c0: 75 69 72 65 6d 65 6e 74 73 5d 0d 0a 6d 6f 64 65  uirements]..mode
24d0: 20 69 74 65 6d 77 61 69 74 0d 0a 23 20 69 74 65   itemwait..# ite
24e0: 6d 6d 61 70 20 3c 69 74 65 6d 20 70 61 74 74 65  mmap <item patte
24f0: 72 6e 20 66 6f 72 20 74 68 69 73 20 74 65 73 74  rn for this test
2500: 3e 20 20 3c 69 74 65 6d 20 72 65 70 6c 61 63 65  >  <item replace
2510: 6d 65 6e 74 20 70 61 74 74 65 72 6e 20 66 6f 72  ment pattern for
2520: 20 77 61 69 74 6f 6e 20 74 65 73 74 3e 0d 0a 69   waiton test>..i
2530: 74 65 6d 6d 61 70 20 66 6f 6f 2f 20 62 61 72 2f  temmap foo/ bar/
2540: 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....------------
2550: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e 65 78 61 6d  -------.....exam
2560: 70 6c 65 20 66 6f 72 20 62 61 63 6b 72 65 66 65  ple for backrefe
2570: 72 65 6e 63 65 20 28 65 67 3a 20 69 74 65 6d 20  rence (eg: item 
2580: 2b 66 6f 6f 32 33 2f 74 68 75 64 2b 20 77 69 6c  +foo23/thud+ wil
2590: 6c 20 69 6d 70 6c 79 20 77 61 69 74 6f 6e 27 73  l imply waiton's
25a0: 20 69 74 65 6d 20 2b 6e 75 6d 2d 32 33 2f 62 61   item +num-23/ba
25b0: 72 2f 74 68 75 64 2b 0d 0a 2d 2d 2d 2d 2d 2d 2d  r/thud+..-------
25c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 0d  ------------..#.
25d0: 0a 23 20 23 23 20 45 78 61 6d 70 6c 65 0d 0a 23  .# ## Example..#
25e0: 20 23 23 20 63 61 6e 20 75 73 65 20 5c 7b 6e 75   ## can use \{nu
25f0: 6d 62 65 72 7d 20 69 6e 20 72 65 70 6c 61 63 65  mber} in replace
2600: 6d 65 6e 74 20 70 61 74 74 65 72 6e 20 74 6f 20  ment pattern to 
2610: 62 61 63 6b 72 65 66 65 72 65 6e 63 65 20 61 20  backreference a 
2620: 28 63 61 70 74 75 72 65 29 20 66 72 6f 6d 20 6d  (capture) from m
2630: 61 74 63 68 69 6e 67 20 70 61 74 74 65 72 6e 20  atching pattern 
2640: 73 69 6d 69 6c 61 72 20 74 6f 20 73 65 64 20 6f  similar to sed o
2650: 72 20 70 65 72 6c 0d 0a 5b 72 65 71 75 69 72 65  r perl..[require
2660: 6d 65 6e 74 73 5d 0d 0a 6d 6f 64 65 20 69 74 65  ments]..mode ite
2670: 6d 77 61 69 74 0d 0a 23 20 69 74 65 6d 6d 61 70  mwait..# itemmap
2680: 20 3c 69 74 65 6d 20 70 61 74 74 65 72 6e 20 66   <item pattern f
2690: 6f 72 20 74 68 69 73 20 74 65 73 74 3e 20 20 3c  or this test>  <
26a0: 69 74 65 6d 20 72 65 70 6c 61 63 65 6d 65 6e 74  item replacement
26b0: 20 70 61 74 74 65 72 6e 20 66 6f 72 20 77 61 69   pattern for wai
26c0: 74 6f 6e 20 74 65 73 74 3e 0d 0a 69 74 65 6d 6d  ton test>..itemm
26d0: 61 70 20 66 6f 6f 28 5c 64 2b 29 2f 20 6e 75 6d  ap foo(\d+)/ num
26e0: 2d 5c 31 2f 62 61 72 2f 0d 0a 0d 0a 2d 2d 2d 2d  -\1/bar/....----
26f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
2700: 0a 0d 0a 2e 65 78 61 6d 70 6c 65 20 6d 75 6c 74  ....example mult
2710: 69 70 6c 65 20 69 74 65 6d 6d 61 70 73 0d 0a 2d  iple itemmaps..-
2720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2730: 2d 2d 0d 0a 0d 0a 23 20 6d 75 6c 74 69 2d 6c 69  --....# multi-li
2740: 6e 65 3b 20 6d 61 74 63 68 65 73 20 61 72 65 20  ne; matches are 
2750: 61 70 70 6c 69 65 64 20 69 6e 20 74 68 65 20 6c  applied in the l
2760: 69 73 74 65 64 20 6f 72 64 65 72 0d 0a 23 20 54  isted order..# T
2770: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 77 6f 75  he following wou
2780: 6c 64 20 6d 61 70 3a 0d 0a 23 20 20 20 61 31 32  ld map:..#   a12
2790: 33 62 33 32 31 20 74 6f 20 62 33 32 31 66 6f 6f  3b321 to b321foo
27a0: 61 31 32 33 20 74 68 65 6e 20 74 6f 20 33 32 31  a123 then to 321
27b0: 66 6f 6f 61 31 32 33 70 0d 0a 23 0d 0a 5b 72 65  fooa123p..#..[re
27c0: 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a 69 74 65  quirements]..ite
27d0: 6d 6d 61 70 20 28 61 5c 64 2b 29 28 62 5c 64 2b  mmap (a\d+)(b\d+
27e0: 29 20 5c 32 66 6f 6f 5c 31 0d 0a 20 20 62 28 2e  ) \2foo\1..  b(.
27f0: 2a 29 20 5c 31 70 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d  *) \1p..--------
2800: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 0d  -----------.....
2810: 0a 43 6f 6d 70 6c 65 78 20 6d 61 70 70 69 6e 67  .Complex mapping
2820: 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ..^^^^^^^^^^^^^^
2830: 5e 0d 0a 43 6f 6d 70 6c 65 78 20 6d 61 70 70 69  ^..Complex mappi
2840: 6e 67 73 20 63 61 6e 20 62 65 20 68 61 6e 64 6c  ngs can be handl
2850: 65 64 20 77 69 74 68 20 61 20 73 65 70 61 72 61  ed with a separa
2860: 74 65 20 5b 69 74 65 6d 6d 61 70 5d 20 73 65 63  te [itemmap] sec
2870: 74 69 6f 6e 20 28 69 6e 73 74 65 61 64 20 69 66  tion (instead if
2880: 20 61 6e 20 69 74 65 6d 6d 61 70 20 6c 69 6e 65   an itemmap line
2890: 20 69 6e 20 74 68 65 20 5b 72 65 71 75 69 72 65   in the [require
28a0: 6d 65 6e 74 73 5d 20 73 65 63 74 69 6f 6e 29 0d  ments] section).
28b0: 0a 0d 0a 45 61 63 68 20 6c 69 6e 65 20 69 6e 20  ...Each line in 
28c0: 61 6e 20 69 74 65 6d 6d 61 70 20 73 65 63 74 69  an itemmap secti
28d0: 6f 6e 20 73 74 61 72 74 73 20 77 69 74 68 20 61  on starts with a
28e0: 20 77 61 69 74 6f 6e 20 74 65 73 74 20 6e 61 6d   waiton test nam
28f0: 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 6e  e followed by an
2900: 20 69 74 65 6d 6d 61 70 20 65 78 70 72 65 73 73   itemmap express
2910: 69 6f 6e 0d 0a 0d 0a 2e 65 67 3a 20 54 68 65 20  ion.....eg: The 
2920: 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 75 73 65 73  following causes
2930: 20 77 61 69 74 6f 6e 20 74 65 73 74 20 41 20 69   waiton test A i
2940: 74 65 6d 20 2b 62 61 72 2f 31 32 33 34 2b 20 74  tem +bar/1234+ t
2950: 6f 20 72 75 6e 20 77 68 65 6e 20 6f 75 72 20 74  o run when our t
2960: 65 73 74 27 73 20 2b 66 6f 6f 2f 31 32 33 34 2b  est's +foo/1234+
2970: 20 69 74 65 6d 20 69 73 20 72 65 71 75 65 73 74   item is request
2980: 65 64 20 61 73 20 77 65 6c 6c 20 61 73 20 63 61  ed as well as ca
2990: 75 73 69 6e 67 20 77 61 69 74 6f 6e 20 74 65 73  using waiton tes
29a0: 74 20 42 27 73 20 2b 62 6c 61 68 2b 20 69 74 65  t B's +blah+ ite
29b0: 6d 20 74 6f 20 72 75 6e 20 77 68 65 6e 20 6f 75  m to run when ou
29c0: 72 20 74 65 73 74 27 73 20 2b 73 74 75 66 66 2f  r test's +stuff/
29d0: 62 6c 61 68 2b 20 69 74 65 6d 20 69 73 20 72 65  blah+ item is re
29e0: 71 75 65 73 74 65 64 0d 0a 2d 2d 2d 2d 2d 2d 2d  quested..-------
29f0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 69 74 65 6d 6d 61  -------..[itemma
2a00: 70 5d 0d 0a 41 20 66 6f 6f 2f 20 62 61 72 2f 0d  p]..A foo/ bar/.
2a10: 0a 42 20 73 74 75 66 66 2f 0d 0a 2d 2d 2d 2d 2d  .B stuff/..-----
2a20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 0d 0a 43  ---------......C
2a30: 6f 6d 70 6c 65 78 20 6d 61 70 70 69 6e 67 20 65  omplex mapping e
2a40: 78 61 6d 70 6c 65 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e  xample..^^^^^^^^
2a50: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d  ^^^^^^^^^^^^^^^.
2a60: 0a 0d 0a 0d 0a 0d 0a 2f 2f 20 69 6d 61 67 65 3a  .......// image:
2a70: 3a 69 74 65 6d 6d 61 70 2e 70 6e 67 5b 5d 0d 0a  :itemmap.png[]..
2a80: 69 6d 61 67 65 3a 3a 63 6f 6d 70 6c 65 78 2d 69  image::complex-i
2a90: 74 65 6d 6d 61 70 2e 70 6e 67 5b 5d 0d 0a 0d 0a  temmap.png[]....
2aa0: 0d 0a 57 65 20 61 63 63 6f 6d 70 6c 69 73 68 20  ..We accomplish 
2ab0: 74 68 69 73 20 62 79 20 63 6f 6e 66 69 67 75 72  this by configur
2ac0: 69 6e 67 20 74 68 65 20 74 65 73 74 63 6f 6e 66  ing the testconf
2ad0: 69 67 73 20 6f 66 20 6f 75 72 20 74 65 73 74 73  igs of our tests
2ae0: 20 43 20 44 20 61 6e 64 20 45 20 61 73 20 66 6f   C D and E as fo
2af0: 6c 6c 6f 77 73 3a 0d 0a 0d 0a 2e 54 65 73 74 63  llows:.....Testc
2b00: 6f 6e 66 69 67 20 66 6f 72 20 54 65 73 74 20 45  onfig for Test E
2b10: 20 68 61 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   has..----------
2b20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 72  ------------..[r
2b30: 65 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a 77 61  equirements]..wa
2b40: 69 74 6f 6e 20 43 0d 0a 69 74 65 6d 6d 61 70 20  iton C..itemmap 
2b50: 28 5c 64 2b 29 2f 72 65 73 20 5c 31 2f 62 62 0d  (\d+)/res \1/bb.
2b60: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .---------------
2b70: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e 54 65 73 74  -------.....Test
2b80: 63 6f 6e 66 69 67 20 66 6f 72 20 54 65 73 74 20  config for Test 
2b90: 44 20 68 61 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  D has..---------
2ba0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b  -------------..[
2bb0: 72 65 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a 77  requirements]..w
2bc0: 61 69 74 6f 6e 20 43 0d 0a 69 74 65 6d 6d 61 70  aiton C..itemmap
2bd0: 20 28 5c 64 2b 29 2f 72 65 73 20 5c 31 2f 61 61   (\d+)/res \1/aa
2be0: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
2bf0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e 54 65 73  --------.....Tes
2c00: 74 63 6f 6e 66 69 67 20 66 6f 72 20 54 65 73 74  tconfig for Test
2c10: 20 43 20 68 61 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d   C has..--------
2c20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
2c30: 5b 72 65 71 75 69 72 65 6d 65 6e 74 73 5d 0d 0a  [requirements]..
2c40: 77 61 69 74 6f 6e 20 41 20 42 0d 0a 0d 0a 5b 69  waiton A B....[i
2c50: 74 65 6d 6d 61 70 5d 0d 0a 41 20 28 5c 64 2b 29  temmap]..A (\d+)
2c60: 2f 61 61 20 61 61 2f 5c 31 0d 0a 42 20 28 5c 64  /aa aa/\1..B (\d
2c70: 2b 29 2f 62 62 20 62 62 2f 5c 31 0d 0a 2d 2d 2d  +)/bb bb/\1..---
2c80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2c90: 2d 2d 2d 0d 0a 0d 0a 2e 54 65 73 74 63 6f 6e 66  ---.....Testconf
2ca0: 69 67 73 20 66 6f 72 20 54 65 73 74 20 42 20 61  igs for Test B a
2cb0: 6e 64 20 54 65 73 74 20 41 20 68 61 76 65 20 6e  nd Test A have n
2cc0: 6f 20 77 61 69 74 6f 6e 20 6f 72 20 69 74 65 6d  o waiton or item
2cd0: 6d 61 70 20 63 6f 6e 66 69 67 75 72 65 64 0d 0a  map configured..
2ce0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2cf0: 2d 2d 2d 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ---..-----------
2d00: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2e 57 61 6c  --------.....Wal
2d10: 6b 20 74 68 72 6f 75 67 68 20 6f 6e 65 20 69 74  k through one it
2d20: 65 6d 20 2d 2d 20 77 65 20 77 61 6e 74 20 74 68  em -- we want th
2d30: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 68  e following to h
2d40: 61 70 70 65 6e 20 66 6f 72 20 74 65 73 74 70 61  appen for testpa
2d50: 74 74 20 2b 44 2f 31 2f 72 65 73 2b 20 28 73 65  tt +D/1/res+ (se
2d60: 65 20 62 6c 75 65 20 62 6f 78 65 73 20 69 6e 20  e blue boxes in 
2d70: 63 6f 6d 70 6c 65 78 20 69 74 65 6d 6d 61 70 69  complex itemmapi
2d80: 6e 67 20 66 69 67 75 72 65 20 61 62 6f 76 65 29  ng figure above)
2d90: 3a 0d 0a 0d 0a 2e 20 65 67 20 66 72 6f 6d 20 63  :..... eg from c
2da0: 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 2b 6d 65 67  ommand line +meg
2db0: 61 74 65 73 74 20 2d 72 75 6e 20 2d 74 65 73 74  atest -run -test
2dc0: 70 61 74 74 20 44 2f 31 2f 72 65 73 20 2d 74 61  patt D/1/res -ta
2dd0: 72 67 65 74 20 6d 79 74 61 72 67 65 74 20 2d 72  rget mytarget -r
2de0: 75 6e 6e 61 6d 65 20 6d 79 72 75 6e 6e 61 6d 65  unname myrunname
2df0: 2b 0d 0a 2e 20 46 75 6c 6c 20 6c 69 73 74 20 74  +... Full list t
2e00: 6f 20 62 65 20 72 75 6e 20 69 73 20 6e 6f 77 3a  o be run is now:
2e10: 20 2b 44 2f 31 2f 72 65 73 2b 0d 0a 2e 20 54 65   +D/1/res+... Te
2e20: 73 74 20 44 20 68 61 73 20 61 20 77 61 69 74 6f  st D has a waito
2e30: 6e 20 2d 20 74 65 73 74 20 43 2e 20 20 54 65 73  n - test C.  Tes
2e40: 74 20 44 27 73 20 69 74 65 6d 6d 61 70 20 72 75  t D's itemmap ru
2e50: 6c 65 20 2b 69 74 65 6d 6d 61 70 20 28 5c 64 26  le +itemmap (\d&
2e60: 70 6c 75 73 3b 29 2f 72 65 73 20 5c 31 2f 61 61  plus;)/res \1/aa
2e70: 2b 20 2d 3e 20 20 63 61 75 73 65 73 20 2b 43 2f  + ->  causes +C/
2e80: 31 2f 61 61 2b 20 74 6f 20 72 75 6e 20 62 65 66  1/aa+ to run bef
2e90: 6f 72 65 20 2b 44 2f 31 2f 72 65 73 2b 0d 0a 2e  ore +D/1/res+...
2ea0: 20 46 75 6c 6c 20 6c 69 73 74 20 74 6f 20 62 65   Full list to be
2eb0: 20 72 75 6e 20 69 73 20 6e 6f 77 3a 20 2b 44 2f   run is now: +D/
2ec0: 31 2f 72 65 73 2b 2c 20 2b 43 2f 31 2f 61 61 2b  1/res+, +C/1/aa+
2ed0: 0d 0a 2e 20 54 65 73 74 20 43 20 77 61 73 20 61  ... Test C was a
2ee0: 20 77 61 69 74 6f 6e 20 2d 20 74 65 73 74 20 41   waiton - test A
2ef0: 2e 20 54 65 73 74 20 43 27 73 20 72 75 6c 65 20  . Test C's rule 
2f00: 2b 41 20 28 5c 64 26 70 6c 75 73 3b 29 2f 61 61  +A (\d&plus;)/aa
2f10: 20 61 61 2f 5c 31 2b 20 2d 3e 20 63 61 75 73 65   aa/\1+ -> cause
2f20: 73 20 2b 41 2f 61 61 2f 31 2b 20 74 6f 20 72 75  s +A/aa/1+ to ru
2f30: 6e 20 62 65 66 6f 72 65 20 2b 43 2f 31 2f 61 61  n before +C/1/aa
2f40: 2b 0d 0a 2e 20 46 75 6c 6c 20 6c 69 73 74 20 74  +... Full list t
2f50: 6f 20 62 65 20 72 75 6e 20 69 73 20 6e 6f 77 3a  o be run is now:
2f60: 20 2b 44 2f 31 2f 72 65 73 2b 2c 20 2b 43 2f 31   +D/1/res+, +C/1
2f70: 2f 61 61 2b 2c 20 2b 41 2f 61 61 2f 31 2b 0d 0a  /aa+, +A/aa/1+..
2f80: 2e 20 54 65 73 74 20 41 20 68 61 73 20 6e 6f 20  . Test A has no 
2f90: 77 61 69 74 6f 6e 73 2e 20 20 41 6c 6c 20 77 61  waitons.  All wa
2fa0: 69 74 6f 6e 73 20 6f 66 20 61 6c 6c 20 74 65 73  itons of all tes
2fb0: 74 73 20 69 6e 20 66 75 6c 6c 20 6c 69 73 74 20  ts in full list 
2fc0: 68 61 76 65 20 62 65 65 6e 20 70 72 6f 63 65 73  have been proces
2fd0: 73 65 64 2e 20 20 46 75 6c 6c 20 6c 69 73 74 20  sed.  Full list 
2fe0: 69 73 20 66 69 6e 61 6c 69 7a 65 64 2e 0d 0a 0d  is finalized....
2ff0: 0a 0d 0a 44 79 6e 61 6d 69 63 20 46 6c 6f 77 20  ...Dynamic Flow 
3000: 44 65 70 65 6e 64 65 6e 63 79 20 54 72 65 65 0d  Dependency Tree.
3010: 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  .^^^^^^^^^^^^^^^
3020: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d  ^^^^^^^^^^^^^...
3030: 0a 2e 41 75 74 6f 67 65 6e 65 72 61 74 69 6f 6e  ..Autogeneration
3040: 20 77 61 69 74 6f 6e 20 6c 69 73 74 20 66 6f 72   waiton list for
3050: 20 64 79 6e 61 6d 69 63 20 66 6c 6f 77 20 64 65   dynamic flow de
3060: 70 65 6e 64 65 6e 63 79 20 74 72 65 65 73 0d 0a  pendency trees..
3070: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3080: 2d 2d 2d 0d 0a 5b 72 65 71 75 69 72 65 6d 65 6e  ---..[requiremen
3090: 74 73 5d 0d 0a 23 20 57 69 74 68 20 61 20 74 6f  ts]..# With a to
30a0: 70 6c 65 76 65 6c 20 74 65 73 74 20 79 6f 75 20  plevel test you 
30b0: 6d 61 79 20 77 69 73 68 20 74 6f 20 67 65 6e 65  may wish to gene
30c0: 72 61 74 65 20 79 6f 75 72 20 6c 69 73 74 20 0d  rate your list .
30d0: 0a 23 20 6f 66 20 74 65 73 74 73 20 74 6f 20 72  .# of tests to r
30e0: 75 6e 20 64 79 6e 61 6d 69 63 61 6c 6c 79 0d 0a  un dynamically..
30f0: 23 0d 0a 77 61 69 74 6f 6e 20 23 7b 73 68 65 6c  #..waiton #{shel
3100: 6c 20 67 65 74 2d 76 61 6c 69 64 2d 74 65 73 74  l get-valid-test
3110: 73 2d 74 6f 2d 72 75 6e 2e 73 68 7d 0d 0a 2d 2d  s-to-run.sh}..--
3120: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3130: 2d 0d 0a 0d 0a 52 75 6e 20 74 69 6d 65 20 6c 69  -....Run time li
3140: 6d 69 74 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  mit..^^^^^^^^^^^
3150: 5e 5e 5e 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  ^^^....---------
3160: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 72 65 71 75 69  --------..[requi
3170: 72 65 6d 65 6e 74 73 5d 0d 0a 72 75 6e 74 69 6d  rements]..runtim
3180: 65 6c 69 6d 20 31 68 20 32 6d 20 33 73 20 20 23  elim 1h 2m 3s  #
3190: 20 74 68 69 73 20 77 69 6c 6c 20 61 75 74 6f 6d   this will autom
31a0: 61 74 69 63 61 6c 6c 79 20 6b 69 6c 6c 20 74 68  atically kill th
31b0: 65 20 74 65 73 74 20 69 66 20 69 74 20 72 75 6e  e test if it run
31c0: 73 20 66 6f 72 20 6d 6f 72 65 20 74 68 61 6e 20  s for more than 
31d0: 31 68 20 32 6d 20 61 6e 64 20 33 73 0d 0a 2d 2d  1h 2m and 3s..--
31e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
31f0: 0a 0d 0a 53 6b 69 70 0d 0a 5e 5e 5e 5e 0d 0a 0d  ...Skip..^^^^...
3200: 0a 41 20 74 65 73 74 20 77 69 74 68 20 61 20 73  .A test with a s
3210: 6b 69 70 20 73 65 63 74 69 6f 6e 20 77 69 6c 6c  kip section will
3220: 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 73 6b 69   conditional ski
3230: 70 20 72 75 6e 6e 69 6e 67 2e 0d 0a 0d 0a 2e 53  p running......S
3240: 6b 69 70 20 73 65 63 74 69 6f 6e 20 65 78 61 6d  kip section exam
3250: 70 6c 65 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ple..-----------
3260: 2d 2d 2d 2d 2d 2d 0d 0a 5b 73 6b 69 70 5d 0d 0a  ------..[skip]..
3270: 70 72 65 76 72 75 6e 6e 69 6e 67 20 78 0d 0a 23  prevrunning x..#
3280: 20 72 75 6e 64 65 6c 61 79 20 33 30 6d 20 31 35   rundelay 30m 15
3290: 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  s..-------------
32a0: 2d 2d 2d 2d 0d 0a 0d 0a 53 6b 69 70 20 6f 6e 20  ----....Skip on 
32b0: 53 74 69 6c 6c 2d 72 75 6e 6e 69 6e 67 20 54 65  Still-running Te
32c0: 73 74 73 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  sts..^^^^^^^^^^^
32d0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ^^^^^^^^^^^^^^^^
32e0: 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....------------
32f0: 2d 2d 2d 2d 2d 0d 0a 23 20 4e 42 2f 2f 20 49 66  -----..# NB// If
3300: 20 74 68 65 20 70 72 65 76 72 75 6e 6e 69 6e 67   the prevrunning
3310: 20 6c 69 6e 65 20 65 78 69 73 74 73 20 77 69 74   line exists wit
3320: 68 20 2a 61 6e 79 2a 20 76 61 6c 75 65 20 74 68  h *any* value th
3330: 65 20 74 65 73 74 20 77 69 6c 6c 0d 0a 23 20 61  e test will..# a
3340: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 53 4b 49  utomatically SKI
3350: 50 20 69 66 20 74 68 65 20 73 61 6d 65 2d 6e 61  P if the same-na
3360: 6d 65 64 20 74 65 73 74 20 69 73 20 63 75 72 72  med test is curr
3370: 65 6e 74 6c 79 20 52 55 4e 4e 49 4e 47 2e 20 54  ently RUNNING. T
3380: 68 65 0d 0a 23 20 22 78 22 20 63 61 6e 20 62 65  he..# "x" can be
3390: 20 61 6e 79 20 73 74 72 69 6e 67 2e 20 43 6f 6d   any string. Com
33a0: 6d 65 6e 74 20 6f 75 74 20 74 68 65 20 70 72 65  ment out the pre
33b0: 76 72 75 6e 6e 69 6e 67 20 6c 69 6e 65 20 74 6f  vrunning line to
33c0: 20 74 75 72 6e 20 6f 66 66 0d 0a 23 20 73 6b 69   turn off..# ski
33d0: 70 2e 0d 0a 0d 0a 5b 73 6b 69 70 5d 0d 0a 70 72  p.....[skip]..pr
33e0: 65 76 72 75 6e 6e 69 6e 67 20 78 0d 0a 2d 2d 2d  evrunning x..---
33f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
3400: 0d 0a 53 6b 69 70 20 69 66 20 61 20 46 69 6c 65  ..Skip if a File
3410: 20 45 78 69 73 74 73 0d 0a 5e 5e 5e 5e 5e 5e 5e   Exists..^^^^^^^
3420: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a  ^^^^^^^^^^^^^^..
3430: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
3440: 2d 2d 2d 0d 0a 5b 73 6b 69 70 5d 0d 0a 66 69 6c  ---..[skip]..fil
3450: 65 65 78 69 73 74 73 20 2f 70 61 74 68 2f 74 6f  eexists /path/to
3460: 2f 61 2f 66 69 6c 65 20 23 20 73 6b 69 70 20 69  /a/file # skip i
3470: 66 20 2f 70 61 74 68 2f 74 6f 2f 61 2f 66 69 6c  f /path/to/a/fil
3480: 65 20 65 78 69 73 74 73 0d 0a 2d 2d 2d 2d 2d 2d  e exists..------
3490: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 53  -----------....S
34a0: 6b 69 70 20 69 66 20 74 65 73 74 20 72 61 6e 20  kip if test ran 
34b0: 6d 6f 72 65 20 72 65 63 65 6e 74 6c 79 20 74 68  more recently th
34c0: 61 6e 20 73 70 65 63 69 66 69 65 64 20 74 69 6d  an specified tim
34d0: 65 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  e..^^^^^^^^^^^^^
34e0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ^^^^^^^^^^^^^^^^
34f0: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ^^^^^^^^^^^^^^^^
3500: 5e 5e 5e 5e 5e 0d 0a 0d 0a 2e 53 6b 69 70 20 69  ^^^^^.....Skip i
3510: 66 20 74 68 69 73 20 74 65 73 74 20 68 61 73 20  f this test has 
3520: 62 65 65 6e 20 72 75 6e 20 69 6e 20 74 68 65 20  been run in the 
3530: 70 61 73 74 20 66 69 66 74 65 65 6e 20 6d 69 6e  past fifteen min
3540: 75 74 65 73 20 61 6e 64 20 31 35 20 73 65 63 6f  utes and 15 seco
3550: 6e 64 73 2e 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  nds...----------
3560: 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 73 6b 69 70 5d 0d  -------..[skip].
3570: 0a 72 75 6e 64 65 6c 61 79 20 31 35 6d 20 31 35  .rundelay 15m 15
3580: 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  s..-------------
3590: 2d 2d 2d 2d 0d 0a 0d 0a 44 69 73 6b 73 0d 0a 5e  ----....Disks..^
35a0: 5e 5e 5e 5e 0d 0a 0d 0a 41 20 64 69 73 6b 73 20  ^^^^....A disks 
35b0: 73 65 63 74 69 6f 6e 20 69 6e 20 74 65 73 74 63  section in testc
35c0: 6f 6e 66 69 67 20 77 69 6c 6c 20 6f 76 65 72 72  onfig will overr
35d0: 69 64 65 20 74 68 65 20 64 69 73 6b 73 20 73 65  ide the disks se
35e0: 63 74 69 6f 6e 20 69 6e 0d 0a 6d 65 67 61 74 65  ction in..megate
35f0: 73 74 2e 63 6f 6e 66 69 67 2e 20 54 68 69 73 20  st.config. This 
3600: 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 61  can be used to a
3610: 6c 6c 6f 63 61 74 65 20 64 69 73 6b 73 20 6f 6e  llocate disks on
3620: 20 61 20 70 65 72 2d 74 65 73 74 20 6f 72 20 70   a per-test or p
3630: 65 72 20 69 74 65 6d 0d 0a 62 61 73 69 73 2e 0d  er item..basis..
3640: 0a 0d 0a 43 6f 6e 74 72 6f 6c 6c 65 64 20 77 61  ...Controlled wa
3650: 69 76 65 72 20 70 72 6f 70 61 67 61 74 69 6f 6e  iver propagation
3660: 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ..^^^^^^^^^^^^^^
3670: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d  ^^^^^^^^^^^^^^^.
3680: 0a 0d 0a 49 66 20 74 65 73 74 20 69 73 20 46 41  ...If test is FA
3690: 49 4c 20 61 6e 64 20 70 72 65 76 69 6f 75 73 20  IL and previous 
36a0: 74 65 73 74 20 69 6e 20 72 75 6e 20 77 69 74 68  test in run with
36b0: 20 73 61 6d 65 20 4d 54 5f 54 41 52 47 45 54 20   same MT_TARGET 
36c0: 69 73 20 57 41 49 56 45 44 20 74 68 65 6e 20 61  is WAIVED then a
36d0: 70 70 6c 79 20 74 68 65 20 66 6f 6c 6c 6f 77 69  pply the followi
36e0: 6e 67 20 72 75 6c 65 73 20 66 72 6f 6d 20 74 68  ng rules from th
36f0: 65 20 74 65 73 74 63 6f 6e 66 69 67 3a 0d 0a 49  e testconfig:..I
3700: 66 20 61 20 77 61 69 76 65 72 20 63 68 65 63 6b  f a waiver check
3710: 20 69 73 20 73 70 65 63 69 66 69 65 64 20 69 6e   is specified in
3720: 20 74 68 65 20 74 65 73 74 63 6f 6e 66 69 67 20   the testconfig 
3730: 61 70 70 6c 79 20 74 68 65 20 63 68 65 63 6b 20  apply the check 
3740: 61 6e 64 20 69 66 20 69 74 20 70 61 73 73 65 73  and if it passes
3750: 20 74 68 65 6e 20 73 65 74 20 74 68 69 73 20 46   then set this F
3760: 41 49 4c 20 74 6f 20 57 41 49 56 45 44 0d 0a 0d  AIL to WAIVED...
3770: 0a 57 61 69 76 65 72 20 63 68 65 63 6b 20 68 61  .Waiver check ha
3780: 73 20 74 77 6f 20 70 61 72 74 73 2c 20 31 29 20  s two parts, 1) 
3790: 61 20 6c 69 73 74 20 6f 66 20 77 61 69 76 65 72  a list of waiver
37a0: 2c 20 72 75 6c 65 6e 61 6d 65 2c 20 66 69 6c 65  , rulename, file
37b0: 70 61 74 74 65 72 6e 73 20 61 6e 64 20 32 29 20  patterns and 2) 
37c0: 74 68 65 20 72 75 6c 65 6e 61 6d 65 20 73 63 72  the rulename scr
37d0: 69 70 74 20 73 70 65 63 20 28 6e 6f 74 65 20 74  ipt spec (note t
37e0: 68 61 74 20 22 64 69 66 66 22 20 61 6e 64 20 22  hat "diff" and "
37f0: 6c 6f 67 70 72 6f 22 20 61 72 65 20 70 72 65 64  logpro" are pred
3800: 65 66 69 6e 65 64 29 0d 0a 0d 0a 2d 2d 2d 2d 2d  efined)....-----
3810: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 23  ------------..##
3820: 23 23 23 23 20 45 58 41 4d 50 4c 45 20 46 52 4f  #### EXAMPLE FRO
3830: 4d 20 74 65 73 74 63 6f 6e 66 69 67 20 23 23 23  M testconfig ###
3840: 23 23 23 23 23 23 0d 0a 23 20 6d 61 74 63 68 69  ######..# matchi
3850: 6e 67 20 66 69 6c 65 28 73 29 20 77 69 6c 6c 20  ng file(s) will 
3860: 62 65 20 64 69 66 66 27 64 20 77 69 74 68 20 70  be diff'd with p
3870: 72 65 76 69 6f 75 73 20 72 75 6e 20 61 6e 64 20  revious run and 
3880: 6c 6f 67 70 72 6f 20 61 70 70 6c 69 65 64 0d 0a  logpro applied..
3890: 23 20 69 66 20 50 41 53 53 20 6f 72 20 57 41 52  # if PASS or WAR
38a0: 4e 20 72 65 73 75 6c 74 20 66 72 6f 6d 20 6c 6f  N result from lo
38b0: 67 70 72 6f 20 74 68 65 6e 20 57 41 49 56 45 52  gpro then WAIVER
38c0: 20 73 74 61 74 65 20 69 73 20 73 65 74 0d 0a 23   state is set..#
38d0: 0d 0a 5b 77 61 69 76 65 72 73 5d 0d 0a 23 20 6c  ..[waivers]..# l
38e0: 6f 67 70 72 6f 5f 66 69 6c 65 20 20 20 20 72 75  ogpro_file    ru
38f0: 6c 65 6e 61 6d 65 20 20 20 20 20 20 69 6e 70 75  lename      inpu
3900: 74 5f 67 6c 6f 62 0d 0a 77 61 69 76 65 72 5f 31  t_glob..waiver_1
3910: 20 20 20 20 20 20 20 20 20 6c 6f 67 70 72 6f 20           logpro 
3920: 20 20 20 20 20 20 20 6c 6f 6f 6b 69 74 74 6d 70         lookittmp
3930: 2e 6c 6f 67 0d 0a 0d 0a 5b 77 61 69 76 65 72 5f  .log....[waiver_
3940: 72 75 6c 65 73 5d 0d 0a 0d 0a 23 20 54 68 69 73  rules]....# This
3950: 20 62 75 69 6c 74 69 6e 20 72 75 6c 65 20 69 73   builtin rule is
3960: 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 66 20   the default if 
3970: 74 68 65 72 65 20 69 73 20 6e 6f 20 3c 77 61 69  there is no <wai
3980: 76 65 72 6e 61 6d 65 3e 2e 6c 6f 67 70 72 6f 20  vername>.logpro 
3990: 66 69 6c 65 0d 0a 23 20 64 69 66 66 20 20 20 64  file..# diff   d
39a0: 69 66 66 20 25 66 69 6c 65 31 25 20 25 66 69 6c  iff %file1% %fil
39b0: 65 32 25 0d 0a 0d 0a 23 20 54 68 69 73 20 62 75  e2%....# This bu
39c0: 69 6c 74 69 6e 20 72 75 6c 65 20 69 73 20 61 70  iltin rule is ap
39d0: 70 6c 69 65 64 20 69 66 20 61 20 3c 77 61 69 76  plied if a <waiv
39e0: 65 72 6e 61 6d 65 3e 2e 6c 6f 67 70 72 6f 20 66  ername>.logpro f
39f0: 69 6c 65 20 65 78 69 73 74 73 0d 0a 23 20 6c 6f  ile exists..# lo
3a00: 67 70 72 6f 20 64 69 66 66 20 25 66 69 6c 65 31  gpro diff %file1
3a10: 25 20 25 66 69 6c 65 32 25 20 7c 20 6c 6f 67 70  % %file2% | logp
3a20: 72 6f 20 25 77 61 69 76 65 72 6e 61 6d 65 25 2e  ro %waivername%.
3a30: 6c 6f 67 70 72 6f 20 25 77 61 69 76 65 72 6e 61  logpro %waiverna
3a40: 6d 65 25 2e 68 74 6d 6c 0d 0a 2d 2d 2d 2d 2d 2d  me%.html..------
3a50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 45  -----------....E
3a60: 7a 73 74 65 70 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 0d  zsteps..~~~~~~~.
3a70: 0a 0d 0a 2e 45 78 61 6d 70 6c 65 20 65 7a 73 74  ....Example ezst
3a80: 65 70 73 20 77 69 74 68 20 6c 6f 67 70 72 6f 20  eps with logpro 
3a90: 72 75 6c 65 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  rules..---------
3aa0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 65 7a 73 74 65  --------..[ezste
3ab0: 70 73 5d 0d 0a 6c 6f 6f 6b 69 74 74 6d 70 20 20  ps]..lookittmp  
3ac0: 20 6c 73 20 2f 74 6d 70 0d 0a 0d 0a 5b 6c 6f 67   ls /tmp....[log
3ad0: 70 72 6f 5d 0d 0a 6c 6f 6f 6b 69 74 74 6d 70 20  pro]..lookittmp 
3ae0: 3b 3b 20 4e 6f 74 65 3a 20 63 6f 6e 66 69 67 20  ;; Note: config 
3af0: 66 69 6c 65 20 66 6f 72 6d 61 74 20 73 75 70 70  file format supp
3b00: 6f 72 74 73 20 6d 75 6c 74 69 2d 6c 69 6e 65 20  orts multi-line 
3b10: 65 6e 74 72 69 65 73 20 77 68 65 72 65 20 6c 65  entries where le
3b20: 61 64 69 6e 67 20 77 68 69 74 65 73 70 61 63 65  ading whitespace
3b30: 20 69 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d   is removed from
3b40: 20 65 61 63 68 20 6c 69 6e 65 0d 0a 20 20 3b 3b   each line..  ;;
3b50: 20 20 20 20 20 61 20 62 6c 61 6e 6b 20 6c 69 6e       a blank lin
3b60: 65 20 69 6e 64 69 63 61 74 65 73 20 74 68 65 20  e indicates the 
3b70: 65 6e 64 20 6f 66 20 74 68 65 20 62 6c 6f 63 6b  end of the block
3b80: 20 6f 66 20 74 65 78 74 20 0d 0a 20 20 28 65 78   of text ..  (ex
3b90: 70 65 63 74 3a 72 65 71 75 69 72 65 64 20 69 6e  pect:required in
3ba0: 20 22 4c 6f 67 46 69 6c 65 42 6f 64 79 22 20 3e   "LogFileBody" >
3bb0: 20 30 20 22 41 20 66 69 6c 65 20 6e 61 6d 65 20   0 "A file name 
3bc0: 74 68 61 74 20 73 68 6f 75 6c 64 20 6e 65 76 65  that should neve
3bd0: 72 20 65 78 69 73 74 21 22 20 23 2f 54 68 69 73  r exist!" #/This
3be0: 20 69 73 20 61 20 61 77 66 75 6c 6c 79 20 73 74   is a awfully st
3bf0: 75 70 69 64 20 66 69 6c 65 20 6e 61 6d 65 20 74  upid file name t
3c00: 68 61 74 20 73 68 6f 75 6c 64 20 6e 65 76 65 72  hat should never
3c10: 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 74 68 65   be found in the
3c20: 20 74 65 6d 70 20 64 69 72 2f 29 0d 0a 0d 0a 2d   temp dir/)....-
3c30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3c40: 0d 0a 0d 0a 54 6f 20 74 72 61 6e 73 66 65 72 20  ....To transfer 
3c50: 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20  the environment 
3c60: 74 6f 20 74 68 65 20 6e 65 78 74 20 73 74 65 70  to the next step
3c70: 20 79 6f 75 20 63 61 6e 20 64 6f 20 74 68 65 20   you can do the 
3c80: 66 6f 6c 6c 6f 77 69 6e 67 3a 0d 0a 0d 0a 2d 2d  following:....--
3c90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3ca0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 24 4d 54 5f  ----------..$MT_
3cb0: 4d 45 47 41 54 45 53 54 20 2d 65 6e 76 32 66 69  MEGATEST -env2fi
3cc0: 6c 65 20 2e 65 7a 73 74 65 70 73 2f 24 7b 73 74  le .ezsteps/${st
3cd0: 65 70 6e 61 6d 65 7d 09 20 20 0d 0a 2d 2d 2d 2d  epname}.  ..----
3ce0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3cf0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 54 72 69 67  --------....Trig
3d00: 67 65 72 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a  gers..~~~~~~~~..
3d10: 0d 0a 49 6e 20 79 6f 75 72 20 74 65 73 74 63 6f  ..In your testco
3d20: 6e 66 69 67 20 6f 72 20 6d 65 67 61 74 65 73 74  nfig or megatest
3d30: 2e 63 6f 6e 66 69 67 20 74 72 69 67 67 65 72 73  .config triggers
3d40: 20 63 61 6e 20 62 65 20 73 70 65 63 69 66 69 65   can be specifie
3d50: 64 20 0d 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  d ....----------
3d60: 2d 2d 2d 2d 2d 2d 2d 0d 0a 5b 74 72 69 67 67 65  -------..[trigge
3d70: 72 73 5d 0d 0a 0d 0a 23 20 43 61 6c 6c 20 73 63  rs]....# Call sc
3d80: 72 69 70 74 20 72 75 6e 6e 69 6e 67 2e 73 68 20  ript running.sh 
3d90: 77 68 65 6e 20 74 65 73 74 20 67 6f 65 73 20 74  when test goes t
3da0: 6f 20 73 74 61 74 65 3d 52 55 4e 4e 49 4e 47 2c  o state=RUNNING,
3db0: 20 73 74 61 74 75 73 3d 50 41 53 53 0d 0a 52 55   status=PASS..RU
3dc0: 4e 4e 49 4e 47 2f 50 41 53 53 20 72 75 6e 6e 69  NNING/PASS runni
3dd0: 6e 67 2e 73 68 0d 0a 0d 0a 23 20 43 61 6c 6c 20  ng.sh....# Call 
3de0: 73 63 72 69 70 74 20 72 75 6e 6e 69 6e 67 2e 73  script running.s
3df0: 68 20 61 6e 79 20 74 69 6d 65 20 73 74 61 74 65  h any time state
3e00: 20 67 6f 65 73 20 74 6f 20 52 55 4e 4e 49 4e 47   goes to RUNNING
3e10: 0d 0a 52 55 4e 4e 49 4e 47 2f 20 72 75 6e 6e 69  ..RUNNING/ runni
3e20: 6e 67 2e 73 68 0d 0a 0d 0a 23 20 43 61 6c 6c 20  ng.sh....# Call 
3e30: 73 63 72 69 70 74 20 6f 6e 70 61 73 73 2e 73 68  script onpass.sh
3e40: 20 61 6e 79 20 74 69 6d 65 20 73 74 61 74 75 73   any time status
3e50: 20 67 6f 65 73 20 74 6f 20 50 41 53 53 0d 0a 50   goes to PASS..P
3e60: 41 53 53 2f 20 6f 6e 70 61 73 73 2e 73 68 0d 0a  ASS/ onpass.sh..
3e70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3e80: 2d 0d 0a 0d 0a 53 63 72 69 70 74 73 20 63 61 6c  -....Scripts cal
3e90: 6c 65 64 20 77 69 6c 6c 20 68 61 76 65 3b 20 74  led will have; t
3ea0: 65 73 74 2d 69 64 20 74 65 73 74 2d 72 75 6e 64  est-id test-rund
3eb0: 69 72 20 74 72 69 67 67 65 72 20 74 65 73 74 2d  ir trigger test-
3ec0: 6e 61 6d 65 20 69 74 65 6d 2d 70 61 74 68 20 73  name item-path s
3ed0: 74 61 74 65 20 73 74 61 74 75 73 20 65 76 65 6e  tate status even
3ee0: 74 2d 74 69 6d 65 2c 20 61 64 64 65 64 20 74 6f  t-time, added to
3ef0: 20 74 68 65 20 63 6f 6d 6d 61 6e 64 6c 69 6e 65   the commandline
3f00: 2e 0d 0a 0d 0a 48 49 4e 54 0d 0a 0d 0a 54 6f 20  .....HINT....To 
3f10: 73 74 61 72 74 20 61 6e 20 78 74 65 72 6d 20 28  start an xterm (
3f20: 75 73 65 66 75 6c 20 66 6f 72 20 64 65 62 75 67  useful for debug
3f30: 67 69 6e 67 29 2c 20 75 73 65 20 61 20 63 6f 6d  ging), use a com
3f40: 6d 61 6e 64 20 6c 69 6e 65 20 6c 69 6b 65 20 74  mand line like t
3f50: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0d 0a 0d  he following:...
3f60: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .---------------
3f70: 2d 2d 0d 0a 5b 74 72 69 67 67 65 72 73 5d 0d 0a  --..[triggers]..
3f80: 43 4f 4d 50 4c 45 54 45 44 2f 20 78 74 65 72 6d  COMPLETED/ xterm
3f90: 20 2d 65 20 62 61 73 68 20 2d 73 20 2d 2d 20 0d   -e bash -s -- .
3fa0: 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .---------------
3fb0: 2d 2d 0d 0a 0d 0a 4e 4f 54 45 3a 20 54 68 65 72  --....NOTE: Ther
3fc0: 65 20 69 73 20 61 20 74 72 61 69 6c 69 6e 67 20  e is a trailing 
3fd0: 73 70 61 63 65 20 61 66 74 65 72 20 74 68 65 20  space after the 
3fe0: 2d 2d 0d 0a 0d 0a 54 68 65 72 65 20 61 72 65 20  --....There are 
3ff0: 61 20 6e 75 6d 62 65 72 20 6f 66 20 65 6e 76 69  a number of envi
4000: 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65  ronment variable
4010: 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74  s available to t
4020: 68 65 20 74 72 69 67 67 65 72 20 73 63 72 69 70  he trigger scrip
4030: 74 0d 0a 62 75 74 20 73 69 6e 63 65 20 74 72 69  t..but since tri
4040: 67 67 65 72 73 20 63 61 6e 20 62 65 20 63 61 6c  ggers can be cal
4050: 6c 65 64 20 69 6e 20 76 61 72 69 6f 75 73 20 63  led in various c
4060: 6f 6e 74 65 78 74 73 20 6e 6f 74 20 61 6c 6c 20  ontexts not all 
4070: 76 61 72 69 61 62 6c 65 73 20 61 72 65 0d 0a 61  variables are..a
4080: 76 61 69 6c 61 62 6c 65 20 61 74 20 61 6c 6c 20  vailable at all 
4090: 74 69 6d 65 73 2e 20 54 68 65 20 74 72 69 67 67  times. The trigg
40a0: 65 72 20 73 63 72 69 70 74 20 73 68 6f 75 6c 64  er script should
40b0: 20 63 68 65 63 6b 20 66 6f 72 20 74 68 65 20 76   check for the v
40c0: 61 72 69 61 62 6c 65 20 61 6e 64 0d 0a 66 61 69  ariable and..fai
40d0: 6c 20 67 72 61 63 65 66 75 6c 6c 79 20 69 66 20  l gracefully if 
40e0: 69 74 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74  it doesn't exist
40f0: 2e 0d 0a 0d 0a 2e 45 6e 76 69 72 6f 6e 6d 65 6e  ......Environmen
4100: 74 20 76 61 72 69 61 62 6c 65 73 20 76 69 73 69  t variables visi
4110: 62 6c 65 20 74 6f 20 74 68 65 20 74 72 69 67 67  ble to the trigg
4120: 65 72 20 73 63 72 69 70 74 0d 0a 5b 77 69 64 74  er script..[widt
4130: 68 3d 22 39 30 25 22 2c 63 6f 6c 73 3d 22 5e 2c  h="90%",cols="^,
4140: 32 6d 22 2c 66 72 61 6d 65 3d 22 74 6f 70 62 6f  2m",frame="topbo
4150: 74 22 2c 6f 70 74 69 6f 6e 73 3d 22 68 65 61 64  t",options="head
4160: 65 72 22 5d 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d  er"]..|=========
4170: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 7c  =============..|
4180: 56 61 72 69 61 62 6c 65 20 20 20 20 20 20 20 20  Variable        
4190: 20 20 20 20 20 7c 20 50 75 72 70 6f 73 65 20 20       | Purpose  
41a0: 20 20 20 20 20 20 20 20 20 20 0d 0a 7c 20 4d 54            ..| MT
41b0: 5f 54 45 53 54 5f 52 55 4e 5f 44 49 52 20 20 20  _TEST_RUN_DIR   
41c0: 20 20 7c 20 54 68 65 20 64 69 72 65 63 74 6f 72    | The director
41d0: 79 20 77 68 65 72 65 20 4d 65 67 61 74 65 73 74  y where Megatest
41e0: 20 72 61 6e 20 74 68 69 73 20 74 65 73 74 20 20   ran this test  
41f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4200: 20 0d 0a 7c 20 4d 54 5f 43 4d 44 49 4e 46 4f 20   ..| MT_CMDINFO 
4210: 20 20 20 20 20 20 20 20 20 7c 20 45 6e 63 6f 64           | Encod
4220: 65 64 20 63 6f 6d 6d 61 6e 64 20 64 61 74 61 20  ed command data 
4230: 66 6f 72 20 74 68 65 20 74 65 73 74 20 20 20 20  for the test    
4240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d                 .
4250: 0a 7c 20 4d 54 5f 44 45 42 55 47 5f 4d 4f 44 45  .| MT_DEBUG_MODE
4260: 20 20 20 20 20 20 20 7c 20 55 73 65 64 20 74 6f         | Used to
4270: 20 70 61 73 73 20 74 68 65 20 64 65 62 75 67 20   pass the debug 
4280: 6d 6f 64 65 20 74 6f 20 6e 65 73 74 65 64 20 63  mode to nested c
4290: 61 6c 6c 73 20 74 6f 20 4d 65 67 61 74 65 73 74  alls to Megatest
42a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
42b0: 20 20 20 0d 0a 7c 20 4d 54 5f 52 55 4e 5f 41 52     ..| MT_RUN_AR
42c0: 45 41 5f 48 4f 4d 45 20 20 20 20 7c 20 4d 65 67  EA_HOME    | Meg
42d0: 61 74 65 73 74 20 68 6f 6d 65 20 61 72 65 61 20  atest home area 
42e0: 0d 0a 7c 20 4d 54 5f 54 45 53 54 53 55 49 54 45  ..| MT_TESTSUITE
42f0: 4e 41 4d 45 20 20 20 20 7c 20 54 68 65 20 6e 61  NAME    | The na
4300: 6d 65 20 6f 66 20 74 68 69 73 20 74 65 73 74 73  me of this tests
4310: 75 69 74 65 20 6f 72 20 61 72 65 61 20 20 20 20  uite or area    
4320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d                 .
4330: 0a 7c 20 4d 54 5f 54 45 53 54 5f 4e 41 4d 45 20  .| MT_TEST_NAME 
4340: 20 20 20 20 20 20 20 7c 20 54 68 65 20 6e 61 6d         | The nam
4350: 65 20 6f 66 20 74 68 69 73 20 74 65 73 74 0d 0a  e of this test..
4360: 7c 20 4d 54 5f 49 54 45 4d 5f 49 4e 46 4f 20 20  | MT_ITEM_INFO  
4370: 20 20 20 20 20 20 7c 20 54 68 65 20 76 61 72 69        | The vari
4380: 61 62 6c 65 20 61 6e 64 20 76 61 6c 75 65 73 20  able and values 
4390: 66 6f 72 20 74 68 65 20 74 65 73 74 20 69 74 65  for the test ite
43a0: 6d 0d 0a 7c 20 4d 54 5f 4d 45 47 41 54 45 53 54  m..| MT_MEGATEST
43b0: 20 20 20 20 20 20 20 20 20 7c 20 57 68 69 63 68           | Which
43c0: 20 4d 65 67 61 74 65 73 74 20 62 69 6e 61 72 79   Megatest binary
43d0: 20 69 73 20 62 65 69 6e 67 20 75 73 65 64 20 62   is being used b
43e0: 79 20 74 68 69 73 20 61 72 65 61 0d 0a 7c 20 4d  y this area..| M
43f0: 54 5f 54 41 52 47 45 54 20 20 20 20 20 20 20 20  T_TARGET        
4400: 20 20 20 7c 20 54 68 65 20 74 61 72 67 65 74 20     | The target 
4410: 76 61 72 69 61 62 6c 65 20 76 61 6c 75 65 73 2c  variable values,
4420: 20 73 65 70 61 72 61 74 65 64 20 62 79 20 27 2f   separated by '/
4430: 27 0d 0a 7c 20 4d 54 5f 4c 49 4e 4b 54 52 45 45  '..| MT_LINKTREE
4440: 20 20 20 20 20 20 20 20 20 7c 20 54 68 65 20 62           | The b
4450: 61 73 65 20 6f 66 20 74 68 65 20 6c 69 6e 6b 20  ase of the link 
4460: 74 72 65 65 20 77 68 65 72 65 20 61 6c 6c 20 72  tree where all r
4470: 75 6e 20 74 65 73 74 73 20 63 61 6e 20 62 65 20  un tests can be 
4480: 66 6f 75 6e 64 0d 0a 7c 20 4d 54 5f 49 54 45 4d  found..| MT_ITEM
4490: 50 41 54 48 20 20 20 20 20 20 20 20 20 7c 20 54  PATH         | T
44a0: 68 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65  he values of the
44b0: 20 69 74 65 6d 20 70 61 74 68 20 76 61 72 69 61   item path varia
44c0: 62 6c 65 73 2c 20 73 65 70 61 72 61 74 65 64 20  bles, separated 
44d0: 62 79 20 27 2f 27 0d 0a 7c 20 4d 54 5f 52 55 4e  by '/'..| MT_RUN
44e0: 4e 41 4d 45 20 20 20 20 20 20 20 20 20 20 7c 20  NAME          | 
44f0: 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20  The name of the 
4500: 72 75 6e 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  run..|==========
4510: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a  ============....
4520: 0d 0a 4f 76 65 72 72 69 64 65 20 74 68 65 20 54  ..Override the T
4530: 6f 70 6c 65 76 65 6c 20 48 54 4d 4c 20 46 69 6c  oplevel HTML Fil
4540: 65 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  e..~~~~~~~~~~~~~
4550: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
4560: 7e 7e 0d 0a 0d 0a 4d 65 67 61 74 65 73 74 20 67  ~~....Megatest g
4570: 65 6e 65 72 61 74 65 73 20 61 20 73 69 6d 70 6c  enerates a simpl
4580: 65 20 68 74 6d 6c 20 66 69 6c 65 20 73 75 6d 6d  e html file summ
4590: 61 72 79 20 66 6f 72 20 74 6f 70 20 6c 65 76 65  ary for top leve
45a0: 6c 20 74 65 73 74 73 20 6f 66 0d 0a 69 74 65 72  l tests of..iter
45b0: 61 74 65 64 20 74 65 73 74 73 2e 20 54 68 65 20  ated tests. The 
45c0: 67 65 6e 65 72 61 74 69 6f 6e 20 63 61 6e 20 62  generation can b
45d0: 65 20 6f 76 65 72 72 69 64 64 65 6e 2e 20 4e 4f  e overridden. NO
45e0: 54 45 3a 20 74 68 65 20 6f 75 74 70 75 74 20 6f  TE: the output o
45f0: 66 0d 0a 74 68 65 20 73 63 72 69 70 74 20 69 73  f..the script is
4600: 20 63 61 70 74 75 72 65 64 20 66 72 6f 6d 20 73   captured from s
4610: 74 64 6f 75 74 20 74 6f 20 63 72 65 61 74 65 20  tdout to create 
4620: 74 68 65 20 68 74 6d 6c 2e 0d 0a 0d 0a 0d 0a 2e  the html........
4630: 46 6f 72 20 74 65 73 74 20 22 72 75 6e 66 69 72  For test "runfir
4640: 73 74 22 20 6f 76 65 72 72 69 64 65 20 74 68 65  st" override the
4650: 20 74 6f 70 6c 65 76 65 6c 20 67 65 6e 65 72 61   toplevel genera
4660: 74 69 6f 6e 20 77 69 74 68 20 61 20 73 63 72 69  tion with a scri
4670: 70 74 20 22 6d 79 73 75 6d 6d 61 72 79 2e 73 68  pt "mysummary.sh
4680: 22 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  "..-------------
4690: 2d 2d 2d 2d 0d 0a 23 20 4f 76 65 72 72 69 64 65  ----..# Override
46a0: 20 74 68 65 20 72 6f 6c 6c 75 70 20 66 6f 72 20   the rollup for 
46b0: 73 70 65 63 69 66 69 63 20 74 65 73 74 73 0d 0a  specific tests..
46c0: 5b 74 65 73 74 72 6f 6c 6c 75 70 5d 0d 0a 72 75  [testrollup]..ru
46d0: 6e 66 69 72 73 74 20 6d 79 73 75 6d 6d 61 72 79  nfirst mysummary
46e0: 2e 73 68 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .sh..-----------
46f0: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 41 72 63 68 69 76  ------....Archiv
4700: 69 6e 67 20 53 65 74 75 70 0d 0a 2d 2d 2d 2d 2d  ing Setup..-----
4710: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 49 6e  ----------....In
4720: 20 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 69 67   megatest.config
4730: 20 61 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69   add the followi
4740: 6e 67 20 73 65 63 74 69 6f 6e 73 3a 0d 0a 0d 0a  ng sections:....
4750: 2e 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 69 67  .megatest.config
4760: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
4770: 0d 0a 5b 61 72 63 68 69 76 65 5d 0d 0a 23 20 77  ..[archive]..# w
4780: 68 65 72 65 20 74 6f 20 67 65 74 20 62 75 70 20  here to get bup 
4790: 65 78 65 63 75 74 61 62 6c 65 0d 0a 23 20 62 75  executable..# bu
47a0: 70 20 2f 70 61 74 68 2f 74 6f 2f 62 75 70 0d 0a  p /path/to/bup..
47b0: 0d 0a 5b 61 72 63 68 69 76 65 2d 64 69 73 6b 73  ..[archive-disks
47c0: 5d 0d 0a 0d 0a 23 20 41 72 63 68 69 76 65 73 20  ]....# Archives 
47d0: 77 69 6c 6c 20 62 65 20 6f 72 67 61 6e 69 73 65  will be organise
47e0: 64 20 75 6e 64 65 72 20 74 68 65 73 65 20 70 61  d under these pa
47f0: 74 68 73 20 6c 69 6b 65 20 74 68 69 73 3a 0d 0a  ths like this:..
4800: 23 20 20 3c 74 65 73 74 73 75 69 74 65 3e 2f 3c  #  <testsuite>/<
4810: 63 72 65 61 74 69 6f 6e 64 61 74 65 3e 0d 0a 23  creationdate>..#
4820: 20 57 69 74 68 69 6e 20 74 68 65 20 61 72 63 68   Within the arch
4830: 69 76 65 20 74 68 65 20 64 61 74 61 20 69 73 20  ive the data is 
4840: 73 74 72 75 63 74 75 72 65 64 20 6c 69 6b 65 20  structured like 
4850: 74 68 69 73 3a 0d 0a 23 20 20 3c 74 61 72 67 65  this:..#  <targe
4860: 74 3e 2f 3c 72 75 6e 6e 61 6d 65 3e 2f 3c 74 65  t>/<runname>/<te
4870: 73 74 3e 2f 0d 0a 61 72 63 68 69 76 65 30 20 2f  st>/..archive0 /
4880: 6d 66 73 2f 6d 79 61 72 63 68 69 76 65 2d 64 61  mfs/myarchive-da
4890: 74 61 2f 61 64 69 73 6b 31 0d 0a 2d 2d 2d 2d 2d  ta/adisk1..-----
48a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 48 61 6e  ---------....Han
48b0: 64 6c 69 6e 67 20 45 6e 76 69 72 6f 6e 6d 65 6e  dling Environmen
48c0: 74 20 56 61 72 69 61 62 6c 65 73 0d 0a 2d 2d 2d  t Variables..---
48d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
48e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 49  -----------....I
48f0: 74 20 69 73 20 6f 66 74 65 6e 20 6e 65 63 65 73  t is often neces
4900: 73 61 72 79 20 74 6f 20 63 61 70 74 75 72 65 20  sary to capture 
4910: 61 6e 64 20 6f 72 20 6d 61 6e 69 70 75 6c 61 74  and or manipulat
4920: 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0d 0a 76  e environment..v
4930: 61 72 69 61 62 6c 65 73 2e 20 4d 65 67 61 74 65  ariables. Megate
4940: 73 74 20 68 61 73 20 73 6f 6d 65 20 66 61 63 69  st has some faci
4950: 6c 69 74 69 65 73 20 62 75 69 6c 74 20 69 6e 20  lities built in 
4960: 74 6f 20 68 65 6c 70 2e 0d 0a 0d 0a 43 61 70 74  to help.....Capt
4970: 75 72 65 20 76 61 72 69 61 62 6c 65 73 0d 0a 7e  ure variables..~
4980: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
4990: 0d 0a 0d 0a 2e 43 6f 6d 6d 61 6e 64 73 0d 0a 2d  .....Commands..-
49a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
49b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23  -------------..#
49c0: 20 63 61 70 74 75 72 65 20 74 68 65 20 63 75 72   capture the cur
49d0: 72 65 6e 74 20 65 6e 76 69 72 6f 6d 65 6e 74 20  rent enviroment 
49e0: 69 6e 74 6f 20 61 20 64 62 20 63 61 6c 6c 65 64  into a db called
49f0: 20 65 6e 76 64 61 74 2e 64 62 20 75 6e 64 65 72   envdat.db under
4a00: 0d 0a 23 20 74 68 65 20 63 6f 6e 74 65 78 74 20  ..# the context 
4a10: 22 62 65 66 6f 72 65 22 0d 0a 6d 65 67 61 74 65  "before"..megate
4a20: 73 74 20 2d 65 6e 76 63 61 70 20 62 65 66 6f 72  st -envcap befor
4a30: 65 0d 0a 0d 0a 23 20 63 61 70 74 75 72 65 20 74  e....# capture t
4a40: 68 65 20 63 75 72 72 65 6e 74 20 65 6e 76 69 72  he current envir
4a50: 6f 6e 6d 65 6e 74 20 69 6e 74 6f 20 61 20 64 62  onment into a db
4a60: 20 63 61 6c 6c 65 64 20 73 74 61 72 74 75 70 2e   called startup.
4a70: 64 62 20 77 69 74 68 20 0d 0a 23 20 63 6f 6e 74  db with ..# cont
4a80: 65 78 74 20 22 61 66 74 65 72 22 0d 0a 6d 65 67  ext "after"..meg
4a90: 61 74 65 73 74 20 2d 65 6e 76 63 61 70 20 61 66  atest -envcap af
4aa0: 74 65 72 20 73 74 61 72 74 75 70 2e 64 62 0d 0a  ter startup.db..
4ab0: 0d 0a 23 20 77 72 69 74 65 20 74 68 65 20 64 69  ..# write the di
4ac0: 66 66 20 66 72 6f 6d 20 62 65 66 6f 72 65 20 74  ff from before t
4ad0: 6f 20 61 66 74 65 72 0d 0a 6d 65 67 61 74 65 73  o after..megates
4ae0: 74 20 2d 65 6e 76 64 65 6c 74 61 20 62 65 66 6f  t -envdelta befo
4af0: 72 65 2d 61 66 74 65 72 20 2d 64 75 6d 70 6d 6f  re-after -dumpmo
4b00: 64 65 20 62 61 73 68 0d 0a 2d 2d 2d 2d 2d 2d 2d  de bash..-------
4b10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4b20: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 44 75 6d 70 20  -------....Dump 
4b30: 6d 6f 64 65 73 20 69 6e 63 6c 75 64 65 20 62 61  modes include ba
4b40: 73 68 2c 20 63 73 68 20 61 6e 64 20 63 6f 6e 66  sh, csh and conf
4b50: 69 67 2e 20 59 6f 75 20 63 61 6e 20 69 6e 63 6c  ig. You can incl
4b60: 75 64 65 20 63 6f 6e 66 69 67 20 64 61 74 61 0d  ude config data.
4b70: 0a 69 6e 74 6f 20 6d 65 67 61 74 65 73 74 2e 63  .into megatest.c
4b80: 6f 6e 66 69 67 20 6f 72 20 72 75 6e 63 6f 6e 66  onfig or runconf
4b90: 69 67 73 2e 63 6f 6e 66 69 67 2e 0d 0a 0d 0a 2e  igs.config......
4ba0: 45 78 61 6d 70 6c 65 20 6f 66 20 67 65 6e 65 72  Example of gener
4bb0: 61 74 69 6e 67 20 61 6e 64 20 75 73 69 6e 67 20  ating and using 
4bc0: 63 6f 6e 66 69 67 20 64 61 74 61 0d 0a 2d 2d 2d  config data..---
4bd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4be0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 6d 65 67  -----------..meg
4bf0: 61 74 65 73 74 20 2d 65 6e 76 63 61 70 20 6f 72  atest -envcap or
4c00: 69 67 69 6e 61 6c 0d 0a 23 20 64 6f 20 73 6f 6d  iginal..# do som
4c10: 65 20 73 74 75 66 66 20 68 65 72 65 0d 0a 6d 65  e stuff here..me
4c20: 67 61 74 65 73 74 20 2d 65 6e 76 63 61 70 20 6d  gatest -envcap m
4c30: 75 6e 67 65 64 0d 0a 6d 65 67 61 74 65 73 74 20  unged..megatest 
4c40: 2d 65 6e 76 64 65 6c 74 61 20 6f 72 69 67 69 6e  -envdelta origin
4c50: 61 6c 2d 6d 75 6e 67 65 64 20 2d 64 75 6d 70 6d  al-munged -dumpm
4c60: 6f 64 65 20 69 6e 69 20 2d 6f 20 6d 6f 64 69 66  ode ini -o modif
4c70: 69 65 64 2e 63 6f 6e 66 69 67 0d 0a 2d 2d 2d 2d  ied.config..----
4c80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4c90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 54 68  ----------....Th
4ca0: 65 6e 20 69 6e 20 72 75 6e 63 6f 6e 66 69 67 73  en in runconfigs
4cb0: 2e 63 6f 6e 66 69 67 0d 0a 0d 0a 2e 45 78 61 6d  .config.....Exam
4cc0: 70 6c 65 20 6f 66 20 75 73 69 6e 67 20 6d 6f 64  ple of using mod
4cd0: 69 66 69 65 64 2e 63 6f 6e 66 69 67 20 69 6e 20  ified.config in 
4ce0: 61 20 74 65 73 74 63 6f 6e 66 69 67 0d 0a 2d 2d  a testconfig..--
4cf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4d00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 63 61  ------------..ca
4d10: 74 20 74 65 73 74 63 6f 6e 66 69 67 0d 0a 5b 70  t testconfig..[p
4d20: 72 65 2d 6c 61 75 6e 63 68 2d 65 6e 76 2d 76 61  re-launch-env-va
4d30: 72 73 5d 0d 0a 5b 69 6e 63 6c 75 64 65 20 6d 6f  rs]..[include mo
4d40: 64 69 66 69 65 64 2e 63 6f 6e 66 69 67 5d 0d 0a  dified.config]..
4d50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4d60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
4d70: 0d 0a 4d 61 6e 61 67 69 6e 67 20 4f 6c 64 20 52  ..Managing Old R
4d80: 75 6e 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  uns..-----------
4d90: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 49 74 20 69 73 20  ------....It is 
4da0: 6f 66 74 65 6e 20 64 65 73 69 72 65 64 20 74 6f  often desired to
4db0: 20 6b 65 65 70 20 73 6f 6d 65 20 6f 6c 64 65 72   keep some older
4dc0: 20 72 75 6e 73 20 61 72 6f 75 6e 64 20 62 75 74   runs around but
4dd0: 20 74 68 69 73 20 6d 75 73 74 20 62 65 20 62 61   this must be ba
4de0: 6c 61 6e 63 65 64 20 77 69 74 68 20 74 68 65 20  lanced with the 
4df0: 63 6f 73 74 73 20 6f 66 20 64 69 73 6b 20 73 70  costs of disk sp
4e00: 61 63 65 2e 0d 0a 0d 0a 2e 20 55 73 65 20 2d 72  ace...... Use -r
4e10: 65 6d 6f 76 65 2d 6b 65 65 70 0d 0a 2e 20 55 73  emove-keep... Us
4e20: 65 20 2d 61 72 63 68 69 76 65 20 28 63 61 6e 20  e -archive (can 
4e30: 61 6c 73 6f 20 62 65 20 64 6f 6e 65 20 66 72 6f  also be done fro
4e40: 6d 20 74 68 65 20 2d 72 65 6d 6f 76 65 2d 6b 65  m the -remove-ke
4e50: 65 70 20 69 6e 74 65 72 66 61 63 65 29 0d 0a 2e  ep interface)...
4e60: 20 75 73 65 20 2d 72 65 6d 6f 76 65 2d 72 75 6e   use -remove-run
4e70: 73 20 77 69 74 68 20 2d 6b 65 65 70 2d 72 65 63  s with -keep-rec
4e80: 6f 72 64 73 0d 0a 0d 0a 2e 46 6f 72 20 65 61 63  ords.....For eac
4e90: 68 20 74 61 72 67 65 74 2c 20 72 65 6d 6f 76 65  h target, remove
4ea0: 20 61 6c 6c 20 72 75 6e 73 20 62 75 74 20 74 68   all runs but th
4eb0: 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 33 20  e most recent 3 
4ec0: 69 66 20 74 68 65 79 20 61 72 65 20 6f 76 65 72  if they are over
4ed0: 20 31 20 77 65 65 6b 20 6f 6c 64 0d 0a 2d 2d 2d   1 week old..---
4ee0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4ef0: 2d 2d 0d 0a 23 20 75 73 65 20 2d 70 72 65 63 6d  --..# use -precm
4f00: 64 20 27 73 6c 65 65 70 20 35 3b 6e 62 66 61 6b  d 'sleep 5;nbfak
4f10: 65 27 20 74 6f 20 6c 69 6d 69 74 20 6f 76 65 72  e' to limit over
4f20: 6c 6f 61 64 69 6e 67 20 74 68 65 20 68 6f 73 74  loading the host
4f30: 20 63 6f 6d 70 75 74 65 72 20 62 75 74 20 74 6f   computer but to
4f40: 20 61 6c 6c 6f 77 20 74 68 65 20 72 65 6d 6f 76   allow the remov
4f50: 65 73 20 74 6f 20 72 75 6e 20 69 6e 20 70 61 72  es to run in par
4f60: 61 6c 6c 65 6c 2e 0d 0a 6d 65 67 61 74 65 73 74  allel...megatest
4f70: 20 2d 61 63 74 69 6f 6e 73 20 70 72 69 6e 74 2c   -actions print,
4f80: 72 65 6d 6f 76 65 2d 72 75 6e 73 20 2d 72 65 6d  remove-runs -rem
4f90: 6f 76 65 2d 6b 65 65 70 20 33 20 2d 74 61 72 67  ove-keep 3 -targ
4fa0: 65 74 20 25 2f 25 2f 25 2f 25 20 2d 72 75 6e 6e  et %/%/%/% -runn
4fb0: 61 6d 65 20 25 20 2d 61 67 65 20 31 77 20 2d 70  ame % -age 1w -p
4fc0: 72 65 63 6d 64 20 27 73 6c 65 65 70 20 35 3b 6e  recmd 'sleep 5;n
4fd0: 62 66 61 6b 65 27 22 0d 0a 2d 2d 2d 2d 2d 2d 2d  bfake'"..-------
4fe0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
4ff0: 0d 0a 4e 65 73 74 65 64 20 52 75 6e 73 0d 0a 2d  ..Nested Runs..-
5000: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 41 20  ----------....A 
5010: 4d 65 67 61 74 65 73 74 20 74 65 73 74 20 63 61  Megatest test ca
5020: 6e 20 72 75 6e 20 61 20 66 75 6c 6c 20 4d 65 67  n run a full Meg
5030: 61 74 65 73 74 20 72 75 6e 20 69 6e 20 65 69 74  atest run in eit
5040: 68 65 72 20 74 68 65 20 73 61 6d 65 0d 0a 4d 65  her the same..Me
5050: 67 61 74 65 73 74 20 61 72 65 61 20 6f 72 20 69  gatest area or i
5060: 6e 20 61 6e 6f 74 68 65 72 20 61 72 65 61 2e 20  n another area. 
5070: 54 68 69 73 20 69 73 20 61 20 70 6f 77 65 72 66  This is a powerf
5080: 75 6c 20 77 61 79 20 6f 66 20 63 68 61 69 6e 69  ul way of chaini
5090: 6e 67 0d 0a 63 6f 6d 70 6c 65 78 20 73 75 69 74  ng..complex suit
50a0: 65 73 20 6f 66 20 74 65 73 74 73 20 61 6e 64 20  es of tests and 
50b0: 6f 72 20 61 63 74 69 6f 6e 73 2e 0d 0a 0d 0a 49  or actions.....I
50c0: 66 20 79 6f 75 20 61 72 65 20 6e 6f 74 20 75 73  f you are not us
50d0: 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20  ing the current 
50e0: 61 72 65 61 20 79 6f 75 20 63 61 6e 20 75 73 65  area you can use
50f0: 20 65 7a 73 74 65 70 73 20 74 6f 20 72 65 74 72   ezsteps to retr
5100: 69 65 76 65 0d 0a 61 6e 64 20 73 65 74 75 70 20  ieve..and setup 
5110: 74 68 65 20 73 75 62 2d 4d 65 67 61 74 65 73 74  the sub-Megatest
5120: 20 72 75 6e 20 61 72 65 61 2e 0d 0a 0d 0a 49 6e   run area.....In
5130: 20 74 68 65 20 74 65 73 74 63 6f 6e 66 69 67 3a   the testconfig:
5140: 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..--------------
5150: 2d 0d 0a 5b 73 75 62 72 75 6e 5d 0d 0a 0d 0a 23  -..[subrun]....#
5160: 20 52 65 71 75 69 72 65 64 3a 20 77 61 69 74 20   Required: wait 
5170: 66 6f 72 20 74 68 65 20 72 75 6e 20 6f 72 20 6a  for the run or j
5180: 75 73 74 20 6c 61 75 6e 63 68 20 69 74 0d 0a 23  ust launch it..#
5190: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f             if no
51a0: 20 74 68 65 6e 20 74 68 65 20 72 75 6e 20 77 69   then the run wi
51b0: 6c 6c 20 62 65 20 61 6e 20 61 75 74 6f 6d 61 74  ll be an automat
51c0: 69 63 20 50 41 53 53 20 69 72 72 65 73 70 65 63  ic PASS irrespec
51d0: 74 69 76 65 20 6f 66 20 74 68 65 20 61 63 74 75  tive of the actu
51e0: 61 6c 20 72 65 73 75 6c 74 0d 0a 72 75 6e 2d 77  al result..run-w
51f0: 61 69 74 20 79 65 73 7c 6e 6f 0d 0a 0d 0a 23 20  ait yes|no....# 
5200: 4f 70 74 69 6f 6e 61 6c 3a 20 77 68 65 72 65 20  Optional: where 
5210: 74 6f 20 65 78 65 63 75 74 65 20 74 68 65 20 72  to execute the r
5220: 75 6e 2e 20 44 65 66 61 75 6c 74 20 69 73 20 74  un. Default is t
5230: 68 65 20 63 75 72 72 65 6e 74 20 72 75 6e 61 72  he current runar
5240: 65 61 0d 0a 72 75 6e 2d 61 72 65 61 20 2f 73 6f  ea..run-area /so
5250: 6d 65 2f 70 61 74 68 2f 74 6f 2f 6d 65 67 61 74  me/path/to/megat
5260: 65 73 74 2f 61 72 65 61 0d 0a 0d 0a 23 20 4f 70  est/area....# Op
5270: 74 69 6f 6e 61 6c 3a 20 6d 65 74 68 6f 64 20 74  tional: method t
5280: 6f 20 75 73 65 20 74 6f 20 64 65 74 65 72 6d 69  o use to determi
5290: 6e 65 20 70 61 73 73 2f 66 61 69 6c 20 73 74 61  ne pass/fail sta
52a0: 74 75 73 20 6f 66 20 74 68 65 20 72 75 6e 0d 0a  tus of the run..
52b0: 23 20 20 20 61 75 74 6f 20 28 64 65 66 61 75 6c  #   auto (defaul
52c0: 74 29 20 2d 20 72 6f 6c 6c 20 75 70 20 74 68 65  t) - roll up the
52d0: 20 6e 65 74 20 73 74 61 74 65 2f 73 74 61 74 75   net state/statu
52e0: 73 20 6f 66 20 74 68 65 20 73 75 62 2d 72 75 6e  s of the sub-run
52f0: 0d 0a 23 20 20 20 6c 6f 67 70 72 6f 20 20 20 20  ..#   logpro    
5300: 20 20 20 20 20 2d 20 75 73 65 20 74 68 65 20 70       - use the p
5310: 72 6f 76 69 64 65 64 20 6c 6f 67 70 72 6f 20 72  rovided logpro r
5320: 75 6c 65 73 2c 20 68 61 70 70 65 6e 73 20 61 75  ules, happens au
5330: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 69 66 20 74  tomatically if t
5340: 68 65 72 65 20 69 73 20 61 20 6c 6f 67 70 72 6f  here is a logpro
5350: 20 73 65 63 74 69 6f 6e 0d 0a 23 20 70 61 73 73   section..# pass
5360: 66 61 69 6c 20 61 75 74 6f 7c 6c 6f 67 70 72 6f  fail auto|logpro
5370: 0d 0a 23 20 45 78 61 6d 70 6c 65 20 6f 66 20 6c  ..# Example of l
5380: 6f 67 70 72 6f 3a 0d 0a 70 61 73 73 66 61 69 6c  ogpro:..passfail
5390: 20 6c 6f 67 70 72 6f 0d 0a 0d 0a 23 20 4f 70 74   logpro....# Opt
53a0: 69 6f 6e 61 6c 3a 20 0d 0a 6c 6f 67 70 72 6f 20  ional: ..logpro 
53b0: 3b 3b 20 69 66 20 74 68 69 73 20 73 65 63 74 69  ;; if this secti
53c0: 6f 6e 20 65 78 69 73 74 73 20 74 68 65 6e 20 6c  on exists then l
53d0: 6f 67 70 72 6f 20 69 73 20 75 73 65 64 20 74 6f  ogpro is used to
53e0: 20 64 65 74 65 72 6d 69 6e 65 20 70 61 73 73 2f   determine pass/
53f0: 66 61 69 6c 0d 0a 20 20 28 65 78 70 65 63 74 3a  fail..  (expect:
5400: 72 65 71 75 69 72 65 64 20 69 6e 20 22 4c 6f 67  required in "Log
5410: 46 69 6c 65 42 6f 64 79 22 20 3e 3d 20 31 20 22  FileBody" >= 1 "
5420: 41 74 20 6c 65 61 73 74 20 6f 6e 65 20 70 61 73  At least one pas
5430: 73 22 20 23 2f 50 41 53 53 2f 29 0d 0a 20 20 28  s" #/PASS/)..  (
5440: 65 78 70 65 63 74 3a 66 61 69 6c 20 20 20 20 20  expect:fail     
5450: 69 6e 20 22 4c 6f 67 46 69 6c 65 42 6f 64 79 22  in "LogFileBody"
5460: 20 20 3d 20 30 20 22 4e 6f 20 46 41 49 4c 73 20    = 0 "No FAILs 
5470: 61 6c 6c 6f 77 65 64 22 20 20 23 2f 46 41 49 4c  allowed"  #/FAIL
5480: 2f 29 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61 6c  /)....# Optional
5490: 3a 20 74 61 72 67 65 74 20 74 72 61 6e 73 6c 61  : target transla
54a0: 74 6f 72 2c 20 64 65 66 61 75 6c 74 20 69 73 20  tor, default is 
54b0: 74 6f 20 75 73 65 20 74 68 65 20 70 61 72 65 6e  to use the paren
54c0: 74 20 74 61 72 67 65 74 0d 0a 74 61 72 67 65 74  t target..target
54d0: 20 23 7b 73 68 65 6c 6c 20 73 6f 6d 65 73 63 72   #{shell somescr
54e0: 69 70 74 2e 73 68 7d 0d 0a 0d 0a 23 20 4f 70 74  ipt.sh}....# Opt
54f0: 69 6f 6e 61 6c 3a 20 72 75 6e 6e 61 6d 65 20 74  ional: runname t
5500: 72 61 6e 73 6c 61 74 6f 72 2f 67 65 6e 65 72 61  ranslator/genera
5510: 74 6f 72 2c 20 64 65 66 61 75 6c 74 20 69 73 20  tor, default is 
5520: 74 6f 20 75 73 65 20 74 68 65 20 70 61 72 65 6e  to use the paren
5530: 74 20 72 75 6e 6e 61 6d 65 0d 0a 72 75 6e 2d 6e  t runname..run-n
5540: 61 6d 65 20 23 7b 73 6f 6d 65 73 63 72 69 70 74  ame #{somescript
5550: 2e 73 68 7d 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e  .sh}....# Option
5560: 61 6c 3a 20 74 65 73 74 70 61 74 74 20 73 70 65  al: testpatt spe
5570: 63 2c 20 64 65 66 61 75 6c 74 20 69 73 20 74 6f  c, default is to
5580: 20 66 69 72 73 74 20 6c 6f 6f 6b 20 66 6f 72 20   first look for 
5590: 54 45 53 54 50 41 54 54 20 73 70 65 63 20 66 72  TESTPATT spec fr
55a0: 6f 6d 20 72 75 6e 63 6f 6e 66 69 67 73 20 75 6e  om runconfigs un
55b0: 6c 65 73 73 20 74 68 65 72 65 20 69 73 20 61 20  less there is a 
55c0: 63 6f 6e 74 6f 75 72 20 73 70 65 63 0d 0a 74 65  contour spec..te
55d0: 73 74 2d 70 61 74 74 20 25 2f 69 74 65 6d 31 2c  st-patt %/item1,
55e0: 74 65 73 74 32 0d 0a 0d 0a 23 20 4f 70 74 69 6f  test2....# Optio
55f0: 6e 61 6c 3a 20 63 6f 6e 74 6f 75 72 20 73 70 65  nal: contour spe
5600: 63 2c 20 75 73 65 20 74 68 65 20 6e 61 6d 65 64  c, use the named
5610: 20 63 6f 6e 74 6f 75 72 20 66 72 6f 6d 20 74 68   contour from th
5620: 65 20 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 69  e megatest.confi
5630: 67 20 63 6f 6e 74 6f 75 72 20 73 70 65 63 0d 0a  g contour spec..
5640: 63 6f 6e 74 6f 75 72 20 63 6f 6e 74 6f 75 72 6e  contour contourn
5650: 61 6d 65 20 23 23 23 20 4e 4f 54 45 3a 20 4e 6f  ame ### NOTE: No
5660: 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 79 65  t implemented ye
5670: 74 21 20 4c 65 74 20 75 73 20 6b 6e 6f 77 20 69  t! Let us know i
5680: 66 20 79 6f 75 20 6e 65 65 64 20 74 68 69 73 20  f you need this 
5690: 66 65 61 74 75 72 65 2e 0d 0a 0d 0a 23 20 4f 70  feature.....# Op
56a0: 74 69 6f 6e 61 6c 3a 20 6d 6f 64 65 2d 70 61 74  tional: mode-pat
56b0: 74 2c 20 75 73 65 20 74 68 69 73 20 73 70 65 63  t, use this spec
56c0: 20 66 6f 72 20 74 65 73 74 70 61 74 74 20 66 72   for testpatt fr
56d0: 6f 6d 20 72 75 6e 63 6f 6e 66 69 67 73 0d 0a 6d  om runconfigs..m
56e0: 6f 64 65 2d 70 61 74 74 20 54 45 53 54 50 41 54  ode-patt TESTPAT
56f0: 54 0d 0a 0d 0a 23 20 4f 70 74 69 6f 6e 61 6c 3a  T....# Optional:
5700: 20 74 61 67 2d 65 78 70 72 2c 20 75 73 65 20 74   tag-expr, use t
5710: 68 69 73 20 74 61 67 2d 65 78 70 72 20 74 6f 20  his tag-expr to 
5720: 73 65 6c 65 63 74 20 74 65 73 74 73 0d 0a 74 61  select tests..ta
5730: 67 2d 65 78 70 72 20 71 75 69 63 6b 0d 0a 0d 0a  g-expr quick....
5740: 23 20 4f 70 74 69 6f 6e 61 6c 3a 20 28 6e 6f 74  # Optional: (not
5750: 20 79 65 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64   yet implemented
5760: 2c 20 72 65 6d 6f 76 65 2d 72 75 6e 73 20 69 73  , remove-runs is
5770: 20 61 6c 77 61 79 73 20 70 72 6f 70 61 67 61 74   always propagat
5780: 65 64 20 61 74 20 74 68 69 73 20 74 69 6d 65 29  ed at this time)
5790: 2c 20 70 72 6f 70 61 67 61 74 65 20 74 68 65 73  , propagate thes
57a0: 65 20 61 63 74 69 6f 6e 73 20 66 72 6f 6d 20 74  e actions from t
57b0: 68 65 20 70 61 72 65 6e 74 0d 0a 23 20 20 20 20  he parent..#    
57c0: 20 20 20 20 20 20 20 74 65 73 74 0d 0a 23 20 20         test..#  
57d0: 20 4e 6f 74 65 2f 2f 20 64 65 66 61 75 6c 74 20   Note// default 
57e0: 69 73 20 25 20 66 6f 72 20 61 6c 6c 0d 0a 70 72  is % for all..pr
57f0: 6f 70 61 67 61 74 65 20 72 65 6d 6f 76 65 2d 72  opagate remove-r
5800: 75 6e 73 20 61 72 63 68 69 76 65 20 2e 2e 2e 0d  uns archive ....
5810: 0a 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ...-------------
5820: 2d 2d 0d 0a 0d 0a 50 72 6f 67 72 61 6d 6d 69 6e  --....Programmin
5830: 67 20 41 50 49 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  g API..---------
5840: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 54 68 65 73 65 20  ------....These 
5850: 72 6f 75 74 69 6e 65 73 20 63 61 6e 20 62 65 20  routines can be 
5860: 63 61 6c 6c 65 64 20 66 72 6f 6d 20 74 68 65 20  called from the 
5870: 6d 65 67 61 74 65 73 74 20 72 65 70 6c 2e 20 0d  megatest repl. .
5880: 0a 0d 0a 2e 41 50 49 20 4b 65 79 73 20 52 65 6c  ....API Keys Rel
5890: 61 74 65 64 20 43 61 6c 6c 73 0d 0a 5b 77 69 64  ated Calls..[wid
58a0: 74 68 3d 22 37 30 25 22 2c 63 6f 6c 73 3d 22 5e  th="70%",cols="^
58b0: 2c 32 6d 2c 32 6d 2c 32 6d 22 2c 66 72 61 6d 65  ,2m,2m,2m",frame
58c0: 3d 22 74 6f 70 62 6f 74 22 2c 6f 70 74 69 6f 6e  ="topbot",option
58d0: 73 3d 22 68 65 61 64 65 72 2c 66 6f 6f 74 65 72  s="header,footer
58e0: 22 5d 0d 0a 7c 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  "]..|===========
58f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 7c 41 50  ===========..|AP
5900: 49 20 43 61 6c 6c 20 20 20 20 20 20 20 20 20 20  I Call          
5910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20                | 
5920: 50 75 72 70 6f 73 65 20 63 6f 6d 6d 65 6e 74 73  Purpose comments
5930: 20 20 20 7c 20 52 65 74 75 72 6e 73 20 20 20 20     | Returns    
5940: 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 43               | C
5950: 6f 6d 6d 65 6e 74 73 0d 0a 7c 28 72 6d 74 3a 67  omments..|(rmt:g
5960: 65 74 2d 6b 65 79 73 20 72 75 6e 2d 69 64 29 20  et-keys run-id) 
5970: 20 20 20 20 20 20 20 20 20 20 7c 20 20 20 20 20            |     
5980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c                 |
5990: 20 28 20 6b 65 79 31 20 6b 65 79 32 20 2e 2e 2e   ( key1 key2 ...
59a0: 20 29 20 20 20 20 20 20 20 7c 20 0d 0a 7c 20 28   )       | ..| (
59b0: 72 6d 74 3a 67 65 74 2d 6b 65 79 2d 76 61 6c 2d  rmt:get-key-val-
59c0: 70 61 69 72 73 20 72 75 6e 2d 69 64 29 20 7c 20  pairs run-id) | 
59d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
59e0: 20 20 20 7c 20 23 74 3d 73 75 63 63 65 73 73 2f     | #t=success/
59f0: 23 66 3d 66 61 69 6c 20 20 20 20 20 20 7c 20 57  #f=fail      | W
5a00: 6f 72 6b 73 20 6f 6e 6c 79 20 69 66 20 74 68 65  orks only if the
5a10: 20 73 65 72 76 65 72 20 69 73 20 73 74 69 6c 6c   server is still
5a20: 20 72 65 61 63 68 61 62 6c 65 0d 0a 7c 3d 3d 3d   reachable..|===
5a30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
5a40: 3d 3d 3d 0d 0a 0d 0a 0d 0a 3a 6e 75 6d 62 65 72  ===......:number
5a50: 65 64 21 3a 0d 0a 0a 5a 20 34 65 35 32 32 61 66  ed!:...Z 4e522af
5a60: 37 32 38 31 37 39 64 36 61 32 62 66 34 61 37 33  728179d6a2bf4a73
5a70: 33 31 37 39 38 35 64 31 31 0a                    317985d11.