Megatest

Hex Artifact Content
Login

Artifact 8446f6ae845027acf7ccfc6047aa3d02097e9cbc:


0000: 5b 66 69 65 6c 64 73 5d 0a 73 79 73 6e 61 6d 65  [fields].sysname
0010: 20 54 45 58 54 0a 66 73 6e 61 6d 65 20 54 45 58   TEXT.fsname TEX
0020: 54 0a 64 61 74 61 70 61 74 68 20 54 45 58 54 0a  T.datapath TEXT.
0030: 0a 5b 67 72 61 70 68 5d 0a 67 31 20 73 71 6c 69  .[graph].g1 sqli
0040: 74 65 33 3a 2e 2e 2f 2e 2e 2f 65 78 61 6d 70 6c  te3:../../exampl
0050: 65 2e 64 62 20 61 6c 6c 64 61 74 20 65 76 65 6e  e.db alldat even
0060: 74 5f 74 69 6d 65 20 76 61 72 20 76 61 6c 20 73  t_time var val s
0070: 74 75 66 66 0a 0a 23 20 72 65 66 61 72 65 61 73  tuff..# refareas
0080: 20 63 61 6e 20 62 65 20 73 65 61 72 63 68 65 64   can be searched
0090: 20 74 6f 20 66 69 6e 64 20 70 72 65 76 69 6f 75   to find previou
00a0: 73 20 72 75 6e 73 0a 23 20 74 68 65 20 70 61 74  s runs.# the pat
00b0: 68 20 70 6f 69 6e 74 73 20 74 6f 20 77 68 65 72  h points to wher
00c0: 65 20 6d 65 67 61 74 65 73 74 2e 64 62 20 65 78  e megatest.db ex
00d0: 69 73 74 73 0a 5b 72 65 66 61 72 65 61 73 5d 0a  ists.[refareas].
00e0: 61 72 65 61 31 20 2f 74 6d 70 2f 6f 6c 64 61 72  area1 /tmp/oldar
00f0: 65 61 2f 6d 65 67 61 74 65 73 74 0a 0a 5b 69 6e  ea/megatest..[in
0100: 63 6c 75 64 65 20 2e 2f 63 6f 6e 66 69 67 73 2f  clude ./configs/
0110: 6d 74 5f 69 6e 63 6c 75 64 65 5f 31 2e 63 6f 6e  mt_include_1.con
0120: 66 69 67 5d 0a 0a 5b 64 61 73 68 62 6f 61 72 64  fig]..[dashboard
0130: 5d 0a 23 20 70 72 65 2d 63 6f 6d 6d 61 6e 64 20  ].# pre-command 
0140: 20 78 74 65 72 6d 20 2d 67 65 6f 6d 65 74 72 79   xterm -geometry
0150: 20 31 38 30 78 32 30 20 2d 65 20 22 0a 23 20 70   180x20 -e ".# p
0160: 6f 73 74 2d 63 6f 6d 6d 61 6e 64 20 7c 26 20 74  ost-command |& t
0170: 65 65 20 72 65 73 75 6c 74 73 2e 6c 6f 67 20 3b  ee results.log ;
0180: 65 63 68 6f 20 50 72 65 73 73 20 61 6e 79 20 6b  echo Press any k
0190: 65 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 3b 62  ey to continue;b
01a0: 61 73 68 20 2d 63 20 27 72 65 61 64 20 2d 6e 20  ash -c 'read -n 
01b0: 31 20 2d 73 27 22 20 26 0a 74 65 73 74 73 6f 72  1 -s'" &.testsor
01c0: 74 20 2d 65 76 65 6e 74 5f 74 69 6d 65 0a 0a 5b  t -event_time..[
01d0: 6d 69 73 63 5d 0a 68 6f 6d 65 20 23 7b 73 68 65  misc].home #{she
01e0: 6c 6c 20 72 65 61 64 6c 69 6e 6b 20 2d 66 20 24  ll readlink -f $
01f0: 4d 54 5f 52 55 4e 5f 41 52 45 41 5f 48 4f 4d 45  MT_RUN_AREA_HOME
0200: 7d 0a 70 61 72 65 6e 74 20 23 7b 73 68 65 6c 6c  }.parent #{shell
0210: 20 72 65 61 64 6c 69 6e 6b 20 2d 66 20 24 4d 54   readlink -f $MT
0220: 5f 52 55 4e 5f 41 52 45 41 5f 48 4f 4d 45 2f 2e  _RUN_AREA_HOME/.
0230: 2e 7d 0a 74 65 73 74 73 75 69 74 65 20 23 7b 73  .}.testsuite #{s
0240: 68 65 6c 6c 20 62 61 73 65 6e 61 6d 65 20 24 4d  hell basename $M
0250: 54 5f 52 55 4e 5f 41 52 45 41 5f 48 4f 4d 45 7d  T_RUN_AREA_HOME}
0260: 0a 0a 5b 74 65 73 74 73 2d 70 61 74 68 73 5d 0a  ..[tests-paths].
0270: 31 20 23 7b 67 65 74 20 6d 69 73 63 20 70 61 72  1 #{get misc par
0280: 65 6e 74 7d 2f 73 69 6d 70 6c 65 72 75 6e 2f 74  ent}/simplerun/t
0290: 65 73 74 73 0a 0a 5b 73 65 74 75 70 5d 0a 0a 23  ests..[setup]..#
02a0: 20 74 75 72 6e 20 6f 66 66 20 66 61 73 74 73 74   turn off fastst
02b0: 61 72 74 2c 20 70 75 74 20 6d 6f 6e 69 74 6f 72  art, put monitor
02c0: 2e 64 62 20 69 6e 20 4d 54 5f 52 55 4e 5f 41 52  .db in MT_RUN_AR
02d0: 45 41 5f 48 4f 4d 45 2f 64 62 0a 23 20 61 6e 64  EA_HOME/db.# and
02e0: 20 73 65 74 20 74 68 65 20 64 62 64 69 72 20 74   set the dbdir t
02f0: 6f 20 2f 76 61 72 2f 74 6d 70 2f 24 55 53 45 52  o /var/tmp/$USER
0300: 2f 6d 74 5f 64 62 20 74 6f 20 65 6e 61 62 6c 65  /mt_db to enable
0310: 20 6b 65 65 70 69 6e 67 0a 23 20 74 68 65 20 72   keeping.# the r
0320: 61 77 20 64 62 20 69 6e 20 2f 76 61 72 2f 74 6d  aw db in /var/tm
0330: 70 2f 24 55 53 45 52 0a 23 0a 66 61 73 74 73 74  p/$USER.#.fastst
0340: 61 72 74 20 20 6e 6f 0a 6d 6f 6e 69 74 6f 72 64  art  no.monitord
0350: 69 72 20 23 7b 67 65 74 65 6e 76 20 4d 54 5f 52  ir #{getenv MT_R
0360: 55 4e 5f 41 52 45 41 5f 48 4f 4d 45 7d 2f 64 62  UN_AREA_HOME}/db
0370: 0a 64 62 64 69 72 64 65 66 6e 20 20 2f 74 6d 70  .dbdirdefn  /tmp
0380: 2f 23 7b 67 65 74 65 6e 76 20 55 53 45 52 7d 2f  /#{getenv USER}/
0390: 23 7b 67 65 74 65 6e 76 20 4d 54 5f 54 45 53 54  #{getenv MT_TEST
03a0: 53 55 49 54 45 5f 4e 41 4d 45 7d 2f 64 62 0a 64  SUITE_NAME}/db.d
03b0: 62 64 69 72 6d 6b 64 69 72 20 23 7b 73 63 68 65  bdirmkdir #{sche
03c0: 6d 65 20 28 63 72 65 61 74 65 2d 64 69 72 65 63  me (create-direc
03d0: 74 6f 72 79 20 22 23 7b 67 65 74 20 73 65 74 75  tory "#{get setu
03e0: 70 20 64 62 64 69 72 64 65 66 6e 7d 22 20 23 74  p dbdirdefn}" #t
03f0: 29 7d 0a 64 62 64 69 72 20 20 20 20 20 20 23 7b  )}.dbdir      #{
0400: 67 65 74 20 73 65 74 75 70 20 64 62 64 69 72 64  get setup dbdird
0410: 65 66 6e 7d 0a 0a 23 20 73 79 6e 63 20 6d 6f 72  efn}..# sync mor
0420: 65 20 61 67 67 72 65 73 73 69 76 65 6c 79 20 74  e aggressively t
0430: 6f 20 6d 65 67 61 74 65 73 74 2d 64 62 0a 6d 65  o megatest-db.me
0440: 67 61 74 65 73 74 2d 64 62 20 79 65 73 0a 0a 23  gatest-db yes..#
0450: 20 53 65 74 20 6c 61 75 6e 63 68 77 61 69 74 20   Set launchwait 
0460: 74 6f 20 6e 6f 20 74 6f 20 75 73 65 20 74 68 65  to no to use the
0470: 20 6d 6f 72 65 20 61 67 72 65 73 73 69 76 65 20   more agressive 
0480: 63 6f 64 65 20 74 68 61 74 20 64 6f 65 73 20 6e  code that does n
0490: 6f 74 20 77 61 69 74 20 66 6f 72 20 74 68 65 20  ot wait for the 
04a0: 6c 61 75 6e 63 68 20 74 6f 20 63 6f 6d 70 6c 65  launch to comple
04b0: 74 65 20 62 65 66 6f 72 65 20 70 72 6f 63 65 65  te before procee
04c0: 64 69 6e 67 0a 23 20 74 68 69 73 20 6d 61 79 20  ding.# this may 
04d0: 73 61 76 65 20 61 20 66 65 77 20 6d 69 6c 6c 69  save a few milli
04e0: 73 65 63 6f 6e 64 73 20 6f 6e 20 6c 61 75 6e 63  seconds on launc
04f0: 68 69 6e 67 20 74 65 73 74 73 0a 23 20 6c 61 75  hing tests.# lau
0500: 6e 63 68 77 61 69 74 20 6e 6f 0a 77 61 69 76 65  nchwait no.waive
0510: 72 63 6f 6d 6d 65 6e 74 70 61 74 74 20 5e 57 57  rcommentpatt ^WW
0520: 5c 64 2b 20 5b 61 2d 7a 5d 2e 2a 0a 69 6e 63 6f  \d+ [a-z].*.inco
0530: 6d 70 6c 65 74 65 2d 74 69 6d 65 6f 75 74 20 31  mplete-timeout 1
0540: 0a 0a 23 20 77 61 69 74 20 66 6f 72 20 72 75 6e  ..# wait for run
0550: 73 20 74 6f 20 63 6f 6d 70 6c 65 74 65 6c 79 20  s to completely 
0560: 63 6f 6d 70 6c 65 74 65 2e 20 79 65 73 2c 20 61  complete. yes, a
0570: 6e 79 74 68 69 6e 67 20 65 6c 73 65 20 69 73 20  nything else is 
0580: 6e 6f 0a 72 75 6e 2d 77 61 69 74 20 79 65 73 0a  no.run-wait yes.
0590: 0a 23 20 49 66 20 73 65 74 20 74 6f 20 22 64 65  .# If set to "de
05a0: 66 61 75 6c 74 22 20 74 68 65 20 6f 6c 64 20 63  fault" the old c
05b0: 6f 64 65 20 69 73 20 75 73 65 64 2e 20 4f 74 68  ode is used. Oth
05c0: 65 72 77 69 73 65 20 64 65 66 61 75 6c 74 73 20  erwise defaults 
05d0: 74 6f 20 32 30 30 20 6f 72 20 75 73 65 73 0a 23  to 200 or uses.#
05e0: 20 6e 75 6d 65 72 69 63 20 76 61 6c 75 65 20 67   numeric value g
05f0: 69 76 65 6e 2e 0a 23 0a 72 75 6e 71 75 65 75 65  iven..#.runqueue
0600: 20 32 30 0a 0a 23 20 44 65 66 61 75 6c 74 20 72   20..# Default r
0610: 75 6e 74 69 6d 65 6c 69 6d 20 31 64 20 31 68 20  untimelim 1d 1h 
0620: 31 6d 20 31 30 73 0a 23 0a 72 75 6e 74 69 6d 65  1m 10s.#.runtime
0630: 6c 69 6d 20 32 30 6d 0a 0a 23 20 44 65 61 64 74  lim 20m..# Deadt
0640: 69 6d 65 20 2d 20 77 68 65 6e 20 74 6f 20 63 6f  ime - when to co
0650: 6e 73 69 64 65 72 20 74 65 73 74 73 20 64 65 61  nsider tests dea
0660: 64 20 28 69 2e 65 2e 20 68 61 76 65 6e 27 74 20  d (i.e. haven't 
0670: 68 65 61 72 64 20 66 72 6f 6d 20 74 68 65 6d 20  heard from them 
0680: 69 6e 20 74 6f 6f 20 6c 6f 6e 67 29 0a 23 20 4e  in too long).# N
0690: 75 6d 62 65 72 20 69 6e 20 73 65 63 6f 6e 64 73  umber in seconds
06a0: 2c 20 73 65 74 20 74 6f 20 32 30 20 73 65 63 6f  , set to 20 seco
06b0: 6e 64 73 20 68 65 72 65 20 74 6f 20 74 72 69 67  nds here to trig
06c0: 67 65 72 20 61 20 6c 69 74 74 6c 65 20 74 72 6f  ger a little tro
06d0: 75 62 6c 65 2e 20 44 65 66 61 75 6c 74 20 69 73  uble. Default is
06e0: 0a 23 20 31 38 30 30 0a 23 0a 64 65 61 64 74 69  .# 1800.#.deadti
06f0: 6d 65 20 36 30 30 0a 0a 23 20 49 74 20 69 73 20  me 600..# It is 
0700: 70 6f 73 73 69 62 6c 65 20 28 62 75 74 20 6e 6f  possible (but no
0710: 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64 29 20 74  t recommended) t
0720: 6f 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 72  o override the r
0730: 73 79 6e 63 20 63 6f 6d 6d 61 6e 64 20 75 73 65  sync command use
0740: 64 0a 23 20 74 6f 20 70 6f 70 75 6c 61 74 65 20  d.# to populate 
0750: 74 68 65 20 74 65 73 74 20 64 69 72 65 63 74 6f  the test directo
0760: 72 69 65 73 2e 20 46 6f 72 20 74 65 73 74 20 64  ries. For test d
0770: 65 76 65 6c 6f 70 6d 65 6e 74 20 74 68 65 20 66  evelopment the f
0780: 6f 6c 6c 6f 77 69 6e 67 20 0a 23 20 65 78 61 6d  ollowing .# exam
0790: 70 6c 65 20 63 61 6e 20 62 65 20 75 73 65 66 75  ple can be usefu
07a0: 6c 0a 23 0a 74 65 73 74 63 6f 70 79 63 6d 64 20  l.#.testcopycmd 
07b0: 63 70 20 2d 2d 72 65 6d 6f 76 65 2d 64 65 73 74  cp --remove-dest
07c0: 69 6e 61 74 69 6f 6e 20 2d 72 73 76 20 54 45 53  ination -rsv TES
07d0: 54 5f 53 52 43 5f 50 41 54 48 2f 2e 20 54 45 53  T_SRC_PATH/. TES
07e0: 54 5f 54 41 52 47 5f 50 41 54 48 2f 2e 20 3e 3e  T_TARG_PATH/. >>
07f0: 20 54 45 53 54 5f 54 41 52 47 5f 50 41 54 48 2f   TEST_TARG_PATH/
0800: 6d 74 5f 6c 61 75 6e 63 68 2e 6c 6f 67 20 32 3e  mt_launch.log 2>
0810: 3e 20 54 45 53 54 5f 54 41 52 47 5f 50 41 54 48  > TEST_TARG_PATH
0820: 2f 6d 74 5f 6c 61 75 6e 63 68 2e 6c 6f 67 0a 0a  /mt_launch.log..
0830: 23 20 6f 72 20 66 6f 72 20 68 61 72 64 20 6c 69  # or for hard li
0840: 6e 6b 73 0a 0a 23 20 74 65 73 74 63 6f 70 79 63  nks..# testcopyc
0850: 6d 64 20 63 70 20 2d 2d 72 65 6d 6f 76 65 2d 64  md cp --remove-d
0860: 65 73 74 69 6e 61 74 69 6f 6e 20 2d 72 6c 76 20  estination -rlv 
0870: 54 45 53 54 5f 53 52 43 5f 50 41 54 48 2f 2e 20  TEST_SRC_PATH/. 
0880: 54 45 53 54 5f 54 41 52 47 5f 50 41 54 48 2f 2e  TEST_TARG_PATH/.
0890: 0a 0a 23 20 46 55 4c 4c 20 6f 72 20 32 2c 20 4e  ..# FULL or 2, N
08a0: 4f 52 4d 41 4c 20 6f 72 20 31 2c 20 4f 46 46 20  ORMAL or 1, OFF 
08b0: 6f 72 20 30 0a 73 79 6e 63 68 72 6f 6e 6f 75 73  or 0.synchronous
08c0: 20 30 0a 23 20 54 68 72 6f 74 74 6c 65 20 72 6f   0.# Throttle ro
08d0: 75 67 68 6c 79 20 73 63 61 6c 65 73 20 74 68 65  ughly scales the
08e0: 20 64 62 20 61 63 63 65 73 73 20 6d 69 6c 6c 69   db access milli
08f0: 73 65 63 6f 6e 64 73 20 74 6f 20 73 65 63 6f 6e  seconds to secon
0900: 64 73 20 64 65 6c 61 79 0a 74 68 72 6f 74 74 6c  ds delay.throttl
0910: 65 20 30 2e 32 0a 23 20 4d 61 78 20 72 65 74 72  e 0.2.# Max retr
0920: 69 65 73 20 61 6c 6c 6f 77 73 20 6d 65 67 61 74  ies allows megat
0930: 65 73 74 20 74 6f 20 72 65 2d 63 68 65 63 6b 20  est to re-check 
0940: 74 68 61 74 20 61 20 74 65 73 74 73 20 73 74 61  that a tests sta
0950: 74 75 73 20 68 61 73 20 63 68 61 6e 67 65 64 0a  tus has changed.
0960: 23 20 61 73 20 74 65 73 74 73 20 63 61 6e 20 68  # as tests can h
0970: 61 76 65 20 74 72 61 6e 73 69 65 6e 74 20 46 41  ave transient FA
0980: 49 4c 20 73 74 61 74 75 73 20 6f 63 63 61 73 69  IL status occasi
0990: 6f 6e 61 6c 6c 79 0a 6d 61 78 72 65 74 72 69 65  onally.maxretrie
09a0: 73 20 32 30 0a 0a 23 20 53 65 74 75 70 20 63 6f  s 20..# Setup co
09b0: 6e 74 69 6e 75 65 64 2e 0a 5b 73 65 74 75 70 5d  ntinued..[setup]
09c0: 0a 0a 23 20 6f 76 65 72 72 69 64 65 20 74 68 65  ..# override the
09d0: 20 6c 6f 67 76 69 65 77 20 63 6f 6d 6d 61 6e 64   logview command
09e0: 0a 23 0a 6c 6f 67 76 69 65 77 65 72 20 28 25 4d  .#.logviewer (%M
09f0: 54 43 4d 44 25 29 20 32 3e 20 2f 64 65 76 2f 6e  TCMD%) 2> /dev/n
0a00: 75 6c 6c 20 3e 20 2f 64 65 76 2f 6e 75 6c 6c 0a  ull > /dev/null.
0a10: 0a 23 20 6f 76 65 72 72 69 64 65 20 74 68 65 20  .# override the 
0a20: 68 74 6d 6c 20 76 69 65 77 65 72 20 6c 61 75 6e  html viewer laun
0a30: 63 68 20 63 6f 6d 6d 61 6e 64 0a 23 0a 23 20 68  ch command.#.# h
0a40: 74 6d 6c 76 69 65 77 65 72 63 6d 64 20 66 69 72  tmlviewercmd fir
0a50: 65 66 6f 78 20 2d 6e 65 77 2d 77 69 6e 64 6f 77  efox -new-window
0a60: 20 0a 68 74 6d 6c 76 69 65 77 65 72 63 6d 64 20   .htmlviewercmd 
0a70: 61 72 6f 72 61 0a 0a 23 20 2d 72 75 6e 74 65 73  arora..# -runtes
0a80: 74 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79  ts automatically
0a90: 20 64 65 6c 65 74 65 73 20 74 68 65 20 72 65 63   deletes the rec
0aa0: 6f 72 64 73 20 66 6f 72 20 74 65 73 74 73 20 77  ords for tests w
0ab0: 69 74 68 20 74 68 65 20 6c 69 73 74 65 64 20 73  ith the listed s
0ac0: 74 61 74 65 73 20 6f 6e 20 73 74 61 72 74 69 6e  tates on startin
0ad0: 67 20 75 70 20 61 20 72 75 6e 20 61 6c 6c 6f 77  g up a run allow
0ae0: 69 6e 67 20 74 68 65 6d 20 74 6f 20 72 65 2d 72  ing them to re-r
0af0: 75 6e 0a 23 20 20 20 20 20 28 6e 62 2f 2f 20 74  un.#     (nb// t
0b00: 68 69 73 20 69 73 20 69 6e 20 61 64 64 69 74 69  his is in additi
0b10: 6f 6e 20 74 6f 20 4e 4f 54 5f 53 54 41 52 54 45  on to NOT_STARTE
0b20: 44 20 77 68 69 63 68 20 69 73 20 61 75 74 6f 6d  D which is autom
0b30: 61 74 69 63 61 6c 6c 79 20 72 65 2d 72 75 6e 29  atically re-run)
0b40: 0a 23 0a 61 6c 6c 6f 77 2d 61 75 74 6f 2d 72 65  .#.allow-auto-re
0b50: 72 75 6e 20 49 4e 43 4f 4d 50 4c 45 54 45 20 5a  run INCOMPLETE Z
0b60: 45 52 4f 5f 49 54 45 4d 53 0a 23 20 63 6f 75 6c  ERO_ITEMS.# coul
0b70: 64 20 61 64 64 3a 20 53 54 55 43 4b 20 53 54 55  d add: STUCK STU
0b80: 43 4b 2f 44 45 41 44 20 55 4e 4b 4e 4f 57 4e 20  CK/DEAD UNKNOWN 
0b90: 4b 49 4c 4c 45 44 20 4b 49 4c 4c 52 45 51 20 50  KILLED KILLREQ P
0ba0: 52 45 51 5f 44 49 53 43 41 52 44 0a 0a 5b 76 61  REQ_DISCARD..[va
0bb0: 6c 69 64 76 61 6c 75 65 73 5d 0a 73 74 61 74 65  lidvalues].state
0bc0: 20 73 74 61 72 74 20 65 6e 64 20 30 20 31 20 2d   start end 0 1 -
0bd0: 20 32 0a 73 74 61 74 75 73 20 70 61 73 73 20 66   2.status pass f
0be0: 61 69 6c 20 6e 2f 61 20 30 20 31 20 72 75 6e 6e  ail n/a 0 1 runn
0bf0: 69 6e 67 20 2d 20 32 0a 0a 23 20 54 68 65 73 65  ing - 2..# These
0c00: 20 61 72 65 20 73 65 74 20 62 65 66 6f 72 65 20   are set before 
0c10: 61 6c 6c 20 74 65 73 74 73 2c 20 6f 76 65 72 72  all tests, overr
0c20: 69 64 65 20 74 68 65 6d 20 0a 23 20 69 6e 20 74  ide them .# in t
0c30: 68 65 20 74 65 73 74 63 6f 6e 66 69 67 20 5b 70  he testconfig [p
0c40: 72 65 2d 6c 61 75 6e 63 68 2d 65 6e 76 2d 6f 76  re-launch-env-ov
0c50: 65 72 72 69 64 65 73 5d 20 73 65 63 74 69 6f 6e  errides] section
0c60: 0a 5b 65 6e 76 2d 6f 76 65 72 72 69 64 65 5d 0a  .[env-override].
0c70: 0a 0a 41 4c 4c 5f 54 4f 50 4c 45 56 45 4c 5f 54  ..ALL_TOPLEVEL_T
0c80: 45 53 54 53 20 20 20 20 20 20 20 20 20 20 65 78  ESTS          ex
0c90: 69 74 5f 30 20 65 78 69 74 5f 31 20 20 65 7a 5f  it_0 exit_1  ez_
0ca0: 65 78 69 74 32 5f 66 61 69 6c 20 20 65 7a 5f 66  exit2_fail  ez_f
0cb0: 61 69 6c 20 20 20 20 20 20 20 20 65 7a 5f 70 61  ail        ez_pa
0cc0: 73 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ss              
0cd0: 65 7a 6c 6f 67 5f 66 61 69 6c 20 5c 0a 20 20 20  ezlog_fail \.   
0ce0: 20 20 20 20 65 7a 6c 6f 67 5f 66 61 69 6c 5f 74      ezlog_fail_t
0cf0: 68 65 6e 5f 70 61 73 73 20 65 7a 6c 6f 67 5f 70  hen_pass ezlog_p
0d00: 61 73 73 20 20 20 20 20 65 7a 6c 6f 67 5f 77 61  ass     ezlog_wa
0d10: 72 6e 20 20 20 20 20 6c 69 6e 65 69 74 65 6d 5f  rn     lineitem_
0d20: 66 61 69 6c 20 20 6c 69 6e 65 69 74 65 6d 5f 70  fail  lineitem_p
0d30: 61 73 73 20 20 20 20 20 20 20 20 6c 6f 67 70 72  ass        logpr
0d40: 6f 5f 72 65 71 75 69 72 65 64 5f 66 61 69 6c 20  o_required_fail 
0d50: 5c 0a 20 20 20 20 20 20 20 6d 61 6e 75 61 6c 5f  \.       manual_
0d60: 65 78 61 6d 70 6c 65 20 20 20 20 20 20 20 6e 65  example       ne
0d70: 76 65 72 72 75 6e 20 20 20 20 20 20 20 70 72 69  verrun       pri
0d80: 6f 72 69 74 79 5f 31 20 20 20 20 20 70 72 69 6f  ority_1     prio
0d90: 72 69 74 79 5f 31 30 20 20 20 20 70 72 69 6f 72  rity_10    prior
0da0: 69 74 79 5f 31 30 5f 77 61 69 74 6f 6e 5f 31 20  ity_10_waiton_1 
0db0: 5c 0a 20 20 20 20 20 20 20 70 72 69 6f 72 69 74  \.       priorit
0dc0: 79 5f 33 20 20 20 20 20 20 20 20 20 20 20 70 72  y_3           pr
0dd0: 69 6f 72 69 74 79 5f 34 20 20 20 20 20 70 72 69  iority_4     pri
0de0: 6f 72 69 74 79 5f 35 20 20 20 20 20 70 72 69 6f  ority_5     prio
0df0: 72 69 74 79 5f 36 20 20 20 20 20 70 72 69 6f 72  rity_6     prior
0e00: 69 74 79 5f 37 20 20 20 20 20 20 20 20 20 20 20  ity_7           
0e10: 70 72 69 6f 72 69 74 79 5f 38 20 5c 0a 20 20 20  priority_8 \.   
0e20: 20 20 20 20 70 72 69 6f 72 69 74 79 5f 39 20 20      priority_9  
0e30: 20 20 20 20 20 20 20 20 20 72 75 6e 66 69 72 73           runfirs
0e40: 74 20 20 20 20 20 20 20 73 69 6e 67 6c 65 74 65  t       singlete
0e50: 73 74 20 20 20 20 20 73 69 6e 67 6c 65 74 65 73  st     singletes
0e60: 74 32 20 20 20 20 73 71 6c 69 74 65 73 70 65 65  t2    sqlitespee
0e70: 64 20 20 20 20 20 20 20 20 20 20 74 65 73 74 5f  d          test_
0e80: 6d 74 5f 76 61 72 73 20 5c 0a 20 20 20 20 20 20  mt_vars \.      
0e90: 20 65 7a 5f 66 61 69 6c 5f 71 75 69 63 6b 20 20   ez_fail_quick  
0ea0: 20 20 20 20 20 20 74 65 73 74 31 20 20 20 20 20        test1     
0eb0: 20 20 20 20 20 74 65 73 74 32 0a 0a 23 20 54 68       test2..# Th
0ec0: 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 68  is variable is h
0ed0: 6f 6e 6f 72 65 64 20 62 79 20 74 68 65 20 6c 6f  onored by the lo
0ee0: 61 64 72 75 6e 6e 65 72 20 73 63 72 69 70 74 2e  adrunner script.
0ef0: 20 54 68 65 20 76 61 6c 75 65 20 69 73 20 69 6e   The value is in
0f00: 20 70 65 72 63 65 6e 74 0a 4d 41 58 5f 41 4c 4c   percent.MAX_ALL
0f10: 4f 57 45 44 5f 4c 4f 41 44 20 32 30 30 0a 0a 23  OWED_LOAD 200..#
0f20: 20 4d 54 5f 58 54 45 52 4d 5f 43 4d 44 20 6f 76   MT_XTERM_CMD ov
0f30: 65 72 72 69 64 65 73 20 74 68 65 20 74 65 72 6d  errides the term
0f40: 69 6e 61 6c 20 63 6f 6d 6d 61 6e 64 0a 23 20 4d  inal command.# M
0f50: 54 5f 58 54 45 52 4d 5f 43 4d 44 20 78 74 65 72  T_XTERM_CMD xter
0f60: 6d 20 2d 62 67 20 6c 69 67 68 74 67 72 65 65 6e  m -bg lightgreen
0f70: 20 2d 66 67 20 62 6c 61 63 6b 0a 0a 53 50 45 43   -fg black..SPEC
0f80: 49 41 4c 5f 45 4e 56 5f 56 41 52 53 20 6f 76 65  IAL_ENV_VARS ove
0f90: 72 69 64 65 20 74 68 65 6d 20 68 65 72 65 20 2d  ride them here -
0fa0: 20 73 68 6f 75 6c 64 20 62 65 20 73 65 65 6e 20   should be seen 
0fb0: 61 74 20 6c 61 75 6e 63 68 20 61 6e 64 20 69 6e  at launch and in
0fc0: 20 74 68 65 20 72 75 6e 73 0a 54 45 53 54 56 41   the runs.TESTVA
0fd0: 52 20 5b 73 79 73 74 65 6d 20 72 65 61 64 6c 69  R [system readli
0fe0: 6e 6b 20 2d 66 20 2e 5d 0a 44 45 41 44 56 41 52  nk -f .].DEADVAR
0ff0: 20 5b 73 79 73 74 65 6d 20 6c 73 5d 0a 56 41 52   [system ls].VAR
1000: 57 49 54 48 44 4f 4c 4c 41 52 20 24 48 4f 4d 45  WITHDOLLAR $HOME
1010: 2f 2e 7a 73 68 72 63 0a 57 41 43 4b 59 56 41 52  /.zshrc.WACKYVAR
1020: 20 20 23 7b 73 79 73 74 65 6d 20 6c 73 20 3e 20    #{system ls > 
1030: 2f 64 65 76 2f 6e 75 6c 6c 7d 0a 57 41 43 4b 59  /dev/null}.WACKY
1040: 56 41 52 32 20 23 7b 67 65 74 20 76 61 6c 69 64  VAR2 #{get valid
1050: 76 61 6c 75 65 73 20 73 74 61 74 65 7d 0a 57 41  values state}.WA
1060: 43 4b 59 56 41 52 33 20 23 7b 67 65 74 65 6e 76  CKYVAR3 #{getenv
1070: 20 55 53 45 52 7d 0a 57 41 43 4b 59 56 41 52 34   USER}.WACKYVAR4
1080: 20 23 7b 73 63 68 65 6d 65 20 28 2b 20 35 20 36   #{scheme (+ 5 6
1090: 20 37 29 7d 0a 57 41 43 4b 59 56 41 52 35 20 23   7)}.WACKYVAR5 #
10a0: 7b 67 65 74 65 6e 76 20 73 79 73 6e 61 6d 65 7d  {getenv sysname}
10b0: 2f 23 7b 67 65 74 65 6e 76 20 66 73 6e 61 6d 65  /#{getenv fsname
10c0: 7d 2f 23 7b 67 65 74 65 6e 76 20 64 61 74 61 70  }/#{getenv datap
10d0: 61 74 68 7d 0a 57 41 43 4b 59 56 41 52 36 20 23  ath}.WACKYVAR6 #
10e0: 7b 73 63 68 65 6d 65 20 28 61 72 67 73 3a 67 65  {scheme (args:ge
10f0: 74 2d 61 72 67 20 22 2d 74 61 72 67 65 74 22 29  t-arg "-target")
1100: 7d 0a 50 52 45 44 49 43 54 41 42 4c 45 20 74 68  }.PREDICTABLE th
1110: 65 5f 61 6e 73 0a 4d 52 41 48 20 4d 54 5f 52 55  e_ans.MRAH MT_RU
1120: 4e 5f 41 52 45 41 5f 48 4f 4d 45 3d 23 7b 67 65  N_AREA_HOME=#{ge
1130: 74 65 6e 76 20 4d 54 5f 52 55 4e 5f 41 52 45 41  tenv MT_RUN_AREA
1140: 5f 48 4f 4d 45 7d 0a 23 20 54 68 65 20 65 6d 70  _HOME}.# The emp
1150: 74 79 20 76 61 72 20 73 68 6f 75 6c 64 20 68 61  ty var should ha
1160: 76 65 20 61 20 64 65 66 69 6e 69 74 69 6f 6e 20  ve a definition 
1170: 77 69 74 68 20 6e 75 6c 6c 20 73 74 72 69 6e 67  with null string
1180: 0a 45 4d 50 54 59 5f 56 41 52 0a 0a 57 52 41 50  .EMPTY_VAR..WRAP
1190: 50 45 44 56 41 52 20 54 68 69 73 20 76 61 72 20  PEDVAR This var 
11a0: 73 68 6f 75 6c 64 20 68 61 76 65 20 74 68 65 20  should have the 
11b0: 77 6f 72 6b 20 62 6c 61 68 20 74 68 72 69 63 65  work blah thrice
11c0: 3a 20 5c 0a 62 6c 61 68 20 5c 0a 62 6c 61 68 0a  : \.blah \.blah.
11d0: 0a 4d 59 52 55 4e 4e 41 4d 45 31 20 2f 74 68 69  .MYRUNNAME1 /thi
11e0: 73 2f 69 73 2f 23 7b 67 65 74 65 6e 76 20 4d 54  s/is/#{getenv MT
11f0: 5f 52 55 4e 4e 41 4d 45 7d 2f 6d 79 2f 72 75 6e  _RUNNAME}/my/run
1200: 6e 61 6d 65 0a 4d 59 52 55 4e 4e 41 4d 45 32 20  name.MYRUNNAME2 
1210: 2f 74 68 69 73 2f 69 73 2f 5b 73 79 73 74 65 6d  /this/is/[system
1220: 20 65 63 68 6f 20 24 4d 54 5f 52 55 4e 4e 41 4d   echo $MT_RUNNAM
1230: 45 5d 2f 6d 79 2f 72 75 6e 6e 61 6d 65 0a 0a 0a  E]/my/runname...
1240: 23 20 58 54 45 52 4d 20 20 20 5b 73 79 73 74 65  # XTERM   [syste
1250: 6d 20 78 74 65 72 6d 5d 0a 23 20 52 55 4e 44 45  m xterm].# RUNDE
1260: 41 44 20 5b 73 79 73 74 65 6d 20 65 78 69 74 20  AD [system exit 
1270: 35 36 5d 0a 0a 5b 73 65 72 76 65 72 5d 0a 0a 23  56]..[server]..#
1280: 20 66 6f 72 63 65 20 75 73 65 20 6f 66 20 73 65   force use of se
1290: 72 76 65 72 20 61 6c 77 61 79 73 0a 23 20 72 65  rver always.# re
12a0: 71 75 69 72 65 64 20 79 65 73 0a 0a 23 20 55 73  quired yes..# Us
12b0: 65 20 68 74 74 70 20 69 6e 73 74 65 61 64 20 6f  e http instead o
12c0: 66 20 64 69 72 65 63 74 20 66 69 6c 65 73 79 73  f direct filesys
12d0: 74 65 6d 20 61 63 63 65 73 73 0a 74 72 61 6e 73  tem access.trans
12e0: 70 6f 72 74 20 68 74 74 70 0a 23 20 74 72 61 6e  port http.# tran
12f0: 73 70 6f 72 74 20 66 73 0a 23 20 74 72 61 6e 73  sport fs.# trans
1300: 70 6f 72 74 20 6e 6d 73 67 0a 0a 73 79 6e 63 68  port nmsg..synch
1310: 72 6f 6e 6f 75 73 20 30 0a 0a 23 20 49 66 20 74  ronous 0..# If t
1320: 68 65 20 73 65 72 76 65 72 20 63 61 6e 27 74 20  he server can't 
1330: 62 65 20 73 74 61 72 74 65 64 20 6f 6e 20 74 68  be started on th
1340: 69 73 20 70 6f 72 74 20 69 74 20 77 69 6c 6c 20  is port it will 
1350: 74 72 79 20 74 68 65 20 6e 65 78 74 20 70 6f 72  try the next por
1360: 74 20 75 6e 74 69 6c 0a 23 20 69 74 20 73 75 63  t until.# it suc
1370: 63 65 65 64 73 0a 70 6f 72 74 20 39 30 38 30 0a  ceeds.port 9080.
1380: 0a 23 20 54 68 69 73 20 73 65 72 76 65 72 20 77  .# This server w
1390: 69 6c 6c 20 6b 65 65 70 20 72 75 6e 6e 69 6e 67  ill keep running
13a0: 20 74 68 69 73 20 6e 75 6d 62 65 72 20 6f 66 20   this number of 
13b0: 68 6f 75 72 73 20 61 66 74 65 72 20 6c 61 73 74  hours after last
13c0: 20 61 63 63 65 73 73 2e 20 0a 23 20 54 68 72 65   access. .# Thre
13d0: 65 20 6d 69 6e 75 74 65 73 20 69 73 20 30 2e 30  e minutes is 0.0
13e0: 35 20 68 6f 75 72 73 0a 23 20 74 69 6d 65 6f 75  5 hours.# timeou
13f0: 74 20 30 2e 30 32 35 0a 74 69 6d 65 6f 75 74 20  t 0.025.timeout 
1400: 30 2e 30 31 0a 0a 23 20 66 61 73 74 73 74 61 72  0.01..# faststar
1410: 74 3b 20 75 6e 6c 65 73 73 20 6e 6f 2c 20 73 74  t; unless no, st
1420: 61 72 74 20 73 65 72 76 65 72 20 62 75 74 20 70  art server but p
1430: 72 6f 63 65 65 64 20 77 69 74 68 20 77 72 69 74  roceed with writ
1440: 65 73 20 75 6e 74 69 6c 20 73 65 72 76 65 72 20  es until server 
1450: 73 74 61 72 74 65 64 0a 23 20 66 61 73 74 73 74  started.# fastst
1460: 61 72 74 20 6e 6f 0a 66 61 73 74 73 74 61 72 74  art no.faststart
1470: 20 79 65 73 0a 0a 23 20 53 74 61 72 74 20 73 65   yes..# Start se
1480: 72 76 65 72 20 77 68 65 6e 20 61 76 65 72 61 67  rver when averag
1490: 65 20 71 75 65 72 79 20 74 61 6b 65 73 20 6c 6f  e query takes lo
14a0: 6e 67 65 72 20 74 68 61 6e 20 74 68 69 73 0a 23  nger than this.#
14b0: 20 73 65 72 76 65 72 2d 71 75 65 72 79 2d 74 68   server-query-th
14c0: 72 65 73 68 6f 6c 64 20 35 35 35 30 30 0a 73 65  reshold 55500.se
14d0: 72 76 65 72 2d 71 75 65 72 79 2d 74 68 72 65 73  rver-query-thres
14e0: 68 6f 6c 64 20 31 30 30 30 0a 0a 23 20 64 61 65  hold 1000..# dae
14f0: 6d 6f 6e 69 7a 65 20 79 65 73 0a 23 20 68 6f 73  monize yes.# hos
1500: 74 6e 61 6d 65 20 23 7b 73 63 68 65 6d 65 20 28  tname #{scheme (
1510: 67 65 74 2d 68 6f 73 74 2d 6e 61 6d 65 29 7d 0a  get-host-name)}.
1520: 0a 23 23 20 64 69 73 6b 73 20 61 72 65 3a 0a 23  .## disks are:.#
1530: 23 20 6e 61 6d 65 20 68 6f 73 74 3a 2f 70 61 74  # name host:/pat
1540: 68 2f 74 6f 2f 61 72 65 61 0a 23 23 20 2d 6f 72  h/to/area.## -or
1550: 2d 0a 23 23 20 6e 61 6d 65 20 2f 70 61 74 68 2f  -.## name /path/
1560: 74 6f 2f 61 72 65 61 0a 5b 64 69 73 6b 73 5d 0a  to/area.[disks].
1570: 64 69 73 6b 30 20 2f 66 6f 6f 62 61 72 62 61 7a  disk0 /foobarbaz
1580: 7a 0a 64 69 73 6b 31 20 6e 6f 74 2d 61 2d 64 69  z.disk1 not-a-di
1590: 73 6b 0a 0a 5b 69 6e 63 6c 75 64 65 20 2e 2f 63  sk..[include ./c
15a0: 6f 6e 66 69 67 73 2f 6d 74 5f 69 6e 63 6c 75 64  onfigs/mt_includ
15b0: 65 5f 32 2e 63 6f 6e 66 69 67 5d 0a 0a 5b 69 6e  e_2.config]..[in
15c0: 63 6c 75 64 65 20 23 7b 67 65 74 65 6e 76 20 55  clude #{getenv U
15d0: 53 45 52 7d 5f 74 65 73 74 69 6e 67 2e 63 6f 6e  SER}_testing.con
15e0: 66 69 67 5d 0a 0a 5b 6a 6f 62 67 72 6f 75 70 73  fig]..[jobgroups
15f0: 5d 0a 0a 23 20 4e 4f 54 45 3a 20 6a 6f 62 20 67  ]..# NOTE: job g
1600: 72 6f 75 70 73 20 77 69 6c 6c 20 66 61 6c 73 65  roups will false
1610: 6c 79 20 63 6f 75 6e 74 20 74 68 65 20 74 6f 70  ly count the top
1620: 6c 65 76 65 6c 20 74 65 73 74 20 61 73 20 61 20  level test as a 
1630: 6a 6f 62 2e 20 49 66 20 70 6f 73 73 69 62 6c 65  job. If possible
1640: 20 61 64 64 20 4e 0a 23 20 20 20 20 20 20 20 74   add N.#       t
1650: 6f 20 79 6f 75 72 20 6a 6f 62 67 72 6f 75 70 73  o your jobgroups
1660: 20 77 68 65 72 65 20 4e 20 69 73 20 74 68 65 20   where N is the 
1670: 6e 75 6d 62 65 72 20 6f 66 20 70 61 72 61 6c 6c  number of parall
1680: 65 6c 20 72 75 6e 73 20 79 6f 75 20 61 72 65 20  el runs you are 
1690: 6c 69 6b 65 6c 79 20 74 6f 20 73 65 65 0a 23 20  likely to see.# 
16a0: 20 20 20 20 20 0a 73 71 6c 69 74 65 33 20 36 0a       .sqlite3 6.
16b0: 62 6c 6f 63 6b 7a 20 20 31 30 0a 23 20 20 20 20  blockz  10.#    
16c0: 20 20 20 74 6f 20 79 6f 75 72 20 6a 6f 62 67 72     to your jobgr
16d0: 6f 75 70 73 20 77 68 65 72 65 20 4e 20 69 73 20  oups where N is 
16e0: 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 70 61  the number of pa
16f0: 72 61 6c 6c 65 6c 20 72 75 6e 73 20 79 6f 75 20  rallel runs you 
1700: 61 72 65 20 6c 69 6b 65 6c 79 20 74 6f 20 73 65  are likely to se
1710: 65 0a 23 20 20 20 20 20 20 20 0a 0a 23 3d 3d 3d  e.#       ..#===
1720: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1730: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1740: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1750: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1760: 3d 3d 3d 0a 23 20 4d 61 63 68 69 6e 65 20 66 6c  ===.# Machine fl
1770: 61 76 6f 72 73 0a 23 0a 23 20 20 20 54 68 65 73  avors.#.#   Thes
1780: 65 20 73 70 65 63 69 66 79 20 6c 69 73 74 73 20  e specify lists 
1790: 6f 66 20 68 6f 73 74 73 20 6f 72 20 73 63 72 69  of hosts or scri
17a0: 70 74 73 20 74 6f 20 75 73 65 20 6f 72 20 63 61  pts to use or ca
17b0: 6c 6c 20 66 6f 72 20 76 61 72 69 6f 75 73 0a 23  ll for various.#
17c0: 20 20 20 66 6c 61 76 6f 72 73 20 6f 66 20 74 61     flavors of ta
17d0: 73 6b 2e 0a 23 0a 23 3d 3d 3d 3d 3d 3d 3d 3d 3d  sk..#.#=========
17e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
17f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1800: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1810: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 5b  =============..[
1820: 66 6c 61 76 6f 72 73 5d 0a 0a 70 6c 61 69 6e 20  flavors]..plain 
1830: 68 6f 73 74 73 3a 20 78 65 6e 61 2c 20 70 68 6f  hosts: xena, pho
1840: 65 62 65 0a 73 74 72 6f 6e 67 20 63 6f 6d 6d 61  ebe.strong comma
1850: 6e 64 3a 20 4e 42 46 41 4b 45 5f 48 4f 53 54 3d  nd: NBFAKE_HOST=
1860: 7a 65 75 73 20 6e 62 66 61 6b 65 0a 61 72 6d 20  zeus nbfake.arm 
1870: 68 6f 73 74 73 3a 20 63 75 62 69 61 6e 0a 0a 5b  hosts: cubian..[
1880: 61 72 63 68 69 76 65 5d 0a 0a 23 20 77 68 65 72  archive]..# wher
1890: 65 20 74 6f 20 67 65 74 20 62 75 70 20 65 78 65  e to get bup exe
18a0: 63 75 74 61 62 6c 65 0a 23 20 62 75 70 20 2f 70  cutable.# bup /p
18b0: 61 74 68 2f 74 6f 2f 62 75 70 0a 0a 23 20 75 73  ath/to/bup..# us
18c0: 65 20 6d 61 63 68 69 6e 65 73 20 6f 66 20 74 68  e machines of th
18d0: 65 73 65 20 66 6c 61 76 6f 72 0a 75 73 65 66 6c  ese flavor.usefl
18e0: 61 76 6f 72 73 20 70 6c 61 69 6e 0a 74 61 72 67  avors plain.targ
18f0: 73 69 7a 65 20 32 47 0a 0a 23 20 6d 69 6e 69 6d  size 2G..# minim
1900: 75 6d 20 73 70 61 63 65 20 72 65 71 75 69 72 65  um space require
1910: 64 20 6f 6e 20 61 6e 20 61 72 63 68 69 76 65 20  d on an archive 
1920: 64 69 73 6b 20 62 65 66 6f 72 65 20 61 6c 6c 6f  disk before allo
1930: 77 69 6e 67 20 61 72 63 68 69 76 69 6e 67 20 74  wing archiving t
1940: 6f 20 73 74 61 72 74 20 28 4d 42 29 0a 6d 69 6e  o start (MB).min
1950: 73 70 61 63 65 20 31 30 0a 0a 5b 61 72 63 68 69  space 10..[archi
1960: 76 65 2d 64 69 73 6b 73 5d 0a 0a 23 20 41 72 63  ve-disks]..# Arc
1970: 68 69 76 65 73 20 77 69 6c 6c 20 62 65 20 6f 72  hives will be or
1980: 67 61 6e 69 73 65 64 20 75 6e 64 65 72 20 74 68  ganised under th
1990: 65 73 65 20 70 61 74 68 73 20 6c 69 6b 65 20 74  ese paths like t
19a0: 68 69 73 3a 0a 23 20 20 3c 74 65 73 74 73 75 69  his:.#  <testsui
19b0: 74 65 3e 2f 3c 63 72 65 61 74 69 6f 6e 64 61 74  te>/<creationdat
19c0: 65 3e 0a 23 20 57 69 74 68 69 6e 20 74 68 65 20  e>.# Within the 
19d0: 61 72 63 68 69 76 65 20 74 68 65 20 64 61 74 61  archive the data
19e0: 20 69 73 20 73 74 72 75 63 74 75 72 65 64 20 6c   is structured l
19f0: 69 6b 65 20 74 68 69 73 3a 0a 23 20 20 3c 74 61  ike this:.#  <ta
1a00: 72 67 65 74 3e 2f 3c 72 75 6e 6e 61 6d 65 3e 2f  rget>/<runname>/
1a10: 3c 74 65 73 74 3e 2f 0a 64 69 73 6b 30 20 2f 74  <test>/.disk0 /t
1a20: 6d 70 2f 23 7b 67 65 74 65 6e 76 20 55 53 45 52  mp/#{getenv USER
1a30: 7d 2f 61 64 69 73 6b 31 0a 0a 23 20 55 6e 63 6f  }/adisk1..# Unco
1a40: 6d 6d 65 6e 74 20 74 68 65 73 65 20 74 6f 20 65  mment these to e
1a50: 6d 75 6c 61 74 65 20 61 20 6a 6f 62 20 71 75 65  mulate a job que
1a60: 75 65 20 77 69 74 68 20 61 20 6c 6f 6e 67 20 74  ue with a long t
1a70: 69 6d 65 20 28 6c 6f 6f 6b 20 69 6e 20 62 69 6e  ime (look in bin
1a80: 2f 73 6c 65 65 70 72 75 6e 6e 65 72 20 66 6f 72  /sleeprunner for
1a90: 20 74 68 65 20 74 69 6d 65 29 0a 5b 6a 6f 62 74   the time).[jobt
1aa0: 6f 6f 6c 73 5d 0a 6c 61 75 6e 63 68 65 72 20 23  ools].launcher #
1ab0: 7b 73 63 68 65 6d 65 20 28 63 61 73 65 20 28 73  {scheme (case (s
1ac0: 74 72 69 6e 67 2d 3e 73 79 6d 62 6f 6c 20 28 63  tring->symbol (c
1ad0: 6f 6e 63 20 28 67 65 74 65 6e 76 20 22 64 61 74  onc (getenv "dat
1ae0: 61 70 61 74 68 22 29 29 29 20 5c 0a 20 20 20 20  apath"))) \.    
1af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b00: 20 20 20 20 20 28 28 6e 6f 6e 65 29 20 22 6e 62       ((none) "nb
1b10: 66 61 6b 65 22 29 20 5c 0a 20 20 20 20 20 20 20  fake") \.       
1b20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b30: 20 20 28 28 6f 70 65 6e 6c 61 76 61 29 20 22 62    ((openlava) "b
1b40: 73 75 62 20 2d 6f 20 24 4d 54 5f 4c 49 4e 4b 54  sub -o $MT_LINKT
1b50: 52 45 45 2f 24 4d 54 5f 54 41 52 47 45 54 2f 24  REE/$MT_TARGET/$
1b60: 4d 54 5f 52 55 4e 4e 41 4d 45 2e 24 4d 54 5f 54  MT_RUNNAME.$MT_T
1b70: 45 53 54 4e 41 4d 45 2d 24 4d 54 5f 49 54 45 4d  ESTNAME-$MT_ITEM
1b80: 5f 50 41 54 48 2e 6c 6f 67 22 29 20 5c 0a 20 20  _PATH.log") \.  
1b90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba0: 20 20 20 20 20 20 20 28 28 73 6c 65 65 70 72 75         ((sleepru
1bb0: 6e 6e 65 72 29 20 22 73 6c 65 65 70 72 75 6e 6e  nner) "sleeprunn
1bc0: 65 72 22 29 20 5c 0a 20 20 20 20 20 20 20 20 20  er") \.         
1bd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be0: 28 65 6c 73 65 20 22 6e 62 66 61 6b 65 22 29 29  (else "nbfake"))
1bf0: 7d 0a 0a 23 20 6c 61 75 6e 63 68 65 72 20 62 73  }..# launcher bs
1c00: 75 62 20 2d 71 20 70 72 69 6f 72 69 74 79 20 2d  ub -q priority -
1c10: 6f 20 24 4d 54 5f 54 45 53 54 5f 52 55 4e 5f 44  o $MT_TEST_RUN_D
1c20: 49 52 2f 6f 70 65 6e 6c 61 76 61 2e 6c 6f 67 20  IR/openlava.log 
1c30: 0a 0a 23 20 6c 61 75 6e 63 68 65 72 20 23 7b 73  ..# launcher #{s
1c40: 68 65 6c 6c 20 69 66 20 77 68 69 63 68 20 62 73  hell if which bs
1c50: 75 62 20 3e 20 2f 64 65 76 2f 6e 75 6c 6c 3b 74  ub > /dev/null;t
1c60: 68 65 6e 20 65 63 68 6f 20 62 73 75 62 20 2d 71  hen echo bsub -q
1c70: 20 70 72 69 6f 72 69 74 79 20 2d 6f 20 6f 70 65   priority -o ope
1c80: 6e 6c 61 76 61 2e 6c 6f 67 3b 65 6c 73 65 20 65  nlava.log;else e
1c90: 63 68 6f 20 73 6c 65 65 70 72 75 6e 6e 65 72 3b  cho sleeprunner;
1ca0: 66 69 7d 0a 23 20 6c 61 75 6e 63 68 65 72 20 6e  fi}.# launcher n
1cb0: 62 66 61 6b 65 0a 0a 5b 63 6f 6e 66 69 67 66 3a  bfake..[configf:
1cc0: 73 65 74 74 69 6e 67 73 20 74 72 69 6d 2d 74 72  settings trim-tr
1cd0: 61 69 6c 69 6e 67 2d 73 70 61 63 65 73 20 79 65  ailing-spaces ye
1ce0: 73 5d 0a 0a 23 20 4f 76 65 72 72 69 64 65 20 74  s]..# Override t
1cf0: 68 65 20 72 6f 6c 6c 75 70 20 66 6f 72 20 73 70  he rollup for sp
1d00: 65 63 69 66 69 63 20 74 65 73 74 73 0a 5b 74 65  ecific tests.[te
1d10: 73 74 72 6f 6c 6c 75 70 5d 0a 72 75 6e 66 69 72  strollup].runfir
1d20: 73 74 20 6c 73 0a 0a 5b 74 65 73 74 5d 0a 23 20  st ls..[test].# 
1d30: 56 41 4c 31 20 68 61 73 20 74 72 61 69 6c 69 6e  VAL1 has trailin
1d40: 67 20 73 70 61 63 65 73 0a 56 41 4c 31 20 46 6f  g spaces.VAL1 Fo
1d50: 6f 20 20 20 20 0a 56 41 4c 32 20 3d 3d 3e 23 7b  o    .VAL2 ==>#{
1d60: 67 65 74 20 74 65 73 74 20 56 41 4c 31 7d 42 61  get test VAL1}Ba
1d70: 72 3c 3d 3d 20 6e 6f 20 73 70 61 63 65 73 20 62  r<== no spaces b
1d80: 65 74 77 65 65 6e 20 46 6f 6f 20 61 6e 64 20 42  etween Foo and B
1d90: 61 72 20 74 6f 20 70 61 73 73 0a 0a 6c 74 65 73  ar to pass..ltes
1da0: 74 20 23 7b 73 63 68 65 6d 65 20 28 63 61 73 65  t #{scheme (case
1db0: 20 28 73 74 72 69 6e 67 2d 3e 73 79 6d 62 6f 6c   (string->symbol
1dc0: 20 28 63 6f 6e 63 20 28 67 65 74 65 6e 76 20 22   (conc (getenv "
1dd0: 64 61 74 61 70 61 74 68 22 29 29 29 20 5c 0a 20  datapath"))) \. 
1de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df0: 20 20 20 20 20 20 20 28 28 6e 6f 6e 65 29 20 22         ((none) "
1e00: 6e 62 66 61 6b 65 22 29 20 5c 0a 20 20 20 20 20  nbfake") \.     
1e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e20: 20 20 20 28 28 6f 70 65 6e 6c 61 76 61 29 20 22     ((openlava) "
1e30: 62 73 75 62 20 2d 6f 20 24 4d 54 5f 4c 49 4e 4b  bsub -o $MT_LINK
1e40: 54 52 45 45 2f 24 4d 54 5f 54 41 52 47 45 54 2f  TREE/$MT_TARGET/
1e50: 24 4d 54 5f 52 55 4e 4e 41 4d 45 2e 24 4d 54 5f  $MT_RUNNAME.$MT_
1e60: 54 45 53 54 4e 41 4d 45 2d 24 4d 54 5f 49 54 45  TESTNAME-$MT_ITE
1e70: 4d 5f 50 41 54 48 2e 6c 6f 67 22 29 20 5c 0a 20  M_PATH.log") \. 
1e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e90: 20 20 20 20 20 20 20 28 65 6c 73 65 20 22 73 6c         (else "sl
1ea0: 65 65 70 72 75 6e 6e 65 72 22 29 29 7d 0a 0a 23  eeprunner"))}..#
1eb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1ec0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1ed0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1ee0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1ef0: 0a 23 20 46 6c 65 78 69 2d 6c 61 75 6e 63 68 65  .# Flexi-launche
1f00: 72 0a 23 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  r.#=============
1f10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1f20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1f30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1f40: 3d 3d 3d 0a 23 0a 23 20 5b 68 6f 73 74 2d 74 79  ===.#.# [host-ty
1f50: 70 65 73 5d 0a 23 20 67 65 6e 65 72 61 6c 20 73  pes].# general s
1f60: 73 68 20 23 7b 67 65 74 62 67 65 73 74 68 6f 73  sh #{getbgesthos
1f70: 74 20 67 65 6e 65 72 61 6c 7d 0a 23 20 6e 62 67  t general}.# nbg
1f80: 65 6e 65 72 61 6c 20 6e 62 6a 6f 62 20 72 75 6e  eneral nbjob run
1f90: 20 4a 4f 42 43 4f 4d 4d 41 4e 44 20 2d 6c 6f 67   JOBCOMMAND -log
1fa0: 20 24 4d 54 5f 4c 49 4e 4b 54 52 45 45 2f 24 4d   $MT_LINKTREE/$M
1fb0: 54 5f 54 41 52 47 45 54 2f 24 4d 54 5f 52 55 4e  T_TARGET/$MT_RUN
1fc0: 4e 41 4d 45 2e 24 4d 54 5f 54 45 53 54 4e 41 4d  NAME.$MT_TESTNAM
1fd0: 45 2d 24 4d 54 5f 49 54 45 4d 5f 50 41 54 48 2e  E-$MT_ITEM_PATH.
1fe0: 6c 67 6f 0a 23 20 0a 23 20 5b 68 6f 73 74 73 5d  lgo.# .# [hosts]
1ff0: 0a 23 20 67 65 6e 65 72 61 6c 20 63 75 62 69 61  .# general cubia
2000: 6e 20 78 65 6e 61 0a 23 20 0a 23 20 5b 6c 61 75  n xena.# .# [lau
2010: 6e 63 68 65 72 73 5d 0a 23 20 65 6e 76 73 65 74  nchers].# envset
2020: 75 70 20 67 65 6e 65 72 61 6c 0a 23 20 78 6f 72  up general.# xor
2030: 2f 25 2f 6e 20 34 43 31 36 47 0a 23 20 25 20 6e  /%/n 4C16G.# % n
2040: 62 67 65 6e 65 72 61 6c 0a 23 20 0a 23 20 5b 6a  bgeneral.# .# [j
2050: 6f 62 74 6f 6f 6c 73 5d 0a 23 20 6c 61 75 6e 63  obtools].# launc
2060: 68 65 72 20 62 73 75 62 0a 23 20 23 20 69 66 20  her bsub.# # if 
2070: 64 65 66 69 6e 65 64 20 61 6e 64 20 6e 6f 74 20  defined and not 
2080: 22 6e 6f 22 20 66 6c 65 78 69 2d 6c 61 75 6e 63  "no" flexi-launc
2090: 68 65 72 20 77 69 6c 6c 20 62 79 70 61 73 73 20  her will bypass 
20a0: 6c 61 75 6e 63 68 65 72 20 75 6e 6c 65 73 73 20  launcher unless 
20b0: 74 68 65 72 65 20 69 73 20 6e 6f 0a 23 20 23 20  there is no.# # 
20c0: 6d 61 74 63 68 2e 0a 23 20 66 6c 65 78 69 2d 6c  match..# flexi-l
20d0: 61 75 6e 63 68 65 72 20 79 65 73 20 20 0a 0a 5b  auncher yes  ..[
20e0: 6a 6f 62 74 6f 6f 6c 73 5d 0a 66 6c 65 78 69 2d  jobtools].flexi-
20f0: 6c 61 75 6e 63 68 65 72 20 79 65 73 0a 0a 5b 68  launcher yes..[h
2100: 6f 73 74 2d 74 79 70 65 73 5d 0a 67 65 6e 65 72  ost-types].gener
2110: 61 6c 20 6e 62 66 61 6b 65 0a 61 6c 74 20 20 20  al nbfake.alt   
2120: 20 20 23 7b 67 65 74 20 6a 6f 62 74 6f 6f 6c 73    #{get jobtools
2130: 20 6c 61 75 6e 63 68 65 72 7d 0a 6c 6f 63 61 6c   launcher}.local
2140: 20 20 20 6e 62 66 61 6b 65 0a 72 65 6d 6f 74 65     nbfake.remote
2150: 20 20 23 7b 67 65 74 20 6a 6f 62 74 6f 6f 6c 73    #{get jobtools
2160: 20 6c 61 75 6e 63 68 65 72 7d 0a 0a 5b 6c 61 75   launcher}..[lau
2170: 6e 63 68 65 72 73 5d 0a 72 75 6e 66 69 72 73 74  nchers].runfirst
2180: 2f 73 75 6d 25 20 72 65 6d 6f 74 65 0a 25 20 20  /sum% remote.%  
2190: 20 20 20 20 20 20 20 20 20 20 20 67 65 6e 65 72             gener
21a0: 61 6c 0a                                         al.