Megatest

Hex Artifact Content
Login

Artifact 22dea6c0595066b0014f65e780bfad052abd10a1:


0000: 4d 65 67 61 74 65 73 74 20 57 65 62 20 41 70 70  Megatest Web App
0010: 20 41 50 49 20 53 70 65 63 69 66 69 63 69 61 74   API Specificiat
0020: 69 6f 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ion.============
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0040: 3d 3d 3d 3d 3d 3d 3d 0a 4d 61 74 74 20 57 65 6c  =======.Matt Wel
0050: 6c 61 6e 64 20 3c 6d 61 74 74 40 6b 69 61 74 6f  land <matt@kiato
0060: 61 2e 63 6f 6d 3e 0a 76 31 2e 30 2c 20 32 30 31  a.com>.v1.0, 201
0070: 33 2d 31 32 0a 0a 4d 65 67 61 74 65 73 74 20 57  3-12..Megatest W
0080: 65 62 20 41 70 70 0a 0a 2e 20 53 65 65 20 72 75  eb App... See ru
0090: 6e 73 0a 2e 20 4d 61 6e 61 67 65 20 6a 6f 62 73  ns.. Manage jobs
00a0: 0a 2e 20 44 65 62 75 67 0a 0a 3a 6e 75 6d 62 65  .. Debug..:numbe
00b0: 72 65 64 21 3a 0a 5b 61 62 73 74 72 61 63 74 5d  red!:.[abstract]
00c0: 0a 45 78 61 6d 70 6c 65 20 41 62 73 74 72 61 63  .Example Abstrac
00d0: 74 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  t.--------------
00e0: 2d 2d 0a 0a 54 68 65 20 4d 65 67 61 74 65 73 74  --..The Megatest
00f0: 20 57 65 62 20 41 70 70 20 61 69 6d 73 20 74 6f   Web App aims to
0100: 20 6d 61 6b 65 20 61 73 20 6d 75 63 68 20 6f 66   make as much of
0110: 20 74 68 65 20 70 6f 77 65 72 20 6f 66 20 74 68   the power of th
0120: 65 20 64 61 73 68 62 6f 61 72 64 20 61 76 61 69  e dashboard avai
0130: 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 77 65 62  lable to the web
0140: 20 62 61 73 65 64 20 75 73 65 72 2e 0a 0a 3a 6e   based user...:n
0150: 75 6d 62 65 72 65 64 3a 0a 0a 43 6f 6d 6d 6f 6e  umbered:..Common
0160: 0a 2d 2d 2d 2d 2d 2d 0a 0a 54 68 69 73 20 69 73  .------..This is
0170: 20 61 6e 20 65 78 61 6d 70 6c 65 20 65 6e 64 70   an example endp
0180: 6f 69 6e 74 2e 20 59 6f 75 20 77 69 6c 6c 20 6e  oint. You will n
0190: 65 65 64 20 74 6f 20 75 73 65 20 79 6f 75 72 20  eed to use your 
01a0: 6f 77 6e 20 63 67 69 20 73 65 72 76 65 72 20 74  own cgi server t
01b0: 6f 20 73 65 72 76 65 20 6f 75 74 20 79 6f 75 72  o serve out your
01c0: 20 6d 65 67 61 74 65 73 74 20 72 75 6e 73 2e 0a   megatest runs..
01d0: 0a 45 6e 64 70 6f 69 6e 74 3a 20 68 74 74 70 3a  .Endpoint: http:
01e0: 2f 2f 6b 69 61 74 6f 61 2e 63 6f 6d 2f 63 67 69  //kiatoa.com/cgi
01f0: 2d 62 69 6e 2f 6d 65 67 61 74 65 73 74 0a 0a 45  -bin/megatest..E
0200: 72 72 6f 72 20 66 6f 72 6d 61 74 20 72 65 73 70  rror format resp
0210: 6f 6e 73 65 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  onse.~~~~~~~~~~~
0220: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 41 6c 6c 20 41  ~~~~~~~~~~.All A
0230: 50 49 20 65 72 72 6f 72 73 20 61 72 65 20 72 65  PI errors are re
0240: 74 75 72 6e 65 64 20 69 6e 20 74 68 65 20 66 6f  turned in the fo
0250: 6c 6c 6f 77 69 6e 67 20 66 6f 72 6d 61 74 3a 0a  llowing format:.
0260: 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .===============
0270: 3d 3d 3d 3d 0a 7b 20 22 5b 62 6c 75 65 5d 23 65  ====.{ "[blue]#e
0280: 72 72 6f 72 23 22 20 3a 20 22 5b 72 65 64 5d 23  rror#" : "[red]#
0290: 45 72 72 6f 72 20 6d 65 73 73 61 67 65 23 22 20  Error message#" 
02a0: 7d 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  }.==============
02b0: 3d 3d 3d 3d 3d 0a 0a 47 65 74 20 4c 69 73 74 20  =====..Get List 
02c0: 6f 66 20 52 75 6e 73 0a 7e 7e 7e 7e 7e 7e 7e 7e  of Runs.~~~~~~~~
02d0: 7e 7e 7e 7e 7e 7e 7e 7e 0a 0a 55 52 4c 3a 20 3c  ~~~~~~~~..URL: <
02e0: 62 61 73 65 3e 2f 72 75 6e 73 0a 0a 4d 65 74 68  base>/runs..Meth
02f0: 6f 64 3a 20 47 45 54 0a 0a 46 69 6c 74 65 72 20  od: GET..Filter 
0300: 50 61 72 61 6d 73 3a 20 74 61 72 67 65 74 2c 20  Params: target, 
0310: 74 65 73 74 70 61 74 74 2c 20 6f 66 66 73 65 74  testpatt, offset
0320: 2c 20 6c 69 6d 69 74 0a 0a 4d 65 67 61 74 65 73  , limit..Megates
0330: 74 20 43 6d 64 3a 20 6d 65 67 61 74 65 73 74 20  t Cmd: megatest 
0340: 2d 73 74 61 72 74 2d 64 69 72 20 3c 70 61 74 68  -start-dir <path
0350: 20 74 6f 20 20 6d 65 67 61 74 65 73 74 20 61 72   to  megatest ar
0360: 65 61 3e 20 2d 6c 69 73 74 2d 72 75 6e 73 20 25  ea> -list-runs %
0370: 20 2d 74 61 72 67 65 74 20 25 20 2d 64 75 6d 70   -target % -dump
0380: 6d 6f 64 65 20 6a 73 6f 6e 20 20 2d 66 69 65 6c  mode json  -fiel
0390: 64 73 20 72 75 6e 73 3a 72 75 6e 6e 61 6d 65 2c  ds runs:runname,
03a0: 69 64 2b 74 65 73 74 73 3a 73 74 61 74 65 2c 73  id+tests:state,s
03b0: 74 61 74 75 73 3a 69 64 0a 0a 52 65 73 70 6f 6e  tatus:id..Respon
03c0: 73 65 3a 0a 0a 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  se:...==========
03d0: 3d 3d 3d 3d 3d 3d 3d 3d 0a 5b 0a 20 20 7b 0a 20  ========.[.  {. 
03e0: 20 20 20 22 5b 72 65 64 5d 23 72 75 6e 5f 69 64     "[red]#run_id
03f0: 23 22 20 3a 20 22 31 22 2c 0a 20 20 20 20 22 5b  #" : "1",.    "[
0400: 72 65 64 5d 23 6e 61 6d 65 23 22 20 20 20 3a 20  red]#name#"   : 
0410: 22 72 75 6e 6e 61 6d 65 31 22 2c 0a 20 20 20 20  "runname1",.    
0420: 22 5b 72 65 64 5d 23 74 61 72 67 65 74 23 22 20  "[red]#target#" 
0430: 3a 20 22 74 61 72 67 65 74 31 22 2c 0a 20 20 20  : "target1",.   
0440: 20 22 5b 72 65 64 5d 23 74 65 73 74 73 23 22 20   "[red]#tests#" 
0450: 20 3a 0a 20 20 20 20 20 20 5b 0a 20 20 20 20 20   :.      [.     
0460: 20 20 20 20 20 22 5b 67 72 65 65 6e 5d 23 74 65       "[green]#te
0470: 73 74 23 22 3a 0a 20 20 20 20 20 20 20 20 20 20  st#":.          
0480: 20 20 20 20 5b 0a 20 20 20 20 20 20 20 20 20 20      [.          
0490: 20 20 20 20 20 20 20 20 20 7b 22 5b 62 6c 75 65           {"[blue
04a0: 5d 23 69 64 23 22 3a 20 31 2c 20 22 5b 62 6c 75  ]#id#": 1, "[blu
04b0: 65 5d 23 6e 61 6d 65 23 22 3a 74 65 73 74 31 2c  e]#name#":test1,
04c0: 20 22 5b 62 6c 75 65 5d 23 69 74 65 6d 5f 70 61   "[blue]#item_pa
04d0: 74 68 23 22 3a 20 22 22 2c 20 22 5b 62 6c 75 65  th#": "", "[blue
04e0: 5d 23 73 68 6f 72 74 64 69 72 23 22 3a 20 22 2f  ]#shortdir#": "/
04f0: 74 65 6d 70 2f 66 6f 6f 2f 62 61 72 2f 74 61 72  temp/foo/bar/tar
0500: 67 65 74 31 2f 72 75 6e 6e 61 6d 65 31 2f 74 65  get1/runname1/te
0510: 73 74 31 22 2c 20 22 5b 62 6c 75 65 5d 23 66 69  st1", "[blue]#fi
0520: 6e 61 6c 5f 6c 6f 67 66 23 22 3a 20 22 6d 65 67  nal_logf#": "meg
0530: 61 74 65 73 74 2d 72 6f 6c 6c 75 70 2d 74 65 73  atest-rollup-tes
0540: 74 31 2e 68 74 6d 6c 22 2c 20 20 22 5b 62 6c 75  t1.html",  "[blu
0550: 65 5d 23 73 74 61 74 75 73 23 22 3a 20 22 50 41  e]#status#": "PA
0560: 53 53 23 22 7d 0a 09 09 20 20 20 7b 22 5b 62 6c  SS#"}...   {"[bl
0570: 75 65 5d 23 69 64 23 22 3a 20 32 2c 20 22 5b 62  ue]#id#": 2, "[b
0580: 6c 75 65 5d 23 6e 61 6d 65 23 22 3a 74 65 73 74  lue]#name#":test
0590: 32 2c 20 22 5b 62 6c 75 65 5d 23 69 74 65 6d 5f  2, "[blue]#item_
05a0: 70 61 74 68 23 22 3a 20 22 22 2c 20 22 5b 62 6c  path#": "", "[bl
05b0: 75 65 5d 23 73 68 6f 72 74 64 69 72 23 22 3a 20  ue]#shortdir#": 
05c0: 22 2f 74 65 6d 70 2f 66 6f 6f 2f 62 61 72 2f 74  "/temp/foo/bar/t
05d0: 61 72 67 65 74 31 2f 72 75 6e 6e 61 6d 65 31 2f  arget1/runname1/
05e0: 74 65 73 74 32 22 2c 20 22 5b 62 6c 75 65 5d 23  test2", "[blue]#
05f0: 66 69 6e 61 6c 5f 6c 6f 67 66 23 22 3a 20 22 6d  final_logf#": "m
0600: 65 67 61 74 65 73 74 2d 72 6f 6c 6c 75 70 2d 74  egatest-rollup-t
0610: 65 73 74 32 2e 68 74 6d 6c 22 2c 20 20 22 5b 62  est2.html",  "[b
0620: 6c 75 65 5d 23 73 74 61 74 75 73 23 22 3a 20 22  lue]#status#": "
0630: 50 41 53 53 22 7d 0a 20 20 20 20 20 20 20 20 20  PASS"}.         
0640: 20 20 20 20 20 20 20 20 20 20 7b 22 5b 62 6c 75            {"[blu
0650: 65 5d 23 69 64 23 22 3a 20 33 2c 20 22 5b 62 6c  e]#id#": 3, "[bl
0660: 75 65 5d 23 6e 61 6d 65 23 22 3a 74 65 73 74 33  ue]#name#":test3
0670: 2c 20 22 5b 62 6c 75 65 5d 23 69 74 65 6d 5f 70  , "[blue]#item_p
0680: 61 74 68 23 22 3a 20 22 22 2c 20 22 5b 62 6c 75  ath#": "", "[blu
0690: 65 5d 23 73 68 6f 72 74 64 69 72 23 22 3a 20 22  e]#shortdir#": "
06a0: 2f 74 65 6d 70 2f 66 6f 6f 2f 62 61 72 2f 74 61  /temp/foo/bar/ta
06b0: 72 67 65 74 31 2f 72 75 6e 6e 61 6d 65 31 2f 74  rget1/runname1/t
06c0: 65 73 74 33 22 2c 20 22 5b 62 6c 75 65 5d 23 66  est3", "[blue]#f
06d0: 69 6e 61 6c 5f 6c 6f 67 66 23 22 3a 20 22 6d 65  inal_logf#": "me
06e0: 67 61 74 65 73 74 2d 72 6f 6c 6c 75 70 2d 74 65  gatest-rollup-te
06f0: 73 74 33 2e 68 74 6d 6c 22 2c 20 20 22 5b 62 6c  st3.html",  "[bl
0700: 75 65 5d 23 73 74 61 74 75 73 23 22 3a 20 22 50  ue]#status#": "P
0710: 41 53 53 22 7d 0a 20 20 20 20 20 20 20 20 20 20  ASS"}.          
0720: 20 20 20 20 5d 20 20 0a 20 20 20 20 20 20 5d 0a      ]  .      ].
0730: 20 20 20 7d 2c 0a 20 20 20 7b 0a 20 20 20 20 22     },.   {.    "
0740: 5b 72 65 64 5d 23 72 75 6e 5f 69 64 23 22 20 3a  [red]#run_id#" :
0750: 20 22 32 22 2c 0a 20 20 20 20 22 5b 72 65 64 5d   "2",.    "[red]
0760: 23 6e 61 6d 65 23 22 20 20 20 3a 20 22 72 75 6e  #name#"   : "run
0770: 6e 61 6d 65 32 22 2c 0a 20 20 20 20 22 5b 72 65  name2",.    "[re
0780: 64 5d 23 74 61 72 67 65 74 23 22 20 3a 20 22 74  d]#target#" : "t
0790: 61 72 67 65 74 32 22 2c 0a 20 20 20 20 22 5b 72  arget2",.    "[r
07a0: 65 64 5d 23 74 65 73 74 73 23 22 20 20 3a 0a 20  ed]#tests#"  :. 
07b0: 20 20 20 20 20 5b 0a 20 20 20 20 20 20 20 20 20       [.         
07c0: 20 22 5b 67 72 65 65 6e 5d 23 74 65 73 74 23 3a   "[green]#test#:
07d0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b  .              [
07e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
07f0: 20 20 20 20 7b 22 5b 62 6c 75 65 5d 23 69 64 23      {"[blue]#id#
0800: 22 3a 20 34 2c 20 22 5b 62 6c 75 65 5d 23 6e 61  ": 4, "[blue]#na
0810: 6d 65 23 22 3a 5b 62 6c 75 65 5d 23 74 65 73 74  me#":[blue]#test
0820: 31 23 2c 20 22 5b 62 6c 75 65 5d 23 69 74 65 6d  1#, "[blue]#item
0830: 5f 70 61 74 68 23 22 3a 20 22 22 2c 20 22 5b 62  _path#": "", "[b
0840: 6c 75 65 5d 23 73 68 6f 72 74 64 69 72 23 22 3a  lue]#shortdir#":
0850: 20 22 2f 74 65 6d 70 2f 66 6f 6f 2f 62 61 72 2f   "/temp/foo/bar/
0860: 74 61 72 67 65 74 32 2f 72 75 6e 6e 61 6d 65 32  target2/runname2
0870: 2f 74 65 73 74 31 22 2c 20 22 5b 62 6c 75 65 5d  /test1", "[blue]
0880: 23 66 69 6e 61 6c 5f 6c 6f 67 66 23 22 3a 20 22  #final_logf#": "
0890: 6d 65 67 61 74 65 73 74 2d 72 6f 6c 6c 75 70 2d  megatest-rollup-
08a0: 74 65 73 74 31 2e 68 74 6d 6c 22 2c 20 20 22 5b  test1.html",  "[
08b0: 62 6c 75 65 5d 23 73 74 61 74 75 73 23 22 3a 20  blue]#status#": 
08c0: 22 50 41 53 53 22 7d 0a 09 09 20 20 20 7b 22 5b  "PASS"}...   {"[
08d0: 62 6c 75 65 5d 23 69 64 23 22 3a 20 35 2c 20 22  blue]#id#": 5, "
08e0: 5b 62 6c 75 65 5d 23 6e 61 6d 65 23 22 3a 5b 62  [blue]#name#":[b
08f0: 6c 75 65 5d 23 74 65 73 74 32 23 2c 20 22 5b 62  lue]#test2#, "[b
0900: 6c 75 65 5d 23 69 74 65 6d 5f 70 61 74 68 23 22  lue]#item_path#"
0910: 3a 20 22 22 2c 20 22 5b 62 6c 75 65 5d 23 73 68  : "", "[blue]#sh
0920: 6f 72 74 64 69 72 23 22 3a 20 22 2f 74 65 6d 70  ortdir#": "/temp
0930: 2f 66 6f 6f 2f 62 61 72 2f 74 61 72 67 65 74 32  /foo/bar/target2
0940: 2f 72 75 6e 6e 61 6d 65 32 2f 74 65 73 74 32 22  /runname2/test2"
0950: 2c 20 22 5b 62 6c 75 65 5d 23 66 69 6e 61 6c 5f  , "[blue]#final_
0960: 6c 6f 67 66 23 22 3a 20 22 6d 65 67 61 74 65 73  logf#": "megates
0970: 74 2d 72 6f 6c 6c 75 70 2d 74 65 73 74 32 2e 68  t-rollup-test2.h
0980: 74 6d 6c 22 2c 20 20 22 5b 62 6c 75 65 5d 23 73  tml",  "[blue]#s
0990: 74 61 74 75 73 23 22 3a 20 22 46 41 49 4c 22 7d  tatus#": "FAIL"}
09a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
09b0: 20 20 20 20 7b 22 5b 62 6c 75 65 5d 23 69 64 23      {"[blue]#id#
09c0: 22 3a 20 36 2c 20 22 5b 62 6c 75 65 5d 23 6e 61  ": 6, "[blue]#na
09d0: 6d 65 23 22 3a 74 65 73 74 33 2c 20 22 5b 62 6c  me#":test3, "[bl
09e0: 75 65 5d 23 69 74 65 6d 5f 70 61 74 68 23 22 3a  ue]#item_path#":
09f0: 20 22 22 2c 20 22 5b 62 6c 75 65 5d 23 73 68 6f   "", "[blue]#sho
0a00: 72 74 64 69 72 23 22 3a 20 22 2f 74 65 6d 70 2f  rtdir#": "/temp/
0a10: 66 6f 6f 2f 62 61 72 2f 74 61 72 67 65 74 32 2f  foo/bar/target2/
0a20: 72 75 6e 6e 61 6d 65 32 2f 74 65 73 74 33 22 2c  runname2/test3",
0a30: 20 22 5b 62 6c 75 65 5d 23 66 69 6e 61 6c 5f 6c   "[blue]#final_l
0a40: 6f 67 66 23 22 3a 20 22 6d 65 67 61 74 65 73 74  ogf#": "megatest
0a50: 2d 72 6f 6c 6c 75 70 2d 74 65 73 74 33 2e 68 74  -rollup-test3.ht
0a60: 6d 6c 22 2c 20 20 22 5b 62 6c 75 65 5d 23 73 74  ml",  "[blue]#st
0a70: 61 74 75 73 23 22 3a 20 22 50 41 53 53 22 7d 0a  atus#": "PASS"}.
0a80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5d 20                ] 
0a90: 20 0a 20 20 20 20 20 20 5d 0a 20 20 20 7d 0a 5d   .      ].   }.]
0aa0: 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .===============
0ab0: 3d 3d 3d 0a 0a 0a 54 72 69 67 67 65 72 20 61 20  ===...Trigger a 
0ac0: 6e 65 77 20 52 75 6e 0a 7e 7e 7e 7e 7e 7e 7e 7e  new Run.~~~~~~~~
0ad0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 0a 55 52 4c 3a  ~~~~~~~~~~..URL:
0ae0: 20 3c 62 61 73 65 3e 2f 72 75 6e 73 0a 0a 4d 65   <base>/runs..Me
0af0: 74 68 6f 64 3a 20 50 4f 53 54 0a 0a 4d 65 67 61  thod: POST..Mega
0b00: 74 65 73 74 20 43 6d 64 3a 20 20 6d 65 67 61 74  test Cmd:  megat
0b10: 65 73 74 20 2d 72 75 6e 74 65 73 74 73 20 25 20  est -runtests % 
0b20: 2d 74 61 72 67 65 74 20 3c 74 61 72 67 65 74 3e  -target <target>
0b30: 20 3a 72 75 6e 6e 61 6d 65 20 3c 72 75 6e 5f 6e   :runname <run_n
0b40: 61 6d 65 3e 20 2d 72 75 6e 0a 0a 52 65 71 75 65  ame> -run..Reque
0b50: 73 74 20 50 61 72 61 6d 73 3a 20 0a 3d 3d 3d 3d  st Params: .====
0b60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 7b  ==============.{
0b70: 22 5b 62 6c 75 65 5d 23 74 61 72 67 65 74 23 22  "[blue]#target#"
0b80: 3a 20 22 74 61 72 67 65 74 5f 76 61 6c 75 65 22  : "target_value"
0b90: 2c 20 22 5b 62 6c 75 65 5d 23 72 75 6e 6e 61 6d  , "[blue]#runnam
0ba0: 65 23 22 20 3a 20 22 72 75 6e 6e 61 6d 65 22 2c  e#" : "runname",
0bb0: 20 22 5b 62 6c 75 65 5d 23 74 65 73 74 5f 70 61   "[blue]#test_pa
0bc0: 74 74 65 72 6e 23 22 3a 20 22 6f 70 74 69 6f 6e  ttern#": "option
0bd0: 61 6c 20 74 65 73 74 20 70 61 74 74 65 72 6e 22  al test pattern"
0be0: 7d 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  }.==============
0bf0: 3d 3d 3d 3d 0a 0a 52 65 73 70 6f 6e 73 65 3a 20  ====..Response: 
0c00: 0a 0a 49 66 20 45 72 72 6f 72 0a 3d 3d 3d 3d 3d  ..If Error.=====
0c10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 7b  ==============.{
0c20: 20 22 5b 62 6c 75 65 5d 23 65 72 72 6f 72 23 22   "[blue]#error#"
0c30: 20 3a 20 22 5b 72 65 64 5d 23 45 72 72 6f 72 20   : "[red]#Error 
0c40: 6d 65 73 73 61 67 65 23 22 20 7d 0a 3d 3d 3d 3d  message#" }.====
0c50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a  ===============.
0c60: 0a 49 66 20 53 75 63 63 65 73 73 20 72 65 74 75  .If Success retu
0c70: 72 6e 73 20 74 68 65 20 72 65 73 75 6c 74 73 20  rns the results 
0c80: 6f 66 20 74 68 65 20 72 75 6e 0a 0a 3d 3d 3d 3d  of the run..====
0c90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 5b  ==============.[
0ca0: 0a 20 20 20 7b 0a 20 20 20 20 22 5b 72 65 64 5d  .   {.    "[red]
0cb0: 23 72 75 6e 5f 69 64 23 22 20 3a 20 22 32 22 2c  #run_id#" : "2",
0cc0: 0a 20 20 20 20 22 5b 72 65 64 5d 23 6e 61 6d 65  .    "[red]#name
0cd0: 23 22 20 20 20 3a 20 22 72 75 6e 6e 61 6d 65 32  #"   : "runname2
0ce0: 22 2c 0a 20 20 20 20 22 5b 72 65 64 5d 23 74 61  ",.    "[red]#ta
0cf0: 72 67 65 74 23 22 20 3a 20 22 74 61 72 67 65 74  rget#" : "target
0d00: 32 22 2c 0a 20 20 20 20 22 5b 72 65 64 5d 23 74  2",.    "[red]#t
0d10: 65 73 74 73 23 22 20 20 3a 0a 20 20 20 20 20 20  ests#"  :.      
0d20: 5b 0a 20 20 20 20 20 20 20 20 20 20 22 5b 67 72  [.          "[gr
0d30: 65 65 6e 5d 23 74 65 73 74 23 3a 0a 20 20 20 20  een]#test#:.    
0d40: 20 20 20 20 20 20 20 20 20 20 5b 0a 20 20 20 20            [.    
0d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
0d60: 22 5b 62 6c 75 65 5d 23 69 64 23 22 3a 20 34 2c  "[blue]#id#": 4,
0d70: 20 22 5b 62 6c 75 65 5d 23 6e 61 6d 65 23 22 3a   "[blue]#name#":
0d80: 5b 62 6c 75 65 5d 23 74 65 73 74 31 23 2c 20 22  [blue]#test1#, "
0d90: 5b 62 6c 75 65 5d 23 69 74 65 6d 5f 70 61 74 68  [blue]#item_path
0da0: 23 22 3a 20 22 22 2c 20 22 5b 62 6c 75 65 5d 23  #": "", "[blue]#
0db0: 73 68 6f 72 74 64 69 72 23 22 3a 20 22 2f 74 65  shortdir#": "/te
0dc0: 6d 70 2f 66 6f 6f 2f 62 61 72 2f 74 61 72 67 65  mp/foo/bar/targe
0dd0: 74 32 2f 72 75 6e 6e 61 6d 65 32 2f 74 65 73 74  t2/runname2/test
0de0: 31 22 2c 20 22 5b 62 6c 75 65 5d 23 66 69 6e 61  1", "[blue]#fina
0df0: 6c 5f 6c 6f 67 66 23 22 3a 20 22 6d 65 67 61 74  l_logf#": "megat
0e00: 65 73 74 2d 72 6f 6c 6c 75 70 2d 74 65 73 74 31  est-rollup-test1
0e10: 2e 68 74 6d 6c 22 2c 20 20 22 5b 62 6c 75 65 5d  .html",  "[blue]
0e20: 23 73 74 61 74 75 73 23 22 3a 20 22 50 41 53 53  #status#": "PASS
0e30: 22 7d 0a 09 09 20 20 20 7b 22 5b 62 6c 75 65 5d  "}...   {"[blue]
0e40: 23 69 64 23 22 3a 20 35 2c 20 22 5b 62 6c 75 65  #id#": 5, "[blue
0e50: 5d 23 6e 61 6d 65 23 22 3a 5b 62 6c 75 65 5d 23  ]#name#":[blue]#
0e60: 74 65 73 74 32 23 2c 20 22 5b 62 6c 75 65 5d 23  test2#, "[blue]#
0e70: 69 74 65 6d 5f 70 61 74 68 23 22 3a 20 22 22 2c  item_path#": "",
0e80: 20 22 5b 62 6c 75 65 5d 23 73 68 6f 72 74 64 69   "[blue]#shortdi
0e90: 72 23 22 3a 20 22 2f 74 65 6d 70 2f 66 6f 6f 2f  r#": "/temp/foo/
0ea0: 62 61 72 2f 74 61 72 67 65 74 32 2f 72 75 6e 6e  bar/target2/runn
0eb0: 61 6d 65 32 2f 74 65 73 74 32 22 2c 20 22 5b 62  ame2/test2", "[b
0ec0: 6c 75 65 5d 23 66 69 6e 61 6c 5f 6c 6f 67 66 23  lue]#final_logf#
0ed0: 22 3a 20 22 6d 65 67 61 74 65 73 74 2d 72 6f 6c  ": "megatest-rol
0ee0: 6c 75 70 2d 74 65 73 74 32 2e 68 74 6d 6c 22 2c  lup-test2.html",
0ef0: 20 20 22 5b 62 6c 75 65 5d 23 73 74 61 74 75 73    "[blue]#status
0f00: 23 22 3a 20 22 46 41 49 4c 22 7d 0a 20 20 20 20  #": "FAIL"}.    
0f10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
0f20: 22 5b 62 6c 75 65 5d 23 69 64 23 22 3a 20 36 2c  "[blue]#id#": 6,
0f30: 20 22 5b 62 6c 75 65 5d 23 6e 61 6d 65 23 22 3a   "[blue]#name#":
0f40: 74 65 73 74 33 2c 20 22 5b 62 6c 75 65 5d 23 69  test3, "[blue]#i
0f50: 74 65 6d 5f 70 61 74 68 23 22 3a 20 22 22 2c 20  tem_path#": "", 
0f60: 22 5b 62 6c 75 65 5d 23 73 68 6f 72 74 64 69 72  "[blue]#shortdir
0f70: 23 22 3a 20 22 2f 74 65 6d 70 2f 66 6f 6f 2f 62  #": "/temp/foo/b
0f80: 61 72 2f 74 61 72 67 65 74 32 2f 72 75 6e 6e 61  ar/target2/runna
0f90: 6d 65 32 2f 74 65 73 74 33 22 2c 20 22 5b 62 6c  me2/test3", "[bl
0fa0: 75 65 5d 23 66 69 6e 61 6c 5f 6c 6f 67 66 23 22  ue]#final_logf#"
0fb0: 3a 20 22 6d 65 67 61 74 65 73 74 2d 72 6f 6c 6c  : "megatest-roll
0fc0: 75 70 2d 74 65 73 74 33 2e 68 74 6d 6c 22 2c 20  up-test3.html", 
0fd0: 20 22 5b 62 6c 75 65 5d 23 73 74 61 74 75 73 23   "[blue]#status#
0fe0: 22 3a 20 22 50 41 53 53 22 7d 0a 20 20 20 20 20  ": "PASS"}.     
0ff0: 20 20 20 20 20 20 20 20 20 5d 20 20 0a 20 20 20           ]  .   
1000: 20 20 20 5d 0a 20 20 20 7d 0a 5d 0a 3d 3d 3d 3d     ].   }.].====
1010: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a  ==============..
1020: 0a 0a 47 65 74 20 70 65 72 74 69 63 75 6c 61 72  ..Get perticular
1030: 20 52 75 6e 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e   Run.~~~~~~~~~~~
1040: 7e 7e 7e 7e 7e 7e 7e 7e 0a 0a 55 52 4c 3a 20 3c  ~~~~~~~~..URL: <
1050: 62 61 73 65 3e 2f 72 75 6e 73 2f 3a 69 64 0a 0a  base>/runs/:id..
1060: 4d 65 74 68 6f 64 3a 20 47 45 54 0a 0a 46 69 6c  Method: GET..Fil
1070: 74 65 72 20 50 61 72 61 6d 73 3a 20 74 65 73 74  ter Params: test
1080: 70 61 74 74 0a 0a 4d 65 67 61 74 65 73 74 20 43  patt..Megatest C
1090: 6d 64 3a 20 6d 65 67 61 74 65 73 74 20 2d 73 74  md: megatest -st
10a0: 61 72 74 2d 64 69 72 20 3c 70 61 74 68 20 74 6f  art-dir <path to
10b0: 20 20 6d 65 67 61 74 65 73 74 20 61 72 65 61 3e    megatest area>
10c0: 20 2d 6c 69 73 74 2d 72 75 6e 73 20 3c 72 75 6e   -list-runs <run
10d0: 6e 61 6d 65 3e 20 2d 74 61 72 67 65 74 20 25 20  name> -target % 
10e0: 2d 64 75 6d 70 6d 6f 64 65 20 6a 73 6f 6e 20 20  -dumpmode json  
10f0: 2d 66 69 65 6c 64 73 20 72 75 6e 73 3a 72 75 6e  -fields runs:run
1100: 6e 61 6d 65 2c 69 64 2b 74 65 73 74 73 3a 73 74  name,id+tests:st
1110: 61 74 65 2c 73 74 61 74 75 73 3a 69 64 0a 0a 0a  ate,status:id...
1120: 52 65 73 70 6f 6e 73 65 3a 20 0a 0a 3d 3d 3d 3d  Response: ..====
1130: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 5b  ==============.[
1140: 0a 20 20 20 7b 0a 20 20 20 20 22 5b 72 65 64 5d  .   {.    "[red]
1150: 23 72 75 6e 5f 69 64 23 22 20 3a 20 22 32 22 2c  #run_id#" : "2",
1160: 0a 20 20 20 20 22 5b 72 65 64 5d 23 6e 61 6d 65  .    "[red]#name
1170: 23 22 20 20 20 3a 20 22 72 75 6e 6e 61 6d 65 32  #"   : "runname2
1180: 22 2c 0a 20 20 20 20 22 5b 72 65 64 5d 23 74 61  ",.    "[red]#ta
1190: 72 67 65 74 23 22 20 3a 20 22 74 61 72 67 65 74  rget#" : "target
11a0: 32 22 2c 0a 20 20 20 20 22 5b 72 65 64 5d 23 74  2",.    "[red]#t
11b0: 65 73 74 73 23 22 20 20 3a 0a 20 20 20 20 20 20  ests#"  :.      
11c0: 5b 0a 20 20 20 20 20 20 20 20 20 20 22 5b 67 72  [.          "[gr
11d0: 65 65 6e 5d 23 74 65 73 74 23 22 3a 0a 20 20 20  een]#test#":.   
11e0: 20 20 20 20 20 20 20 20 20 20 20 5b 0a 20 20 20             [.   
11f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1200: 7b 22 5b 62 6c 75 65 5d 23 69 64 23 22 3a 20 34  {"[blue]#id#": 4
1210: 2c 20 22 5b 62 6c 75 65 5d 23 6e 61 6d 65 23 22  , "[blue]#name#"
1220: 3a 5b 62 6c 75 65 5d 23 74 65 73 74 31 23 2c 20  :[blue]#test1#, 
1230: 22 5b 62 6c 75 65 5d 23 69 74 65 6d 5f 70 61 74  "[blue]#item_pat
1240: 68 23 22 3a 20 22 22 2c 20 22 5b 62 6c 75 65 5d  h#": "", "[blue]
1250: 23 73 68 6f 72 74 64 69 72 23 22 3a 20 22 2f 74  #shortdir#": "/t
1260: 65 6d 70 2f 66 6f 6f 2f 62 61 72 2f 74 61 72 67  emp/foo/bar/targ
1270: 65 74 32 2f 72 75 6e 6e 61 6d 65 32 2f 74 65 73  et2/runname2/tes
1280: 74 31 22 2c 20 22 5b 62 6c 75 65 5d 23 66 69 6e  t1", "[blue]#fin
1290: 61 6c 5f 6c 6f 67 66 23 22 3a 20 22 6d 65 67 61  al_logf#": "mega
12a0: 74 65 73 74 2d 72 6f 6c 6c 75 70 2d 74 65 73 74  test-rollup-test
12b0: 31 2e 68 74 6d 6c 22 2c 20 20 22 5b 62 6c 75 65  1.html",  "[blue
12c0: 5d 23 73 74 61 74 75 73 23 22 3a 20 22 50 41 53  ]#status#": "PAS
12d0: 53 22 7d 0a 09 09 20 20 20 7b 22 5b 62 6c 75 65  S"}...   {"[blue
12e0: 5d 23 69 64 23 22 3a 20 35 2c 20 22 5b 62 6c 75  ]#id#": 5, "[blu
12f0: 65 5d 23 6e 61 6d 65 23 22 3a 5b 62 6c 75 65 5d  e]#name#":[blue]
1300: 23 74 65 73 74 32 23 2c 20 22 5b 62 6c 75 65 5d  #test2#, "[blue]
1310: 23 69 74 65 6d 5f 70 61 74 68 23 22 3a 20 22 22  #item_path#": ""
1320: 2c 20 22 5b 62 6c 75 65 5d 23 73 68 6f 72 74 64  , "[blue]#shortd
1330: 69 72 23 22 3a 20 22 2f 74 65 6d 70 2f 66 6f 6f  ir#": "/temp/foo
1340: 2f 62 61 72 2f 74 61 72 67 65 74 32 2f 72 75 6e  /bar/target2/run
1350: 6e 61 6d 65 32 2f 74 65 73 74 32 22 2c 20 22 5b  name2/test2", "[
1360: 62 6c 75 65 5d 23 66 69 6e 61 6c 5f 6c 6f 67 66  blue]#final_logf
1370: 23 22 3a 20 22 6d 65 67 61 74 65 73 74 2d 72 6f  #": "megatest-ro
1380: 6c 6c 75 70 2d 74 65 73 74 32 2e 68 74 6d 6c 22  llup-test2.html"
1390: 2c 20 20 22 5b 62 6c 75 65 5d 23 73 74 61 74 75  ,  "[blue]#statu
13a0: 73 23 22 3a 20 22 46 41 49 4c 22 7d 0a 20 20 20  s#": "FAIL"}.   
13b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13c0: 7b 22 5b 62 6c 75 65 5d 23 69 64 23 22 3a 20 36  {"[blue]#id#": 6
13d0: 2c 20 22 5b 62 6c 75 65 5d 23 6e 61 6d 65 23 22  , "[blue]#name#"
13e0: 3a 74 65 73 74 33 2c 20 22 5b 62 6c 75 65 5d 23  :test3, "[blue]#
13f0: 69 74 65 6d 5f 70 61 74 68 23 22 3a 20 22 22 2c  item_path#": "",
1400: 20 22 5b 62 6c 75 65 5d 23 73 68 6f 72 74 64 69   "[blue]#shortdi
1410: 72 23 22 3a 20 22 2f 74 65 6d 70 2f 66 6f 6f 2f  r#": "/temp/foo/
1420: 62 61 72 2f 74 61 72 67 65 74 32 2f 72 75 6e 6e  bar/target2/runn
1430: 61 6d 65 32 2f 74 65 73 74 33 22 2c 20 22 5b 62  ame2/test3", "[b
1440: 6c 75 65 5d 23 66 69 6e 61 6c 5f 6c 6f 67 66 23  lue]#final_logf#
1450: 22 3a 20 22 6d 65 67 61 74 65 73 74 2d 72 6f 6c  ": "megatest-rol
1460: 6c 75 70 2d 74 65 73 74 33 2e 68 74 6d 6c 22 2c  lup-test3.html",
1470: 20 20 22 5b 62 6c 75 65 5d 23 73 74 61 74 75 73    "[blue]#status
1480: 23 22 3a 20 22 50 41 53 53 22 7d 0a 20 20 20 20  #": "PASS"}.    
1490: 20 20 20 20 20 20 20 20 20 20 5d 20 20 0a 20 20            ]  .  
14a0: 20 20 20 20 5d 0a 20 20 20 7d 0a 5d 0a 3d 3d 3d      ].   }.].===
14b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a  ===============.
14c0: 20 0a 0a 52 65 2d 65 78 65 63 75 74 65 20 61 20   ..Re-execute a 
14d0: 72 75 6e 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  run.~~~~~~~~~~~~
14e0: 7e 7e 7e 7e 7e 0a 0a 55 52 4c 3a 20 3c 62 61 73  ~~~~~..URL: <bas
14f0: 65 3e 2f 72 75 6e 73 2f 3a 69 64 0a 0a 4d 65 74  e>/runs/:id..Met
1500: 68 6f 64 3a 20 50 55 54 2f 50 41 54 43 48 0a 0a  hod: PUT/PATCH..
1510: 52 65 71 75 65 73 74 20 50 61 72 61 6d 73 3a 20  Request Params: 
1520: 7b 22 74 65 73 74 70 61 74 74 22 20 3a 20 22 70  {"testpatt" : "p
1530: 61 74 74 65 72 6e 22 7d 0a 0a 52 65 73 70 6f 6e  attern"}..Respon
1540: 73 65 3a 20 0a 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  se: ..==========
1550: 3d 3d 3d 3d 3d 3d 3d 3d 0a 5b 0a 20 20 20 7b 0a  ========.[.   {.
1560: 20 20 20 20 22 5b 72 65 64 5d 23 72 75 6e 5f 69      "[red]#run_i
1570: 64 23 22 20 3a 20 22 32 22 2c 0a 20 20 20 20 22  d#" : "2",.    "
1580: 5b 72 65 64 5d 23 6e 61 6d 65 23 22 20 20 20 3a  [red]#name#"   :
1590: 20 22 72 75 6e 6e 61 6d 65 32 22 2c 0a 20 20 20   "runname2",.   
15a0: 20 22 5b 72 65 64 5d 23 74 61 72 67 65 74 23 22   "[red]#target#"
15b0: 20 3a 20 22 74 61 72 67 65 74 32 22 2c 0a 20 20   : "target2",.  
15c0: 20 20 22 5b 72 65 64 5d 23 74 65 73 74 73 23 22    "[red]#tests#"
15d0: 20 20 3a 0a 20 20 20 20 20 20 5b 0a 20 20 20 20    :.      [.    
15e0: 20 20 20 20 20 20 22 5b 67 72 65 65 6e 5d 23 74        "[green]#t
15f0: 65 73 74 23 22 3a 0a 20 20 20 20 20 20 20 20 20  est#":.         
1600: 20 20 20 20 20 5b 0a 20 20 20 20 20 20 20 20 20       [.         
1610: 20 20 20 20 20 20 20 20 20 20 7b 22 5b 62 6c 75            {"[blu
1620: 65 5d 23 69 64 23 22 3a 20 34 2c 20 22 5b 62 6c  e]#id#": 4, "[bl
1630: 75 65 5d 23 6e 61 6d 65 23 22 3a 5b 62 6c 75 65  ue]#name#":[blue
1640: 5d 23 74 65 73 74 31 23 2c 20 22 5b 62 6c 75 65  ]#test1#, "[blue
1650: 5d 23 69 74 65 6d 5f 70 61 74 68 23 22 3a 20 22  ]#item_path#": "
1660: 22 2c 20 22 5b 62 6c 75 65 5d 23 73 68 6f 72 74  ", "[blue]#short
1670: 64 69 72 23 22 3a 20 22 2f 74 65 6d 70 2f 66 6f  dir#": "/temp/fo
1680: 6f 2f 62 61 72 2f 74 61 72 67 65 74 32 2f 72 75  o/bar/target2/ru
1690: 6e 6e 61 6d 65 32 2f 74 65 73 74 31 22 2c 20 22  nname2/test1", "
16a0: 5b 62 6c 75 65 5d 23 66 69 6e 61 6c 5f 6c 6f 67  [blue]#final_log
16b0: 66 23 22 3a 20 22 6d 65 67 61 74 65 73 74 2d 72  f#": "megatest-r
16c0: 6f 6c 6c 75 70 2d 74 65 73 74 31 2e 68 74 6d 6c  ollup-test1.html
16d0: 22 2c 20 20 22 5b 62 6c 75 65 5d 23 73 74 61 74  ",  "[blue]#stat
16e0: 75 73 23 22 3a 20 22 50 41 53 53 22 7d 0a 09 09  us#": "PASS"}...
16f0: 20 20 20 7b 22 5b 62 6c 75 65 5d 23 69 64 23 22     {"[blue]#id#"
1700: 3a 20 35 2c 20 22 5b 62 6c 75 65 5d 23 6e 61 6d  : 5, "[blue]#nam
1710: 65 23 22 3a 5b 62 6c 75 65 5d 23 74 65 73 74 32  e#":[blue]#test2
1720: 23 2c 20 22 5b 62 6c 75 65 5d 23 69 74 65 6d 5f  #, "[blue]#item_
1730: 70 61 74 68 23 22 3a 20 22 22 2c 20 22 5b 62 6c  path#": "", "[bl
1740: 75 65 5d 23 73 68 6f 72 74 64 69 72 23 22 3a 20  ue]#shortdir#": 
1750: 22 2f 74 65 6d 70 2f 66 6f 6f 2f 62 61 72 2f 74  "/temp/foo/bar/t
1760: 61 72 67 65 74 32 2f 72 75 6e 6e 61 6d 65 32 2f  arget2/runname2/
1770: 74 65 73 74 32 22 2c 20 22 5b 62 6c 75 65 5d 23  test2", "[blue]#
1780: 66 69 6e 61 6c 5f 6c 6f 67 66 23 22 3a 20 22 6d  final_logf#": "m
1790: 65 67 61 74 65 73 74 2d 72 6f 6c 6c 75 70 2d 74  egatest-rollup-t
17a0: 65 73 74 32 2e 68 74 6d 6c 22 2c 20 20 22 5b 62  est2.html",  "[b
17b0: 6c 75 65 5d 23 73 74 61 74 75 73 23 22 3a 20 22  lue]#status#": "
17c0: 46 41 49 4c 22 7d 0a 20 20 20 20 20 20 20 20 20  FAIL"}.         
17d0: 20 20 20 20 20 20 20 20 20 20 7b 22 5b 62 6c 75            {"[blu
17e0: 65 5d 23 69 64 23 22 3a 20 36 2c 20 22 5b 62 6c  e]#id#": 6, "[bl
17f0: 75 65 5d 23 6e 61 6d 65 23 22 3a 74 65 73 74 33  ue]#name#":test3
1800: 2c 20 22 5b 62 6c 75 65 5d 23 69 74 65 6d 5f 70  , "[blue]#item_p
1810: 61 74 68 23 22 3a 20 22 22 2c 20 22 5b 62 6c 75  ath#": "", "[blu
1820: 65 5d 23 73 68 6f 72 74 64 69 72 23 22 3a 20 22  e]#shortdir#": "
1830: 2f 74 65 6d 70 2f 66 6f 6f 2f 62 61 72 2f 74 61  /temp/foo/bar/ta
1840: 72 67 65 74 32 2f 72 75 6e 6e 61 6d 65 32 2f 74  rget2/runname2/t
1850: 65 73 74 33 22 2c 20 22 5b 62 6c 75 65 5d 23 66  est3", "[blue]#f
1860: 69 6e 61 6c 5f 6c 6f 67 66 23 22 3a 20 22 6d 65  inal_logf#": "me
1870: 67 61 74 65 73 74 2d 72 6f 6c 6c 75 70 2d 74 65  gatest-rollup-te
1880: 73 74 33 2e 68 74 6d 6c 22 2c 20 20 22 5b 62 6c  st3.html",  "[bl
1890: 75 65 5d 23 73 74 61 74 75 73 23 22 3a 20 22 50  ue]#status#": "P
18a0: 41 53 53 22 7d 0a 20 20 20 20 20 20 20 20 20 20  ASS"}.          
18b0: 20 20 20 20 5d 20 20 0a 20 20 20 20 20 20 5d 0a      ]  .      ].
18c0: 20 20 20 7d 0a 5d 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d     }.].=========
18d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 20 0a 0a 0a 47 65  =========. ...Ge
18e0: 74 20 4c 69 73 74 20 6f 66 20 74 65 73 74 73 20  t List of tests 
18f0: 77 69 74 68 69 6e 20 61 20 72 75 6e 20 0a 7e 7e  within a run .~~
1900: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
1910: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 0a 55  ~~~~~~~~~~~~~..U
1920: 52 4c 3a 20 3c 62 61 73 65 3e 2f 72 75 6e 73 2f  RL: <base>/runs/
1930: 3a 69 64 2f 74 65 73 74 73 0a 0a 4d 65 74 68 6f  :id/tests..Metho
1940: 64 3a 20 47 45 54 0a 0a 4d 65 67 61 74 65 73 74  d: GET..Megatest
1950: 20 43 6d 64 3a 20 6d 65 67 61 74 65 73 74 20 2d   Cmd: megatest -
1960: 73 74 61 72 74 2d 64 69 72 20 3c 70 61 74 68 20  start-dir <path 
1970: 74 6f 20 20 6d 65 67 61 74 65 73 74 20 61 72 65  to  megatest are
1980: 61 3e 20 2d 6c 69 73 74 2d 72 75 6e 73 20 3c 72  a> -list-runs <r
1990: 75 6e 6e 61 6d 65 3e 20 2d 74 61 72 67 65 74 20  unname> -target 
19a0: 25 20 2d 64 75 6d 70 6d 6f 64 65 20 6a 73 6f 6e  % -dumpmode json
19b0: 20 20 2d 66 69 65 6c 64 73 20 72 75 6e 73 3a 72    -fields runs:r
19c0: 75 6e 6e 61 6d 65 2c 69 64 2b 74 65 73 74 73 3a  unname,id+tests:
19d0: 73 74 61 74 65 2c 73 74 61 74 75 73 3a 69 64 0a  state,status:id.
19e0: 0a 0a 52 65 73 70 6f 6e 73 65 3a 20 0a 3d 3d 3d  ..Response: .===
19f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a  ===============.
1a00: 5b 0a 20 20 20 20 20 22 5b 72 65 64 5d 23 74 65  [.     "[red]#te
1a10: 73 74 73 23 22 20 20 3a 0a 20 20 20 20 20 20 20  sts#"  :.       
1a20: 20 20 20 20 20 20 20 5b 0a 20 20 20 20 20 20 20         [.       
1a30: 20 20 20 20 20 20 20 20 20 20 20 20 7b 22 5b 62              {"[b
1a40: 6c 75 65 5d 23 69 64 23 22 3a 20 34 2c 20 22 5b  lue]#id#": 4, "[
1a50: 62 6c 75 65 5d 23 6e 61 6d 65 23 22 3a 5b 62 6c  blue]#name#":[bl
1a60: 75 65 5d 23 74 65 73 74 31 23 2c 20 22 5b 62 6c  ue]#test1#, "[bl
1a70: 75 65 5d 23 69 74 65 6d 5f 70 61 74 68 23 22 3a  ue]#item_path#":
1a80: 20 22 22 2c 20 22 5b 62 6c 75 65 5d 23 73 68 6f   "", "[blue]#sho
1a90: 72 74 64 69 72 23 22 3a 20 22 2f 74 65 6d 70 2f  rtdir#": "/temp/
1aa0: 66 6f 6f 2f 62 61 72 2f 74 61 72 67 65 74 32 2f  foo/bar/target2/
1ab0: 72 75 6e 6e 61 6d 65 32 2f 74 65 73 74 31 22 2c  runname2/test1",
1ac0: 20 22 5b 62 6c 75 65 5d 23 66 69 6e 61 6c 5f 6c   "[blue]#final_l
1ad0: 6f 67 66 23 22 3a 20 22 6d 65 67 61 74 65 73 74  ogf#": "megatest
1ae0: 2d 72 6f 6c 6c 75 70 2d 74 65 73 74 31 2e 68 74  -rollup-test1.ht
1af0: 6d 6c 22 2c 20 20 22 5b 62 6c 75 65 5d 23 73 74  ml",  "[blue]#st
1b00: 61 74 75 73 23 22 3a 20 22 50 41 53 53 22 7d 0a  atus#": "PASS"}.
1b10: 09 09 20 20 20 7b 22 5b 62 6c 75 65 5d 23 69 64  ..   {"[blue]#id
1b20: 23 22 3a 20 35 2c 20 22 5b 62 6c 75 65 5d 23 6e  #": 5, "[blue]#n
1b30: 61 6d 65 23 22 3a 5b 62 6c 75 65 5d 23 74 65 73  ame#":[blue]#tes
1b40: 74 32 23 2c 20 22 5b 62 6c 75 65 5d 23 69 74 65  t2#, "[blue]#ite
1b50: 6d 5f 70 61 74 68 23 22 3a 20 22 22 2c 20 22 5b  m_path#": "", "[
1b60: 62 6c 75 65 5d 23 73 68 6f 72 74 64 69 72 23 22  blue]#shortdir#"
1b70: 3a 20 22 2f 74 65 6d 70 2f 66 6f 6f 2f 62 61 72  : "/temp/foo/bar
1b80: 2f 74 61 72 67 65 74 32 2f 72 75 6e 6e 61 6d 65  /target2/runname
1b90: 32 2f 74 65 73 74 32 22 2c 20 22 5b 62 6c 75 65  2/test2", "[blue
1ba0: 5d 23 66 69 6e 61 6c 5f 6c 6f 67 66 23 22 3a 20  ]#final_logf#": 
1bb0: 22 6d 65 67 61 74 65 73 74 2d 72 6f 6c 6c 75 70  "megatest-rollup
1bc0: 2d 74 65 73 74 32 2e 68 74 6d 6c 22 2c 20 20 22  -test2.html",  "
1bd0: 5b 62 6c 75 65 5d 23 73 74 61 74 75 73 23 22 3a  [blue]#status#":
1be0: 20 22 46 41 49 4c 22 7d 0a 20 20 20 20 20 20 20   "FAIL"}.       
1bf0: 20 20 20 20 20 20 20 20 20 20 20 20 7b 22 5b 62              {"[b
1c00: 6c 75 65 5d 23 69 64 23 22 3a 20 36 2c 20 22 5b  lue]#id#": 6, "[
1c10: 62 6c 75 65 5d 23 6e 61 6d 65 23 22 3a 74 65 73  blue]#name#":tes
1c20: 74 33 2c 20 22 5b 62 6c 75 65 5d 23 69 74 65 6d  t3, "[blue]#item
1c30: 5f 70 61 74 68 23 22 3a 20 22 22 2c 20 22 5b 62  _path#": "", "[b
1c40: 6c 75 65 5d 23 73 68 6f 72 74 64 69 72 23 22 3a  lue]#shortdir#":
1c50: 20 22 2f 74 65 6d 70 2f 66 6f 6f 2f 62 61 72 2f   "/temp/foo/bar/
1c60: 74 61 72 67 65 74 32 2f 72 75 6e 6e 61 6d 65 32  target2/runname2
1c70: 2f 74 65 73 74 33 22 2c 20 22 5b 62 6c 75 65 5d  /test3", "[blue]
1c80: 23 66 69 6e 61 6c 5f 6c 6f 67 66 23 22 3a 20 22  #final_logf#": "
1c90: 6d 65 67 61 74 65 73 74 2d 72 6f 6c 6c 75 70 2d  megatest-rollup-
1ca0: 74 65 73 74 33 2e 68 74 6d 6c 22 2c 20 20 22 5b  test3.html",  "[
1cb0: 62 6c 75 65 5d 23 73 74 61 74 75 73 23 22 3a 20  blue]#status#": 
1cc0: 22 50 41 53 53 22 7d 0a 20 20 20 20 20 20 20 20  "PASS"}.        
1cd0: 20 20 20 20 20 20 5d 20 20 0a 5d 0a 3d 3d 3d 3d        ]  .].====
1ce0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a  ==============..
1cf0: 0a 52 65 2d 65 78 65 63 75 74 65 20 61 20 74 65  .Re-execute a te
1d00: 73 74 20 77 69 74 68 69 6e 20 61 20 72 75 6e 0a  st within a run.
1d10: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
1d20: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a  ~~~~~~~~~~~~~~~.
1d30: 0a 55 52 4c 3a 20 3c 62 61 73 65 3e 2f 72 75 6e  .URL: <base>/run
1d40: 73 2f 3a 69 64 2f 74 65 73 74 73 2f 3a 69 64 0a  s/:id/tests/:id.
1d50: 0a 4d 65 74 68 6f 64 3a 20 50 55 54 2f 50 41 54  .Method: PUT/PAT
1d60: 43 48 0a 0a 52 65 73 70 6f 6e 73 65 3a 20 0a 0a  CH..Response: ..
1d70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1d80: 3d 3d 0a 7b 22 5b 62 6c 75 65 5d 23 69 64 23 22  ==.{"[blue]#id#"
1d90: 3a 20 22 34 22 2c 20 22 5b 62 6c 75 65 5d 23 6e  : "4", "[blue]#n
1da0: 61 6d 65 23 22 3a 22 74 65 73 74 31 22 2c 20 22  ame#":"test1", "
1db0: 5b 62 6c 75 65 5d 23 69 74 65 6d 5f 70 61 74 68  [blue]#item_path
1dc0: 23 22 3a 20 22 22 2c 20 22 5b 62 6c 75 65 5d 23  #": "", "[blue]#
1dd0: 73 68 6f 72 74 64 69 72 23 22 3a 20 22 2f 74 65  shortdir#": "/te
1de0: 6d 70 2f 66 6f 6f 2f 62 61 72 2f 74 61 72 67 65  mp/foo/bar/targe
1df0: 74 32 2f 72 75 6e 6e 61 6d 65 32 2f 74 65 73 74  t2/runname2/test
1e00: 31 22 2c 20 22 5b 62 6c 75 65 5d 23 66 69 6e 61  1", "[blue]#fina
1e10: 6c 5f 6c 6f 67 66 23 22 3a 20 22 6d 65 67 61 74  l_logf#": "megat
1e20: 65 73 74 2d 72 6f 6c 6c 75 70 2d 74 65 73 74 31  est-rollup-test1
1e30: 2e 68 74 6d 6c 22 2c 20 20 22 5b 62 6c 75 65 5d  .html",  "[blue]
1e40: 23 73 74 61 74 75 73 23 22 3a 20 22 50 41 53 53  #status#": "PASS
1e50: 22 7d 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  "}.=============
1e60: 3d 3d 3d 3d 3d 0a 0a 0a 47 65 74 20 70 65 72 74  =====...Get pert
1e70: 69 63 75 6c 61 72 20 74 65 73 74 20 74 68 61 74  icular test that
1e80: 20 62 65 6c 6f 6e 67 73 20 74 6f 20 61 20 52 75   belongs to a Ru
1e90: 6e 73 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ns.~~~~~~~~~~~~~
1ea0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  ~~~~~~~~~~~~~~~~
1eb0: 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 0a 55  ~~~~~~~~~~~~~..U
1ec0: 52 4c 3a 20 3c 62 61 73 65 3e 2f 72 75 6e 73 2f  RL: <base>/runs/
1ed0: 3a 69 64 2f 74 65 73 74 73 2f 3a 69 64 0a 0a 4d  :id/tests/:id..M
1ee0: 65 74 68 6f 64 3a 20 47 45 54 0a 0a 4d 65 67 61  ethod: GET..Mega
1ef0: 74 65 73 74 20 43 6d 64 3a 20 6d 65 67 61 74 65  test Cmd: megate
1f00: 73 74 20 2d 73 74 61 72 74 2d 64 69 72 20 3c 70  st -start-dir <p
1f10: 61 74 68 20 74 6f 20 20 6d 65 67 61 74 65 73 74  ath to  megatest
1f20: 20 61 72 65 61 3e 20 2d 6c 69 73 74 2d 72 75 6e   area> -list-run
1f30: 73 20 3c 72 75 6e 6e 61 6d 65 3e 20 2d 74 61 72  s <runname> -tar
1f40: 67 65 74 20 25 20 2d 74 65 73 74 70 61 74 74 65  get % -testpatte
1f50: 72 6e 20 3c 70 61 74 74 65 72 6e 3e 20 2d 64 75  rn <pattern> -du
1f60: 6d 70 6d 6f 64 65 20 6a 73 6f 6e 20 20 2d 66 69  mpmode json  -fi
1f70: 65 6c 64 73 20 72 75 6e 73 3a 72 75 6e 6e 61 6d  elds runs:runnam
1f80: 65 2c 69 64 2b 74 65 73 74 73 3a 73 74 61 74 65  e,id+tests:state
1f90: 2c 73 74 61 74 75 73 3a 69 64 0a 0a 0a 52 65 73  ,status:id...Res
1fa0: 70 6f 6e 73 65 3a 20 0a 0a 3d 3d 3d 3d 3d 3d 3d  ponse: ..=======
1fb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 7b 22 5b 62  ===========.{"[b
1fc0: 6c 75 65 5d 23 69 64 23 22 3a 20 22 34 22 2c 20  lue]#id#": "4", 
1fd0: 22 5b 62 6c 75 65 5d 23 6e 61 6d 65 23 22 3a 22  "[blue]#name#":"
1fe0: 74 65 73 74 31 22 2c 20 22 5b 62 6c 75 65 5d 23  test1", "[blue]#
1ff0: 69 74 65 6d 5f 70 61 74 68 23 22 3a 20 22 22 2c  item_path#": "",
2000: 20 22 5b 62 6c 75 65 5d 23 73 68 6f 72 74 64 69   "[blue]#shortdi
2010: 72 23 22 3a 20 22 2f 74 65 6d 70 2f 66 6f 6f 2f  r#": "/temp/foo/
2020: 62 61 72 2f 74 61 72 67 65 74 32 2f 72 75 6e 6e  bar/target2/runn
2030: 61 6d 65 32 2f 74 65 73 74 31 22 2c 20 22 5b 62  ame2/test1", "[b
2040: 6c 75 65 5d 23 66 69 6e 61 6c 5f 6c 6f 67 66 23  lue]#final_logf#
2050: 22 3a 20 22 6d 65 67 61 74 65 73 74 2d 72 6f 6c  ": "megatest-rol
2060: 6c 75 70 2d 74 65 73 74 31 2e 68 74 6d 6c 22 2c  lup-test1.html",
2070: 20 20 22 5b 62 6c 75 65 5d 23 73 74 61 74 75 73    "[blue]#status
2080: 23 22 3a 20 22 50 41 53 53 22 7d 0a 3d 3d 3d 3d  #": "PASS"}.====
2090: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a  ==============..
20a0: 0a 0a 4e 6f 74 65 73 0a 2d 2d 2d 2d 2d 0a 0a 4d  ..Notes.-----..M
20b0: 69 73 63 20 2e 2e 2e 0a 0a 20 20 31 2e 20 62 6c  isc .....  1. bl
20c0: 61 68 0a 20 20 32 2e 20 62 61 7a 0a              ah.  2. baz.