Megatest

Hex Artifact Content
Login

Artifact 51041b1f05ea5e36774ea390b571e23fe954f85d:

Wiki page [plan] by mrwellan 2018-01-30 13:23:36.
0000: 44 20 32 30 31 38 2d 30 31 2d 33 30 54 32 30 3a  D 2018-01-30T20:
0010: 32 33 3a 33 36 2e 39 32 36 0a 4c 20 70 6c 61 6e  23:36.926.L plan
0020: 0a 4e 20 74 65 78 74 2f 70 6c 61 69 6e 0a 50 20  .N text/plain.P 
0030: 32 39 39 35 62 62 35 36 35 33 62 34 34 63 39 62  2995bb5653b44c9b
0040: 39 35 61 64 33 35 64 64 64 62 37 61 37 62 30 38  95ad35dddb7a7b08
0050: 32 31 64 36 66 62 31 31 0a 55 20 6d 72 77 65 6c  21d6fb11.U mrwel
0060: 6c 61 6e 0a 57 20 36 31 36 34 0a 52 6f 61 64 20  lan.W 6164.Road 
0070: 4d 61 70 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  Map..--------...
0080: 0a 4e 6f 74 65 20 31 3a 20 54 68 69 73 20 72 6f  .Note 1: This ro
0090: 61 64 2d 6d 61 70 20 69 73 20 73 74 69 6c 6c 20  ad-map is still 
00a0: 65 76 6f 6c 76 69 6e 67 20 61 6e 64 20 73 75 62  evolving and sub
00b0: 6a 65 63 74 20 74 6f 20 63 68 61 6e 67 65 20 77  ject to change w
00c0: 69 74 68 6f 75 74 20 6e 6f 74 69 63 65 2e 0d 0a  ithout notice...
00d0: 0d 0a 52 46 43 0d 0a 7e 7e 7e 0d 0a 0a 2a 50 75  ..RFC..~~~...*Pu
00e0: 72 70 6f 73 65 2a 3a 20 73 68 72 69 6e 6b 20 6d  rpose*: shrink m
00f0: 65 67 61 74 65 73 74 2e 64 62 20 64 61 74 61 20  egatest.db data 
0100: 74 6f 20 65 6e 61 62 6c 65 20 6c 6f 77 65 72 20  to enable lower 
0110: 6c 6f 61 64 20 61 6e 64 20 68 69 67 68 65 72 20  load and higher 
0120: 70 65 72 66 6f 72 6d 61 6e 63 65 2e 0a 0a 4d 65  performance...Me
0130: 74 68 6f 64 3a 20 61 64 64 20 61 20 63 6f 6d 70  thod: add a comp
0140: 6c 65 74 65 64 2d 72 75 6e 73 2e 64 62 20 61 6e  leted-runs.db an
0150: 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  d automatically 
0160: 6d 6f 76 65 20 72 75 6e 73 20 64 61 74 61 20 66  move runs data f
0170: 72 6f 6d 20 6d 65 67 61 74 65 73 74 2e 64 62 20  rom megatest.db 
0180: 74 6f 20 74 68 61 74 20 64 62 0a 0a 44 65 73 69  to that db..Desi
0190: 67 6e 3a 0a e2 80 a2 09 63 6f 6d 70 6c 65 74 65  gn:.•.complete
01a0: 64 2d 72 75 6e 73 2e 64 62 20 69 73 20 61 20 66  d-runs.db is a f
01b0: 75 6c 6c 20 6d 65 67 61 74 65 73 74 20 64 61 74  ull megatest dat
01c0: 61 62 61 73 65 20 77 69 74 68 20 63 6f 6d 70 6c  abase with compl
01d0: 65 74 65 20 73 63 68 65 6d 61 0a e2 80 a2 09 74  ete schema.•.t
01e0: 68 65 20 64 61 74 61 20 6d 6f 76 65 20 77 6f 75  he data move wou
01f0: 6c 64 20 69 6e 76 6f 6c 76 65 20 74 68 65 73 65  ld involve these
0200: 20 73 74 65 70 73 0a 31 2e 09 63 6f 70 79 20 74   steps.1..copy t
0210: 68 65 20 72 75 6e 20 64 61 74 61 20 74 6f 20 63  he run data to c
0220: 6f 6d 70 6c 65 74 65 64 2d 72 75 6e 73 2e 64 62  ompleted-runs.db
0230: 0a 32 2e 09 72 65 6d 6f 76 65 20 74 68 65 20 72  .2..remove the r
0240: 75 6e 20 64 61 74 61 2c 20 66 69 72 73 74 20 66  un data, first f
0250: 72 6f 6d 20 2f 74 6d 70 2f e2 80 a6 2f 6d 65 67  rom /tmp/…/meg
0260: 61 74 65 73 74 2e 64 62 20 61 6e 64 20 2f 74 6d  atest.db and /tm
0270: 70 2f e2 80 a6 2f 6d 65 67 61 74 65 73 74 5f 72  p/…/megatest_r
0280: 65 66 2e 64 62 2c 20 66 6f 6c 6c 6f 77 65 64 20  ef.db, followed 
0290: 62 79 20 6d 65 67 61 74 65 73 74 2e 64 62 0a e2  by megatest.db.â
02a0: 80 a2 09 61 63 63 65 73 73 69 6e 67 20 74 68 65  €¢.accessing the
02b0: 20 64 61 74 61 20 77 6f 75 6c 64 20 62 65 20 75   data would be u
02c0: 6e 63 68 61 6e 67 65 64 20 66 6f 72 20 6d 6f 73  nchanged for mos
02d0: 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a e2 80  t operations..â€
02e0: a2 09 61 20 6d 6f 64 65 20 2d 66 75 6c 6c 2d 64  ¢.a mode -full-d
02f0: 62 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20  b will be added 
0300: 77 68 69 63 68 20 77 68 65 6e 20 73 70 65 63 69  which when speci
0310: 66 69 65 64 20 77 6f 75 6c 64 20 61 74 74 61 63  fied would attac
0320: 68 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 64 2d  h the completed-
0330: 72 75 6e 73 2e 64 62 20 74 6f 20 6d 65 67 61 74  runs.db to megat
0340: 65 73 74 2e 64 62 20 62 65 66 6f 72 65 20 64 6f  est.db before do
0350: 69 6e 67 20 74 68 65 20 71 75 65 72 79 0a e2 80  ing the query.â€
0360: a2 09 6d 65 63 68 61 6e 69 73 6d 73 20 66 6f 72  ¢.mechanisms for
0370: 20 6d 6f 76 69 6e 67 20 72 75 6e 73 20 74 6f 2f   moving runs to/
0380: 66 72 6f 6d 20 74 68 65 20 6d 65 67 61 74 65 73  from the megates
0390: 74 2e 64 62 20 77 6f 75 6c 64 20 62 65 20 61 64  t.db would be ad
03a0: 64 65 64 0a 6f 09 2d 72 65 64 75 63 65 2d 72 65  ded.o.-reduce-re
03b0: 63 6f 72 64 73 20 3d 3e 20 6d 6f 76 65 20 72 75  cords => move ru
03c0: 6e 73 20 74 6f 20 63 6f 6d 70 6c 65 74 65 64 2d  ns to completed-
03d0: 72 75 6e 73 2e 64 62 0a 6f 09 2d 72 65 73 74 6f  runs.db.o.-resto
03e0: 72 65 2d 72 65 63 6f 72 64 73 20 3d 3e 20 6d 6f  re-records => mo
03f0: 76 65 20 72 75 6e 73 20 66 72 6f 6d 20 63 6f 6d  ve runs from com
0400: 70 6c 65 74 65 64 2d 72 75 6e 73 2e 64 62 20 74  pleted-runs.db t
0410: 6f 20 6d 65 67 61 74 65 73 74 2e 64 62 0a 0a 42  o megatest.db..B
0420: 72 61 6e 63 68 3a 20 54 68 69 73 20 77 6f 72 6b  ranch: This work
0430: 20 69 73 20 74 61 6b 69 6e 67 20 70 6c 61 63 65   is taking place
0440: 20 6f 6e 20 62 72 61 6e 63 68 20 76 31 2e 36 35   on branch v1.65
0450: 2d 72 65 64 75 63 65 2d 72 65 63 6f 72 64 73 0a  -reduce-records.
0460: 0a 52 65 71 75 65 73 74 73 20 66 6f 72 20 63 6f  .Requests for co
0470: 6d 6d 65 6e 74 2e 0d 0a 0d 0a 0d 0a 41 72 63 68  mment.......Arch
0480: 69 74 65 63 74 75 72 65 20 52 65 66 61 63 74 6f  itecture Refacto
0490: 72 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  r..~~~~~~~~~~~~~
04a0: 7e 7e 7e 7e 7e 7e 7e 7e 0d 0a 0d 0a 47 6f 61 6c  ~~~~~~~~....Goal
04b0: 73 0d 0a 5e 5e 5e 5e 5e 0d 0a 0d 0a 2e 20 52 65  s..^^^^^..... Re
04c0: 64 75 63 65 20 6c 6f 61 64 20 6f 6e 20 74 68 65  duce load on the
04d0: 20 66 69 6c 65 20 73 79 73 74 65 6d 2e 20 53 71   file system. Sq
04e0: 6c 69 74 65 33 20 66 69 6c 65 73 20 6f 6e 20 6e  lite3 files on n
04f0: 65 74 77 6f 72 6b 20 66 69 6c 65 73 79 73 74 65  etwork filesyste
0500: 6d 20 63 61 6e 20 62 65 0d 0a 20 20 61 20 62 75  m can be..  a bu
0510: 72 64 65 6e 2e 20 5b 67 72 65 65 6e 5d 23 5b 44  rden. [green]#[D
0520: 4f 4e 45 5d 23 0d 0a 2e 20 52 65 64 75 63 65 20  ONE]#... Reduce 
0530: 6e 75 6d 62 65 72 20 6f 66 20 73 65 72 76 65 72  number of server
0540: 73 20 61 6e 64 20 66 72 65 71 75 65 6e 63 79 20  s and frequency 
0550: 6f 66 20 73 74 61 72 74 2f 73 74 6f 70 2e 20 54  of start/stop. T
0560: 68 69 73 20 69 73 20 6d 6f 73 74 6c 79 20 61 6e  his is mostly an
0570: 0d 0a 20 20 69 73 73 75 65 20 6f 66 20 63 6c 75  ..  issue of clu
0580: 74 74 65 72 20 62 75 74 20 61 6c 73 6f 20 61 20  tter but also a 
0590: 72 65 64 75 63 74 69 6f 6e 20 69 6e 20 22 6d 6f  reduction in "mo
05a0: 76 69 6e 67 20 70 61 72 74 73 22 2e 20 5b 67 72  ving parts". [gr
05b0: 65 65 6e 5d 23 5b 44 4f 4e 45 5d 23 0d 0a 2e 20  een]#[DONE]#... 
05c0: 43 6f 61 6c 65 73 63 65 20 61 63 74 69 76 69 74  Coalesce activit
05d0: 69 65 73 20 74 6f 20 61 20 73 69 6e 67 6c 65 20  ies to a single 
05e0: 68 6f 6d 65 20 68 6f 73 74 20 77 68 65 72 65 20  home host where 
05f0: 70 6f 73 73 69 62 6c 65 2e 20 47 69 76 65 20 74  possible. Give t
0600: 68 65 20 75 73 65 72 0d 0a 20 20 66 65 65 64 62  he user..  feedb
0610: 61 63 6b 20 74 68 61 74 20 74 68 65 79 20 68 61  ack that they ha
0620: 76 65 20 73 74 61 72 74 65 64 20 74 68 65 20 64  ve started the d
0630: 61 73 68 62 6f 61 72 64 20 6f 6e 20 61 20 68 6f  ashboard on a ho
0640: 73 74 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68  st other than th
0650: 65 0d 0a 20 20 68 6f 6d 65 20 68 6f 73 74 2e 20  e..  home host. 
0660: 5b 67 72 65 65 6e 5d 23 5b 44 4f 4e 45 5d 23 0d  [green]#[DONE]#.
0670: 0a 2e 20 52 65 64 75 63 65 20 6e 75 6d 62 65 72  .. Reduce number
0680: 20 6f 66 20 70 72 6f 63 65 73 73 65 73 20 69 6e   of processes in
0690: 76 6f 6c 76 65 64 20 69 6e 20 6d 61 6e 61 67 69  volved in managi
06a0: 6e 67 20 72 75 6e 6e 69 6e 67 20 74 65 73 74 73  ng running tests
06b0: 2e 0d 0a 0d 0a 43 68 61 6e 67 65 73 20 4e 65 65  .....Changes Nee
06c0: 64 65 64 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  ded..^^^^^^^^^^^
06d0: 5e 5e 5e 0d 0a 0d 0a 2e 20 41 43 49 44 20 63 6f  ^^^..... ACID co
06e0: 6d 70 6c 69 61 6e 74 20 64 62 20 77 69 6c 6c 20  mpliant db will 
06f0: 62 65 20 6f 6e 20 2f 74 6d 70 20 61 6e 64 20 73  be on /tmp and s
0700: 79 6e 63 65 64 20 74 6f 20 6d 65 67 61 74 65 73  ynced to megates
0710: 74 2e 64 62 20 77 69 74 68 20 61 20 66 69 76 65  t.db with a five
0720: 0d 0a 20 20 73 65 63 6f 6e 64 20 6d 61 78 20 64  ..  second max d
0730: 65 6c 61 79 2e 20 5b 67 72 65 65 6e 5d 23 5b 44  elay. [green]#[D
0740: 4f 4e 45 5d 23 0d 0a 2e 20 52 65 61 64 2f 77 72  ONE]#... Read/wr
0750: 69 74 65 73 20 74 6f 20 64 62 20 66 6f 72 20 70  ites to db for p
0760: 72 6f 63 65 73 73 65 73 20 6f 6e 20 68 6f 6d 65  rocesses on home
0770: 68 6f 73 74 20 77 69 6c 6c 20 67 6f 20 64 69 72  host will go dir
0780: 65 63 74 20 74 6f 20 2f 74 6d 70 0d 0a 20 20 6d  ect to /tmp..  m
0790: 65 67 61 74 65 73 74 2e 64 62 20 66 69 6c 65 2e  egatest.db file.
07a0: 20 5b 67 72 65 65 6e 5d 23 5b 44 4f 4e 45 5d 23   [green]#[DONE]#
07b0: 0d 0a 2e 20 52 65 61 64 2f 77 69 74 65 73 20 66  ... Read/wites f
07c0: 72 6f 6e 20 6e 6f 6e 2d 68 6f 6d 65 68 6f 73 74  ron non-homehost
07d0: 20 70 72 6f 63 65 73 73 65 73 20 77 69 6c 6c 20   processes will 
07e0: 67 6f 20 74 68 72 6f 75 67 68 20 6f 6e 65 20 73  go through one s
07f0: 65 72 76 65 72 2e 20 42 75 6c 6b 0d 0a 20 20 72  erver. Bulk..  r
0800: 65 61 64 73 20 28 65 2e 67 2e 20 66 6f 72 20 64  eads (e.g. for d
0810: 61 73 68 62 6f 61 72 64 20 6f 72 20 6c 69 73 74  ashboard or list
0820: 2d 72 75 6e 73 29 20 77 69 6c 6c 20 62 65 20 63  -runs) will be c
0830: 61 63 68 65 64 20 6f 6e 20 74 68 65 20 63 75 72  ached on the cur
0840: 72 65 6e 74 20 68 6f 73 74 0d 0a 20 20 69 6e 20  rent host..  in 
0850: 2f 74 6d 70 20 61 6e 64 20 73 79 6e 63 65 64 20  /tmp and synced 
0860: 66 72 6f 6d 20 74 68 65 20 68 6f 6d 65 20 6d 65  from the home me
0870: 67 61 74 65 73 74 2e 64 62 20 69 6e 20 74 68 65  gatest.db in the
0880: 20 74 65 73 74 73 75 69 74 65 20 61 72 65 61 2e   testsuite area.
0890: 20 5b 67 72 65 65 6e 5d 23 5b 44 4f 4e 45 5d 23   [green]#[DONE]#
08a0: 0d 0a 2e 20 44 62 20 73 79 6e 63 73 20 72 65 6c  ... Db syncs rel
08b0: 79 20 6f 6e 20 74 68 65 20 74 61 72 67 65 74 20  y on the target 
08c0: 64 62 20 66 69 6c 65 20 74 69 6d 65 73 74 61 6d  db file timestam
08d0: 65 20 6d 69 6e 75 73 20 73 6f 6d 65 20 6d 61 72  e minus some mar
08e0: 67 69 6e 2e 20 5b 67 72 65 65 6e 5d 23 5b 44 4f  gin. [green]#[DO
08f0: 4e 45 5d 23 0d 0a 2e 20 53 69 6e 63 65 20 62 75  NE]#... Since bu
0900: 6c 6b 20 72 65 61 64 73 20 64 6f 20 6e 6f 74 20  lk reads do not 
0910: 75 73 65 20 74 68 65 20 73 65 72 76 65 72 20 77  use the server w
0920: 65 20 63 61 6e 20 73 77 69 74 63 68 20 74 6f 20  e can switch to 
0930: 73 69 6d 70 6c 65 20 52 50 43 20 66 6f 72 20 74  simple RPC for t
0940: 68 65 0d 0a 20 20 6e 65 74 77 6f 72 6b 20 74 72  he..  network tr
0950: 61 6e 73 70 6f 72 74 2e 20 5b 67 72 65 65 6e 5d  ansport. [green]
0960: 23 5b 44 4f 4e 45 5d 23 0d 0a 2e 20 54 65 73 74  #[DONE]#... Test
0970: 20 72 75 6e 6e 69 6e 67 20 6d 61 6e 61 67 65 72   running manager
0980: 20 70 72 6f 63 65 73 73 20 65 78 74 65 6e 64 65   process extende
0990: 64 20 74 6f 20 6d 61 6e 61 67 65 20 6d 75 6c 74  d to manage mult
09a0: 69 70 6c 65 20 72 75 6e 6e 69 6e 67 20 74 65 73  iple running tes
09b0: 74 73 2e 0d 0a 0d 0a 43 75 72 72 65 6e 74 20 49  ts.....Current I
09c0: 74 65 6d 73 0d 0a 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e  tems..~~~~~~~~~~
09d0: 7e 7e 7e 0d 0a 0d 0a 77 77 30 35 20 2d 20 6d 69  ~~~....ww05 - mi
09e0: 67 72 61 74 65 20 74 6f 20 69 6e 6d 65 6d 2d 64  grate to inmem-d
09f0: 62 0d 0a 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e  b..^^^^^^^^^^^^^
0a00: 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 0d 0a 0d  ^^^^^^^^^^^^^...
0a10: 0a 2e 20 53 77 69 74 63 68 20 74 6f 20 69 6e 6d  .. Switch to inm
0a20: 65 6d 20 64 62 20 77 69 74 68 20 66 61 73 74 20  em db with fast 
0a30: 73 79 6e 63 20 74 6f 20 6f 6e 20 64 69 73 6b 20  sync to on disk 
0a40: 64 62 27 73 20 5b 67 72 65 65 6e 5d 23 5b 44 4f  db's [green]#[DO
0a50: 4e 45 5d 23 0d 0a 2e 20 53 65 72 76 65 72 20 70  NE]#... Server p
0a60: 6f 6c 6c 73 20 74 61 73 6b 73 20 74 61 62 6c 65  olls tasks table
0a70: 20 66 6f 72 20 6e 65 78 74 20 61 63 74 69 6f 6e   for next action
0a80: 0d 0a 2e 2e 20 54 61 73 6b 20 74 61 62 6c 65 20  .... Task table 
0a90: 75 73 65 64 20 66 6f 72 20 74 72 61 63 6b 69 6e  used for trackin
0aa0: 67 20 72 75 6e 6e 65 72 20 70 72 6f 63 65 73 73  g runner process
0ab0: 20 5b 72 65 64 5d 23 5b 52 65 70 6c 61 63 65 64   [red]#[Replaced
0ac0: 20 62 79 20 6d 74 75 74 69 6c 5d 23 0d 0a 2e 2e   by mtutil]#....
0ad0: 20 54 61 73 6b 20 74 61 62 6c 65 20 75 73 65 64   Task table used
0ae0: 20 66 6f 72 20 6a 6f 62 73 20 74 6f 20 72 75 6e   for jobs to run
0af0: 20 5b 72 65 64 5d 23 5b 52 65 70 6c 61 63 65 64   [red]#[Replaced
0b00: 20 62 79 20 6d 74 75 74 69 6c 5d 23 0d 0a 2e 2e   by mtutil]#....
0b10: 20 54 61 73 6b 20 74 61 62 6c 65 20 75 73 65 64   Task table used
0b20: 20 66 6f 72 20 71 75 65 75 65 69 6e 67 20 72 75   for queueing ru
0b30: 6e 6e 65 72 20 61 63 74 69 6f 6e 73 20 28 72 65  nner actions (re
0b40: 6d 6f 76 65 20 72 75 6e 73 2c 0d 0a 20 20 20 63  move runs,..   c
0b50: 6c 65 61 6e 52 75 6e 45 78 65 63 75 74 65 2c 20  leanRunExecute, 
0b60: 65 74 63 29 20 20 5b 72 65 64 5d 23 5b 52 65 70  etc)  [red]#[Rep
0b70: 6c 61 63 65 64 20 62 79 20 6d 74 75 74 69 6c 23  laced by mtutil#
0b80: 5d 0d 0a 0d 0a 0d 0a 2f 2f 20 77 77 33 32 0d 0a  ]......// ww32..
0b90: 2f 2f 20 7e 7e 7e 7e 0d 0a 2f 2f 20 0d 0a 2f 2f  // ~~~~..// ..//
0ba0: 20 2e 20 52 65 72 75 6e 20 73 74 65 70 20 61 6e   . Rerun step an
0bb0: 64 20 6f 72 20 73 75 62 73 65 71 75 65 6e 74 20  d or subsequent 
0bc0: 73 74 65 70 73 20 66 72 6f 6d 20 67 75 69 0d 0a  steps from gui..
0bd0: 2f 2f 20 2e 20 52 65 66 72 65 73 68 20 74 65 73  // . Refresh tes
0be0: 74 20 61 72 65 61 20 66 69 6c 65 73 20 66 72 6f  t area files fro
0bf0: 6d 20 67 75 69 0d 0a 2f 2f 20 2e 20 43 6c 65 61  m gui..// . Clea
0c00: 6e 20 61 6e 64 20 72 65 2d 72 75 6e 20 62 75 74  n and re-run but
0c10: 74 6f 6e 0d 0a 2f 2f 20 2e 20 43 6c 65 61 6e 20  ton..// . Clean 
0c20: 75 70 20 53 54 41 54 45 20 61 6e 64 20 53 54 41  up STATE and STA
0c30: 54 55 53 20 68 61 6e 64 6c 69 6e 67 2e 0d 0a 2f  TUS handling.../
0c40: 2f 20 2e 2e 20 44 61 73 68 62 6f 61 72 64 20 61  / .. Dashboard a
0c50: 6e 64 20 54 65 73 74 20 63 6f 6e 74 72 6f 6c 20  nd Test control 
0c60: 70 61 6e 65 6c 20 61 72 65 20 72 65 76 65 72 73  panel are revers
0c70: 65 20 6f 72 64 65 72 20 2d 20 63 68 6f 6f 73 65  e order - choose
0c80: 20 61 6e 64 20 66 69 78 0d 0a 2f 2f 20 2e 2e 20   and fix..// .. 
0c90: 4d 6f 76 65 20 73 65 6c 64 6f 6d 20 75 73 65 64  Move seldom used
0ca0: 20 73 74 61 74 65 73 20 61 6e 64 20 73 74 61 74   states and stat
0cb0: 75 73 20 74 6f 20 64 72 6f 70 20 64 6f 77 6e 20  us to drop down 
0cc0: 73 65 6c 65 63 74 6f 72 0d 0a 2f 2f 20 2e 20 41  selector..// . A
0cd0: 63 63 65 73 73 20 74 65 73 74 20 63 6f 6e 74 72  ccess test contr
0ce0: 6f 6c 20 70 61 6e 65 6c 20 77 68 65 6e 20 63 6c  ol panel when cl
0cf0: 69 63 6b 69 6e 67 20 6f 6e 20 52 75 6e 20 53 75  icking on Run Su
0d00: 6d 6d 61 72 79 20 74 65 73 74 73 0d 0a 2f 2f 20  mmary tests..// 
0d10: 2e 20 46 65 61 74 75 72 65 3a 20 2d 67 65 6e 65  . Feature: -gene
0d20: 72 61 74 65 2d 69 6e 64 65 78 2d 74 72 65 65 0d  rate-index-tree.
0d30: 0a 2f 2f 20 2e 20 43 68 61 6e 67 65 20 73 70 65  .// . Change spe
0d40: 63 69 66 69 6e 67 20 6f 66 20 73 74 61 74 65 20  cifing of state 
0d50: 61 6e 64 20 73 74 61 74 75 73 20 74 6f 20 75 73  and status to us
0d60: 65 20 53 54 41 54 45 31 2f 53 54 41 54 55 53 31  e STATE1/STATUS1
0d70: 2c 53 54 41 54 45 32 2f 53 54 41 54 55 53 32 0d  ,STATE2/STATUS2.
0d80: 0a 2f 2f 20 0d 0a 2f 2f 20 77 77 33 33 0d 0a 2f  .// ..// ww33../
0d90: 2f 20 7e 7e 7e 7e 0d 0a 2f 2f 20 0d 0a 2f 2f 20  / ~~~~..// ..// 
0da0: 2e 20 68 74 74 70 20 61 70 69 20 61 76 61 69 6c  . http api avail
0db0: 61 62 6c 65 20 66 6f 72 20 75 73 65 20 77 69 74  able for use wit
0dc0: 68 20 50 65 72 6c 2c 20 52 75 62 79 20 65 74 63  h Perl, Ruby etc
0dd0: 2e 20 73 63 72 69 70 74 73 0d 0a 2f 2f 20 2e 20  . scripts..// . 
0de0: 6d 65 67 61 74 65 73 74 2e 63 6f 6e 66 69 67 20  megatest.config 
0df0: 73 65 74 75 70 20 65 6e 74 72 69 65 73 20 66 6f  setup entries fo
0e00: 72 3a 0d 0a 2f 2f 20 2e 2e 20 72 75 6e 20 6c 61  r:..// .. run la
0e10: 75 6e 63 68 69 6e 67 20 28 65 2e 67 2e 20 2f 62  unching (e.g. /b
0e20: 69 6e 2f 73 68 20 25 43 4d 44 25 20 3e 20 2f 64  in/sh %CMD% > /d
0e30: 65 76 2f 6e 75 6c 6c 29 0d 0a 2f 2f 20 2e 2e 20  ev/null)..// .. 
0e40: 62 72 6f 77 73 65 72 20 22 6b 6f 6e 71 75 65 72  browser "konquer
0e50: 6f 72 20 25 46 4e 41 4d 45 25 0d 0a 2f 2f 20 0d  or %FNAME%..// .
0e60: 0a 2f 2f 20 77 77 33 34 0d 0a 2f 2f 20 7e 7e 7e  .// ww34..// ~~~
0e70: 7e 0d 0a 2f 2f 20 0d 0a 2f 2f 20 2e 20 4d 61 72  ~..// ..// . Mar
0e80: 6b 20 64 65 70 65 6e 64 65 6e 74 20 74 65 73 74  k dependent test
0e90: 73 20 66 6f 72 20 63 6c 65 61 6e 2f 72 65 72 75  s for clean/reru
0ea0: 6e 20 2d 72 65 72 75 6e 2d 64 6f 77 6e 73 74 72  n -rerun-downstr
0eb0: 65 61 6d 0d 0a 2f 2f 20 2e 20 4f 6e 20 72 75 6e  eam..// . On run
0ec0: 20 73 74 61 72 74 20 63 68 65 63 6b 20 66 6f 72   start check for
0ed0: 20 64 65 66 75 6e 63 74 20 74 65 73 74 73 20 69   defunct tests i
0ee0: 6e 20 52 55 4e 4e 49 4e 47 2c 20 4c 41 55 4e 43  n RUNNING, LAUNC
0ef0: 48 45 44 20 6f 72 20 52 45 4d 4f 54 45 48 4f 53  HED or REMOTEHOS
0f00: 54 53 54 41 52 54 20 61 6e 64 20 63 6f 72 72 65  TSTART and corre
0f10: 63 74 20 6f 72 20 6e 6f 74 69 66 79 0d 0a 2f 2f  ct or notify..//
0f20: 20 2e 20 46 69 78 3a 20 72 65 66 72 65 73 68 20   . Fix: refresh 
0f30: 6f 66 20 67 75 69 20 73 6f 6d 65 74 69 6d 65 73  of gui sometimes
0f40: 20 66 61 69 6c 73 20 6f 6e 20 6c 61 73 74 20 69   fails on last i
0f50: 74 65 6d 20 28 72 61 63 65 20 63 6f 6e 64 69 74  tem (race condit
0f60: 69 6f 6e 3f 29 0d 0a 2f 2f 20 0d 0a 2f 2f 20 77  ion?)..// ..// w
0f70: 77 33 35 0d 0a 2f 2f 20 7e 7e 7e 7e 0d 0a 2f 2f  w35..// ~~~~..//
0f80: 20 0d 0a 2f 2f 20 2e 20 72 65 66 64 62 3a 20 41   ..// . refdb: A
0f90: 64 64 20 65 78 70 6f 72 74 20 6f 66 20 63 73 76  dd export of csv
0fa0: 2c 20 6a 73 6f 6e 20 61 6e 64 20 73 65 78 70 0d  , json and sexp.
0fb0: 0a 2f 2f 20 2e 20 43 6f 6e 76 65 72 74 20 74 6f  .// . Convert to
0fc0: 20 75 73 69 6e 67 20 63 61 6c 6c 2d 77 69 74 68   using call-with
0fd0: 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 76 61 72  -environment-var
0fe0: 69 61 62 6c 65 73 20 77 68 65 72 65 20 70 6f 73  iables where pos
0ff0: 73 69 62 6c 65 2e 20 53 68 6f 75 6c 64 20 61 6c  sible. Should al
1000: 6c 6f 77 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20  low handling of 
1010: 70 61 72 61 6c 6c 65 6c 20 72 75 6e 73 20 69 6e  parallel runs in
1020: 20 73 61 6d 65 20 70 72 6f 63 65 73 73 2e 0d 0a   same process...
1030: 2f 2f 20 2e 20 52 65 2d 77 6f 72 6b 20 74 65 78  // . Re-work tex
1040: 74 20 69 6e 74 65 72 66 61 63 65 20 77 69 7a 61  t interface wiza
1050: 72 64 73 2e 20 53 65 76 65 72 61 6c 20 62 75 67  rds. Several bug
1060: 73 20 6f 6e 20 72 65 63 6f 72 64 2e 20 50 6f 73  s on record. Pos
1070: 73 69 62 6c 79 20 63 6f 6e 76 65 72 74 20 74 6f  sibly convert to
1080: 20 67 75 69 20 62 61 73 65 64 2e 0d 0a 2f 2f 20   gui based...// 
1090: 2e 20 41 64 64 20 74 6f 20 74 65 73 74 63 6f 6e  . Add to testcon
10a0: 66 69 67 20 72 65 71 75 69 72 65 6d 65 6e 74 73  fig requirements
10b0: 20 73 65 63 74 69 6f 6e 3b 20 6c 61 75 6e 63 68   section; launch
10c0: 6c 69 6d 69 74 65 72 20 73 63 72 69 70 74 6e 61  limiter scriptna
10d0: 6d 65 2c 20 63 61 6c 6c 73 20 73 63 72 69 70 74  me, calls script
10e0: 6e 61 6d 65 20 74 6f 20 63 68 65 63 6b 20 69 66  name to check if
10f0: 20 6f 6b 20 74 6f 20 6c 61 75 6e 63 68 20 74 65   ok to launch te
1100: 73 74 0d 0a 2f 2f 20 2e 20 52 65 66 61 63 74 6f  st..// . Refacto
1110: 72 20 52 75 6e 20 53 75 6d 6d 61 72 79 20 76 69  r Run Summary vi
1120: 65 77 2c 20 63 75 72 72 65 6e 74 6c 79 20 76 65  ew, currently ve
1130: 72 79 20 63 6c 75 6d 73 79 0d 0a 2f 2f 20 2e 20  ry clumsy..// . 
1140: 41 64 64 20 6f 70 74 69 6f 6e 20 74 6f 20 73 68  Add option to sh
1150: 6f 77 20 73 74 65 70 73 20 69 6e 20 52 75 6e 20  ow steps in Run 
1160: 53 75 6d 6d 61 72 79 20 76 69 65 77 0d 0a 2f 2f  Summary view..//
1170: 20 0d 0a 2f 2f 20 77 77 33 36 0d 0a 2f 2f 20 7e   ..// ww36..// ~
1180: 7e 7e 7e 0d 0a 2f 2f 20 0d 0a 2f 2f 20 2e 20 52  ~~~..// ..// . R
1190: 65 66 61 63 74 6f 72 20 67 75 69 73 20 66 6f 72  efactor guis for
11a0: 20 72 65 73 69 7a 65 61 62 6c 69 74 79 0d 0a 2f   resizeablity../
11b0: 2f 20 2e 20 41 64 64 20 66 69 6c 74 65 72 73 20  / . Add filters 
11c0: 74 6f 20 52 75 6e 20 53 75 6d 6d 61 72 79 20 76  to Run Summary v
11d0: 69 65 77 20 61 6e 64 20 52 75 6e 20 43 6f 6e 74  iew and Run Cont
11e0: 72 6f 6c 20 76 69 65 77 0d 0a 2f 2f 20 2e 20 41  rol view..// . A
11f0: 64 64 20 74 6f 20 6d 65 67 61 74 65 73 74 2e 63  dd to megatest.c
1200: 6f 6e 66 69 67 20 6f 72 20 74 65 73 74 63 6f 6e  onfig or testcon
1210: 66 69 67 3b 20 72 65 72 75 6e 6f 6b 20 53 54 41  fig; rerunok STA
1220: 54 45 2f 53 54 41 54 55 53 2c 53 54 41 54 45 2f  TE/STATUS,STATE/
1230: 53 54 41 54 55 53 2e 2e 2e 0d 0a 2f 2f 20 2e 20  STATUS.....// . 
1240: 4c 61 75 6e 63 68 20 67 61 74 65 73 20 66 6f 72  Launch gates for
1250: 20 64 69 73 6b 73 70 61 63 65 3b 20 2f 70 61 74   diskspace; /pat
1260: 68 2f 6f 6e 65 3e 31 47 2c 2f 70 61 74 68 2f 74  h/one>1G,/path/t
1270: 77 6f 3e 32 30 30 4d 2c 2f 74 6d 70 3e 35 47 2c  wo>200M,/tmp>5G,
1280: 23 7b 73 63 68 65 6d 65 20 2a 74 6f 70 70 61 74  #{scheme *toppat
1290: 68 2a 7d 3e 31 47 0d 0a 2f 2f 20 0d 0a 2f 2f 20  h*}>1G..// ..// 
12a0: 42 69 6e 20 4c 69 73 74 0d 0a 2f 2f 20 7e 7e 7e  Bin List..// ~~~
12b0: 7e 7e 7e 7e 7e 0d 0a 2f 2f 20 0d 0a 2f 2f 20 2e  ~~~~~..// ..// .
12c0: 09 51 75 61 6c 69 74 79 20 69 6d 70 72 6f 76 65  .Quality improve
12d0: 6d 65 6e 74 73 0d 0a 2f 2f 20 2e 2e 09 53 65 72  ments..// ...Ser
12e0: 76 65 72 20 73 74 75 74 74 65 72 73 20 6f 63 63  ver stutters occ
12f0: 61 73 69 6f 6e 61 6c 6c 79 0d 0a 2f 2f 20 2e 2e  asionally..// ..
1300: 09 4c 61 72 67 65 20 6e 75 6d 62 65 72 20 6f 66  .Large number of
1310: 20 69 74 65 6d 73 20 6f 72 20 74 65 73 74 73 20   items or tests 
1320: 73 74 69 6c 6c 20 68 61 73 20 73 6f 6d 65 20 69  still has some i
1330: 73 73 75 65 73 2e 0d 0a 2f 2f 20 2e 2e 09 43 6f  ssues...// ...Co
1340: 64 65 20 72 65 66 61 63 74 6f 72 69 6e 67 0d 0a  de refactoring..
1350: 2f 2f 20 2e 2e 09 52 65 70 6c 61 63 65 20 72 65  // ...Replace re
1360: 6d 6f 74 65 20 70 72 6f 63 65 73 73 20 77 69 74  mote process wit
1370: 68 20 74 72 75 65 20 41 50 49 20 75 73 69 6e 67  h true API using
1380: 20 6a 73 6f 6e 20 28 73 75 70 70 6f 72 74 73 20   json (supports 
1390: 57 65 62 20 61 70 70 20 61 6c 73 6f 29 0d 0a 2f  Web app also)../
13a0: 2f 20 2e 09 53 74 72 65 61 6d 6c 69 6e 65 20 74  / ..Streamline t
13b0: 68 65 20 67 75 69 0d 0a 2f 2f 20 2e 2e 09 45 76  he gui..// ...Ev
13c0: 65 72 79 74 68 69 6e 67 20 72 65 73 69 7a 61 62  erything resizab
13d0: 6c 65 0d 0a 2f 2f 20 2e 2e 09 4c 65 73 73 20 63  le..// ...Less c
13e0: 6c 75 74 74 65 72 0d 0a 2f 2f 20 2e 2e 09 54 6f  lutter..// ...To
13f0: 6f 6c 20 74 69 70 73 0d 0a 2f 2f 20 2e 2e 09 46  ol tips..// ...F
1400: 69 6c 74 65 72 73 20 6f 6e 20 52 75 6e 20 53 75  ilters on Run Su
1410: 6d 6d 61 72 79 2c 20 53 75 6d 6d 61 72 79 20 61  mmary, Summary a
1420: 6e 64 20 52 75 6e 20 43 6f 6e 74 72 6f 6c 20 70  nd Run Control p
1430: 61 6e 65 6c 0d 0a 2f 2f 20 2e 2e 09 42 75 69 6c  anel..// ...Buil
1440: 74 20 69 6e 20 6c 6f 67 20 76 69 65 77 65 72 20  t in log viewer 
1450: 28 70 61 72 74 69 61 6c 6c 79 20 69 6d 70 6c 65  (partially imple
1460: 6d 65 6e 74 65 64 29 0d 0a 2f 2f 20 2e 2e 09 52  mented)..// ...R
1470: 65 66 61 63 74 6f 72 20 74 68 65 20 74 65 73 74  efactor the test
1480: 20 63 6f 6e 74 72 6f 6c 20 70 61 6e 65 6c 0d 0a   control panel..
1490: 2f 2f 20 2e 09 48 65 6c 70 20 61 6e 64 20 64 6f  // ..Help and do
14a0: 63 75 6d 65 6e 74 61 74 69 6f 6e 0d 0a 2f 2f 20  cumentation..// 
14b0: 2e 2e 09 43 6f 6d 70 6c 65 74 65 20 74 68 65 20  ...Complete the 
14c0: 75 73 65 72 20 6d 61 6e 75 61 6c 20 28 49 e2 80  user manual (Iâ€
14d0: 99 76 65 20 62 65 65 6e 20 77 6f 72 6b 69 6e 67  ™ve been working
14e0: 20 6f 6e 20 74 68 69 73 20 6c 61 74 65 6c 79 29   on this lately)
14f0: 2e 0d 0a 2f 2f 20 2e 2e 09 4f 6e 6c 69 6e 65 20  ...// ...Online 
1500: 68 65 6c 70 20 69 6e 20 74 68 65 20 67 75 69 0d  help in the gui.
1510: 0a 2f 2f 20 2e 09 53 74 72 65 61 6d 6c 69 6e 65  .// ..Streamline
1520: 64 20 69 6e 73 74 61 6c 6c 0d 0a 2f 2f 20 2e 2e  d install..// ..
1530: 09 44 65 70 6c 6f 79 65 64 20 76 65 72 73 69 6f  .Deployed versio
1540: 6e 20 28 64 6f 77 6e 6c 6f 61 64 20 61 20 6c 6f  n (download a lo
1550: 63 61 74 69 6f 6e 20 69 6e 64 65 70 65 6e 64 65  cation independe
1560: 6e 74 20 72 65 61 64 79 20 74 6f 20 72 75 6e 20  nt ready to run 
1570: 62 69 6e 61 72 79 20 62 75 6e 64 6c 65 29 0d 0a  binary bundle)..
1580: 2f 2f 20 2e 2e 09 49 6e 73 74 61 6c 6c 20 4d 61  // ...Install Ma
1590: 6b 65 66 69 6c 65 20 28 69 6e 20 70 72 6f 67 72  kefile (in progr
15a0: 65 73 73 2c 20 6e 65 65 64 65 64 20 66 6f 72 20  ess, needed for 
15b0: 4d 69 6b 65 20 74 6f 20 69 6e 73 74 61 6c 6c 20  Mike to install 
15c0: 6f 6e 20 56 4d 73 29 0d 0a 2f 2f 20 2e 2e 09 41  on VMs)..// ...A
15d0: 64 64 65 64 20 6f 70 74 69 6f 6e 20 74 6f 20 63  dded option to c
15e0: 6f 6d 70 69 6c 65 20 49 55 50 20 28 6e 65 65 64  ompile IUP (need
15f0: 65 64 20 66 6f 72 20 56 4d 73 29 0d 0a 2f 2f 20  ed for VMs)..// 
1600: 2e 09 53 65 72 76 65 72 20 73 69 64 65 20 72 75  ..Server side ru
1610: 6e 20 6c 61 75 6e 63 68 69 6e 67 0d 0a 2f 2f 20  n launching..// 
1620: 2e 09 53 75 70 70 6f 72 74 20 66 6f 72 20 72 65  ..Support for re
1630: 2d 72 75 6e 6e 69 6e 67 2c 20 63 6c 65 61 6e 69  -running, cleani
1640: 6e 67 20 65 74 63 2e 20 6f 66 20 69 6e 64 69 76  ng etc. of indiv
1650: 69 64 75 61 6c 20 73 74 65 70 73 20 28 65 7a 73  idual steps (ezs
1660: 74 65 70 73 20 6d 61 6b 65 73 20 74 68 69 73 20  teps makes this 
1670: 76 65 72 79 20 65 61 73 79 20 74 6f 20 69 6d 70  very easy to imp
1680: 6c 65 6d 65 6e 74 29 2e 0d 0a 2f 2f 20 2e 09 4c  lement)...// ..L
1690: 61 75 6e 63 68 20 70 72 6f 63 65 73 73 20 6e 65  aunch process ne
16a0: 65 64 73 20 62 75 69 6c 74 20 69 6e 20 64 61 65  eds built in dae
16b0: 6d 6f 6e 69 7a 69 6e 67 20 28 65 61 73 79 20 74  monizing (easy t
16c0: 6f 20 64 6f 2c 20 6a 75 73 74 20 6e 65 65 64 20  o do, just need 
16d0: 74 6f 20 74 65 73 74 20 69 74 20 74 68 6f 72 6f  to test it thoro
16e0: 75 67 68 6c 79 29 2e 0d 0a 2f 2f 20 2e 09 57 69  ughly)...// ..Wi
16f0: 7a 61 72 64 73 20 66 6f 72 20 63 72 65 61 74 69  zards for creati
1700: 6e 67 20 74 65 73 74 73 2c 20 72 65 67 72 65 73  ng tests, regres
1710: 73 69 6f 6e 20 61 72 65 61 73 20 28 63 75 72 72  sion areas (curr
1720: 65 6e 74 20 6f 6e 65 73 20 61 72 65 20 74 65 78  ent ones are tex
1730: 74 20 6f 6e 6c 79 20 61 6e 64 20 6c 69 6d 69 74  t only and limit
1740: 65 64 29 2e 0d 0a 2f 2f 20 2e 09 46 75 6c 6c 79  ed)...// ..Fully
1750: 20 66 75 6e 63 74 69 6f 6e 61 6c 20 62 75 69 6c   functional buil
1760: 74 20 69 6e 20 77 65 62 20 73 65 72 76 69 63 65  t in web service
1770: 20 28 63 75 72 72 65 6e 74 6c 79 20 79 6f 75 20   (currently you 
1780: 63 61 6e 20 62 72 6f 77 73 65 20 72 75 6e 73 20  can browse runs 
1790: 62 75 74 20 69 74 20 69 73 20 76 65 72 79 20 73  but it is very s
17a0: 69 6d 70 6c 69 73 74 69 63 29 2e 0d 0a 2f 2f 20  implistic)...// 
17b0: 2e 09 57 69 6c 64 63 61 72 64 73 20 69 6e 20 72  ..Wildcards in r
17c0: 75 6e 63 6f 6e 66 69 67 73 3a 20 65 2e 67 2e 20  unconfigs: e.g. 
17d0: 5b 70 31 32 37 31 2f 39 2f 25 2f 25 5d 0d 0a 2f  [p1271/9/%/%]../
17e0: 2f 20 2e 09 47 75 69 20 70 61 6e 65 6c 73 20 66  / ..Gui panels f
17f0: 6f 72 20 65 64 69 74 69 6e 67 20 6d 65 67 61 74  or editing megat
1800: 65 73 74 2e 63 6f 6e 66 69 67 20 61 6e 64 20 72  est.config and r
1810: 75 6e 63 6f 6e 66 69 67 73 2e 63 6f 6e 66 69 67  unconfigs.config
1820: 0d 0a 2f 2f 20 2e 09 46 75 6c 6c 79 20 69 73 6f  ..// ..Fully iso
1830: 6c 61 74 65 64 20 74 65 73 74 73 20 28 6e 6f 20  lated tests (no 
1840: 75 73 65 20 6f 66 20 4e 46 53 20 74 6f 20 73 65  use of NFS to se
1850: 65 20 72 65 67 72 65 73 73 69 6f 6e 20 61 72 65  e regression are
1860: 61 20 66 69 6c 65 73 29 0d 0a 2f 2f 20 2e 09 57  a files)..// ..W
1870: 69 6e 64 6f 77 73 20 76 65 72 73 69 6f 6e 0a 0a  indows version..
1880: 5a 20 35 30 35 61 38 66 64 65 64 37 37 61 66 30  Z 505a8fded77af0
1890: 30 33 33 32 61 38 38 65 38 65 34 38 38 63 33 63  0332a88e8e488c3c
18a0: 64 63 0a                                         dc.