Megatest

Hex Artifact Content
Login

Artifact b0dbb892fd5fcb4b0fc175dfd997c535a79cfbac:


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 23 20 72 65 66 61 72 65 61 73 20 63 61 6e 20  .# refareas can 
0040: 62 65 20 73 65 61 72 63 68 65 64 20 74 6f 20 66  be searched to f
0050: 69 6e 64 20 70 72 65 76 69 6f 75 73 20 72 75 6e  ind previous run
0060: 73 0a 23 20 74 68 65 20 70 61 74 68 20 70 6f 69  s.# the path poi
0070: 6e 74 73 20 74 6f 20 77 68 65 72 65 20 6d 65 67  nts to where meg
0080: 61 74 65 73 74 2e 64 62 20 65 78 69 73 74 73 0a  atest.db exists.
0090: 5b 72 65 66 61 72 65 61 73 5d 0a 61 72 65 61 31  [refareas].area1
00a0: 20 2f 74 6d 70 2f 6f 6c 64 61 72 65 61 2f 6d 65   /tmp/oldarea/me
00b0: 67 61 74 65 73 74 0a 0a 5b 69 6e 63 6c 75 64 65  gatest..[include
00c0: 20 2e 2f 63 6f 6e 66 69 67 73 2f 6d 74 5f 69 6e   ./configs/mt_in
00d0: 63 6c 75 64 65 5f 31 2e 63 6f 6e 66 69 67 5d 0a  clude_1.config].
00e0: 0a 5b 64 61 73 68 62 6f 61 72 64 5d 0a 70 72 65  .[dashboard].pre
00f0: 2d 63 6f 6d 6d 61 6e 64 20 20 78 74 65 72 6d 20  -command  xterm 
0100: 2d 67 65 6f 6d 65 74 72 79 20 31 38 30 78 32 30  -geometry 180x20
0110: 20 2d 65 20 22 0a 70 6f 73 74 2d 63 6f 6d 6d 61   -e ".post-comma
0120: 6e 64 20 7c 26 20 74 65 65 20 72 65 73 75 6c 74  nd |& tee result
0130: 73 2e 6c 6f 67 20 3b 65 63 68 6f 20 50 72 65 73  s.log ;echo Pres
0140: 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e  s any key to con
0150: 74 69 6e 75 65 3b 62 61 73 68 20 2d 63 20 27 72  tinue;bash -c 'r
0160: 65 61 64 20 2d 6e 20 31 20 2d 73 27 22 20 26 0a  ead -n 1 -s'" &.
0170: 74 65 73 74 73 6f 72 74 20 2d 65 76 65 6e 74 5f  testsort -event_
0180: 74 69 6d 65 0a 0a 5b 6d 69 73 63 5d 0a 68 6f 6d  time..[misc].hom
0190: 65 20 23 7b 73 68 65 6c 6c 20 72 65 61 64 6c 69  e #{shell readli
01a0: 6e 6b 20 2d 66 20 24 4d 54 5f 52 55 4e 5f 41 52  nk -f $MT_RUN_AR
01b0: 45 41 5f 48 4f 4d 45 7d 0a 70 61 72 65 6e 74 20  EA_HOME}.parent 
01c0: 23 7b 73 68 65 6c 6c 20 72 65 61 64 6c 69 6e 6b  #{shell readlink
01d0: 20 2d 66 20 24 4d 54 5f 52 55 4e 5f 41 52 45 41   -f $MT_RUN_AREA
01e0: 5f 48 4f 4d 45 2f 2e 2e 7d 0a 0a 5b 74 65 73 74  _HOME/..}..[test
01f0: 73 2d 70 61 74 68 73 5d 0a 31 20 23 7b 67 65 74  s-paths].1 #{get
0200: 20 6d 69 73 63 20 70 61 72 65 6e 74 7d 2f 73 69   misc parent}/si
0210: 6d 70 6c 65 72 75 6e 2f 74 65 73 74 73 0a 0a 5b  mplerun/tests..[
0220: 73 65 74 75 70 5d 0a 0a 23 20 74 75 72 6e 20 6f  setup]..# turn o
0230: 66 66 20 66 61 73 74 73 74 61 72 74 2c 20 70 75  ff faststart, pu
0240: 74 20 6d 6f 6e 69 74 6f 72 2e 64 62 20 69 6e 20  t monitor.db in 
0250: 4d 54 5f 52 55 4e 5f 41 52 45 41 5f 48 4f 4d 45  MT_RUN_AREA_HOME
0260: 2f 64 62 0a 23 20 61 6e 64 20 73 65 74 20 74 68  /db.# and set th
0270: 65 20 64 62 64 69 72 20 74 6f 20 2f 76 61 72 2f  e dbdir to /var/
0280: 74 6d 70 2f 24 55 53 45 52 2f 6d 74 5f 64 62 20  tmp/$USER/mt_db 
0290: 74 6f 20 65 6e 61 62 6c 65 20 6b 65 65 70 69 6e  to enable keepin
02a0: 67 0a 23 20 74 68 65 20 72 61 77 20 64 62 20 69  g.# the raw db i
02b0: 6e 20 2f 76 61 72 2f 74 6d 70 2f 24 55 53 45 52  n /var/tmp/$USER
02c0: 0a 23 0a 66 61 73 74 73 74 61 72 74 20 20 6e 6f  .#.faststart  no
02d0: 0a 6d 6f 6e 69 74 6f 72 64 69 72 20 23 7b 67 65  .monitordir #{ge
02e0: 74 65 6e 76 20 4d 54 5f 52 55 4e 5f 41 52 45 41  tenv MT_RUN_AREA
02f0: 5f 48 4f 4d 45 7d 2f 64 62 0a 64 62 64 69 72 20  _HOME}/db.dbdir 
0300: 20 20 20 20 20 23 7b 67 65 74 65 6e 76 20 4d 54       #{getenv MT
0310: 5f 52 55 4e 5f 41 52 45 41 5f 48 4f 4d 45 7d 2f  _RUN_AREA_HOME}/
0320: 64 62 0a 0a 23 20 73 79 6e 63 20 6d 6f 72 65 20  db..# sync more 
0330: 61 67 67 72 65 73 73 69 76 65 6c 79 20 74 6f 20  aggressively to 
0340: 6d 65 67 61 74 65 73 74 2d 64 62 0a 6d 65 67 61  megatest-db.mega
0350: 74 65 73 74 2d 64 62 20 79 65 73 0a 0a 23 20 53  test-db yes..# S
0360: 65 74 20 6c 61 75 6e 63 68 77 61 69 74 20 74 6f  et launchwait to
0370: 20 6e 6f 20 74 6f 20 75 73 65 20 74 68 65 20 6d   no to use the m
0380: 6f 72 65 20 61 67 72 65 73 73 69 76 65 20 63 6f  ore agressive co
0390: 64 65 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74  de that does not
03a0: 20 77 61 69 74 20 66 6f 72 20 74 68 65 20 6c 61   wait for the la
03b0: 75 6e 63 68 20 74 6f 20 63 6f 6d 70 6c 65 74 65  unch to complete
03c0: 20 62 65 66 6f 72 65 20 70 72 6f 63 65 65 64 69   before proceedi
03d0: 6e 67 0a 23 20 74 68 69 73 20 6d 61 79 20 73 61  ng.# this may sa
03e0: 76 65 20 61 20 66 65 77 20 6d 69 6c 6c 69 73 65  ve a few millise
03f0: 63 6f 6e 64 73 20 6f 6e 20 6c 61 75 6e 63 68 69  conds on launchi
0400: 6e 67 20 74 65 73 74 73 0a 23 20 6c 61 75 6e 63  ng tests.# launc
0410: 68 77 61 69 74 20 6e 6f 0a 77 61 69 76 65 72 63  hwait no.waiverc
0420: 6f 6d 6d 65 6e 74 70 61 74 74 20 5e 57 57 5c 64  ommentpatt ^WW\d
0430: 2b 20 5b 61 2d 7a 5d 2e 2a 0a 69 6e 63 6f 6d 70  + [a-z].*.incomp
0440: 6c 65 74 65 2d 74 69 6d 65 6f 75 74 20 31 0a 0a  lete-timeout 1..
0450: 23 20 77 61 69 74 20 66 6f 72 20 72 75 6e 73 20  # wait for runs 
0460: 74 6f 20 63 6f 6d 70 6c 65 74 65 6c 79 20 63 6f  to completely co
0470: 6d 70 6c 65 74 65 2e 20 79 65 73 2c 20 61 6e 79  mplete. yes, any
0480: 74 68 69 6e 67 20 65 6c 73 65 20 69 73 20 6e 6f  thing else is no
0490: 0a 72 75 6e 2d 77 61 69 74 20 79 65 73 0a 0a 23  .run-wait yes..#
04a0: 20 49 66 20 73 65 74 20 74 6f 20 22 64 65 66 61   If set to "defa
04b0: 75 6c 74 22 20 74 68 65 20 6f 6c 64 20 63 6f 64  ult" the old cod
04c0: 65 20 69 73 20 75 73 65 64 2e 20 4f 74 68 65 72  e is used. Other
04d0: 77 69 73 65 20 64 65 66 61 75 6c 74 73 20 74 6f  wise defaults to
04e0: 20 32 30 30 20 6f 72 20 75 73 65 73 0a 23 20 6e   200 or uses.# n
04f0: 75 6d 65 72 69 63 20 76 61 6c 75 65 20 67 69 76  umeric value giv
0500: 65 6e 2e 0a 23 0a 72 75 6e 71 75 65 75 65 20 32  en..#.runqueue 2
0510: 30 0a 0a 23 20 44 65 66 61 75 6c 74 20 72 75 6e  0..# Default run
0520: 74 69 6d 65 6c 69 6d 20 31 64 20 31 68 20 31 6d  timelim 1d 1h 1m
0530: 20 31 30 73 0a 23 0a 72 75 6e 74 69 6d 65 6c 69   10s.#.runtimeli
0540: 6d 20 32 30 6d 0a 0a 23 20 44 65 61 64 74 69 6d  m 20m..# Deadtim
0550: 65 20 2d 20 77 68 65 6e 20 74 6f 20 63 6f 6e 73  e - when to cons
0560: 69 64 65 72 20 74 65 73 74 73 20 64 65 61 64 20  ider tests dead 
0570: 28 69 2e 65 2e 20 68 61 76 65 6e 27 74 20 68 65  (i.e. haven't he
0580: 61 72 64 20 66 72 6f 6d 20 74 68 65 6d 20 69 6e  ard from them in
0590: 20 74 6f 6f 20 6c 6f 6e 67 29 0a 23 20 4e 75 6d   too long).# Num
05a0: 62 65 72 20 69 6e 20 73 65 63 6f 6e 64 73 2c 20  ber in seconds, 
05b0: 73 65 74 20 74 6f 20 32 30 20 73 65 63 6f 6e 64  set to 20 second
05c0: 73 20 68 65 72 65 20 74 6f 20 74 72 69 67 67 65  s here to trigge
05d0: 72 20 61 20 6c 69 74 74 6c 65 20 74 72 6f 75 62  r a little troub
05e0: 6c 65 2e 20 44 65 66 61 75 6c 74 20 69 73 0a 23  le. Default is.#
05f0: 20 31 38 30 30 0a 23 0a 64 65 61 64 74 69 6d 65   1800.#.deadtime
0600: 20 36 30 30 0a 0a 23 20 49 74 20 69 73 20 70 6f   600..# It is po
0610: 73 73 69 62 6c 65 20 28 62 75 74 20 6e 6f 74 20  ssible (but not 
0620: 72 65 63 6f 6d 6d 65 6e 64 65 64 29 20 74 6f 20  recommended) to 
0630: 6f 76 65 72 72 69 64 65 20 74 68 65 20 72 73 79  override the rsy
0640: 6e 63 20 63 6f 6d 6d 61 6e 64 20 75 73 65 64 0a  nc command used.
0650: 23 20 74 6f 20 70 6f 70 75 6c 61 74 65 20 74 68  # to populate th
0660: 65 20 74 65 73 74 20 64 69 72 65 63 74 6f 72 69  e test directori
0670: 65 73 2e 20 46 6f 72 20 74 65 73 74 20 64 65 76  es. For test dev
0680: 65 6c 6f 70 6d 65 6e 74 20 74 68 65 20 66 6f 6c  elopment the fol
0690: 6c 6f 77 69 6e 67 20 0a 23 20 65 78 61 6d 70 6c  lowing .# exampl
06a0: 65 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 0a  e can be useful.
06b0: 23 0a 74 65 73 74 63 6f 70 79 63 6d 64 20 63 70  #.testcopycmd cp
06c0: 20 2d 2d 72 65 6d 6f 76 65 2d 64 65 73 74 69 6e   --remove-destin
06d0: 61 74 69 6f 6e 20 2d 72 73 76 20 54 45 53 54 5f  ation -rsv TEST_
06e0: 53 52 43 5f 50 41 54 48 2f 2e 20 54 45 53 54 5f  SRC_PATH/. TEST_
06f0: 54 41 52 47 5f 50 41 54 48 2f 2e 20 3e 3e 20 54  TARG_PATH/. >> T
0700: 45 53 54 5f 54 41 52 47 5f 50 41 54 48 2f 6d 74  EST_TARG_PATH/mt
0710: 5f 6c 61 75 6e 63 68 2e 6c 6f 67 20 32 3e 3e 20  _launch.log 2>> 
0720: 54 45 53 54 5f 54 41 52 47 5f 50 41 54 48 2f 6d  TEST_TARG_PATH/m
0730: 74 5f 6c 61 75 6e 63 68 2e 6c 6f 67 0a 0a 23 20  t_launch.log..# 
0740: 6f 72 20 66 6f 72 20 68 61 72 64 20 6c 69 6e 6b  or for hard link
0750: 73 0a 0a 23 20 74 65 73 74 63 6f 70 79 63 6d 64  s..# testcopycmd
0760: 20 63 70 20 2d 2d 72 65 6d 6f 76 65 2d 64 65 73   cp --remove-des
0770: 74 69 6e 61 74 69 6f 6e 20 2d 72 6c 76 20 54 45  tination -rlv TE
0780: 53 54 5f 53 52 43 5f 50 41 54 48 2f 2e 20 54 45  ST_SRC_PATH/. TE
0790: 53 54 5f 54 41 52 47 5f 50 41 54 48 2f 2e 0a 0a  ST_TARG_PATH/...
07a0: 23 20 46 55 4c 4c 20 6f 72 20 32 2c 20 4e 4f 52  # FULL or 2, NOR
07b0: 4d 41 4c 20 6f 72 20 31 2c 20 4f 46 46 20 6f 72  MAL or 1, OFF or
07c0: 20 30 0a 73 79 6e 63 68 72 6f 6e 6f 75 73 20 30   0.synchronous 0
07d0: 0a 23 20 54 68 72 6f 74 74 6c 65 20 72 6f 75 67  .# Throttle roug
07e0: 68 6c 79 20 73 63 61 6c 65 73 20 74 68 65 20 64  hly scales the d
07f0: 62 20 61 63 63 65 73 73 20 6d 69 6c 6c 69 73 65  b access millise
0800: 63 6f 6e 64 73 20 74 6f 20 73 65 63 6f 6e 64 73  conds to seconds
0810: 20 64 65 6c 61 79 0a 74 68 72 6f 74 74 6c 65 20   delay.throttle 
0820: 30 2e 32 0a 23 20 4d 61 78 20 72 65 74 72 69 65  0.2.# Max retrie
0830: 73 20 61 6c 6c 6f 77 73 20 6d 65 67 61 74 65 73  s allows megates
0840: 74 20 74 6f 20 72 65 2d 63 68 65 63 6b 20 74 68  t to re-check th
0850: 61 74 20 61 20 74 65 73 74 73 20 73 74 61 74 75  at a tests statu
0860: 73 20 68 61 73 20 63 68 61 6e 67 65 64 0a 23 20  s has changed.# 
0870: 61 73 20 74 65 73 74 73 20 63 61 6e 20 68 61 76  as tests can hav
0880: 65 20 74 72 61 6e 73 69 65 6e 74 20 46 41 49 4c  e transient FAIL
0890: 20 73 74 61 74 75 73 20 6f 63 63 61 73 69 6f 6e   status occasion
08a0: 61 6c 6c 79 0a 6d 61 78 72 65 74 72 69 65 73 20  ally.maxretries 
08b0: 32 30 0a 0a 23 20 53 65 74 75 70 20 63 6f 6e 74  20..# Setup cont
08c0: 69 6e 75 65 64 2e 0a 5b 73 65 74 75 70 5d 0a 0a  inued..[setup]..
08d0: 23 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 6c  # override the l
08e0: 6f 67 76 69 65 77 20 63 6f 6d 6d 61 6e 64 0a 23  ogview command.#
08f0: 0a 6c 6f 67 76 69 65 77 65 72 20 28 25 4d 54 43  .logviewer (%MTC
0900: 4d 44 25 29 20 32 3e 20 2f 64 65 76 2f 6e 75 6c  MD%) 2> /dev/nul
0910: 6c 20 3e 20 2f 64 65 76 2f 6e 75 6c 6c 0a 0a 23  l > /dev/null..#
0920: 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 68 74   override the ht
0930: 6d 6c 20 76 69 65 77 65 72 20 6c 61 75 6e 63 68  ml viewer launch
0940: 20 63 6f 6d 6d 61 6e 64 0a 23 0a 23 20 68 74 6d   command.#.# htm
0950: 6c 76 69 65 77 65 72 63 6d 64 20 66 69 72 65 66  lviewercmd firef
0960: 6f 78 20 2d 6e 65 77 2d 77 69 6e 64 6f 77 20 0a  ox -new-window .
0970: 68 74 6d 6c 76 69 65 77 65 72 63 6d 64 20 61 72  htmlviewercmd ar
0980: 6f 72 61 0a 0a 23 20 2d 72 75 6e 74 65 73 74 73  ora..# -runtests
0990: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64   automatically d
09a0: 65 6c 65 74 65 73 20 74 68 65 20 72 65 63 6f 72  eletes the recor
09b0: 64 73 20 66 6f 72 20 74 65 73 74 73 20 77 69 74  ds for tests wit
09c0: 68 20 74 68 65 20 6c 69 73 74 65 64 20 73 74 61  h the listed sta
09d0: 74 65 73 20 6f 6e 20 73 74 61 72 74 69 6e 67 20  tes on starting 
09e0: 75 70 20 61 20 72 75 6e 20 61 6c 6c 6f 77 69 6e  up a run allowin
09f0: 67 20 74 68 65 6d 20 74 6f 20 72 65 2d 72 75 6e  g them to re-run
0a00: 0a 23 20 20 20 20 20 28 6e 62 2f 2f 20 74 68 69  .#     (nb// thi
0a10: 73 20 69 73 20 69 6e 20 61 64 64 69 74 69 6f 6e  s is in addition
0a20: 20 74 6f 20 4e 4f 54 5f 53 54 41 52 54 45 44 20   to NOT_STARTED 
0a30: 77 68 69 63 68 20 69 73 20 61 75 74 6f 6d 61 74  which is automat
0a40: 69 63 61 6c 6c 79 20 72 65 2d 72 75 6e 29 0a 23  ically re-run).#
0a50: 0a 61 6c 6c 6f 77 2d 61 75 74 6f 2d 72 65 72 75  .allow-auto-reru
0a60: 6e 20 49 4e 43 4f 4d 50 4c 45 54 45 20 5a 45 52  n INCOMPLETE ZER
0a70: 4f 5f 49 54 45 4d 53 0a 23 20 63 6f 75 6c 64 20  O_ITEMS.# could 
0a80: 61 64 64 3a 20 53 54 55 43 4b 20 53 54 55 43 4b  add: STUCK STUCK
0a90: 2f 44 45 41 44 20 55 4e 4b 4e 4f 57 4e 20 4b 49  /DEAD UNKNOWN KI
0aa0: 4c 4c 45 44 20 4b 49 4c 4c 52 45 51 20 50 52 45  LLED KILLREQ PRE
0ab0: 51 5f 44 49 53 43 41 52 44 0a 0a 5b 76 61 6c 69  Q_DISCARD..[vali
0ac0: 64 76 61 6c 75 65 73 5d 0a 73 74 61 74 65 20 73  dvalues].state s
0ad0: 74 61 72 74 20 65 6e 64 20 30 20 31 20 2d 20 32  tart end 0 1 - 2
0ae0: 0a 73 74 61 74 75 73 20 70 61 73 73 20 66 61 69  .status pass fai
0af0: 6c 20 6e 2f 61 20 30 20 31 20 72 75 6e 6e 69 6e  l n/a 0 1 runnin
0b00: 67 20 2d 20 32 0a 0a 23 20 54 68 65 73 65 20 61  g - 2..# These a
0b10: 72 65 20 73 65 74 20 62 65 66 6f 72 65 20 61 6c  re set before al
0b20: 6c 20 74 65 73 74 73 2c 20 6f 76 65 72 72 69 64  l tests, overrid
0b30: 65 20 74 68 65 6d 20 0a 23 20 69 6e 20 74 68 65  e them .# in the
0b40: 20 74 65 73 74 63 6f 6e 66 69 67 20 5b 70 72 65   testconfig [pre
0b50: 2d 6c 61 75 6e 63 68 2d 65 6e 76 2d 6f 76 65 72  -launch-env-over
0b60: 72 69 64 65 73 5d 20 73 65 63 74 69 6f 6e 0a 5b  rides] section.[
0b70: 65 6e 76 2d 6f 76 65 72 72 69 64 65 5d 0a 0a 0a  env-override]...
0b80: 41 4c 4c 5f 54 4f 50 4c 45 56 45 4c 5f 54 45 53  ALL_TOPLEVEL_TES
0b90: 54 53 20 20 20 20 20 20 20 20 20 20 65 78 69 74  TS          exit
0ba0: 5f 30 20 65 78 69 74 5f 31 20 20 65 7a 5f 65 78  _0 exit_1  ez_ex
0bb0: 69 74 32 5f 66 61 69 6c 20 20 65 7a 5f 66 61 69  it2_fail  ez_fai
0bc0: 6c 20 20 20 20 20 20 20 20 65 7a 5f 70 61 73 73  l        ez_pass
0bd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 7a                ez
0be0: 6c 6f 67 5f 66 61 69 6c 20 5c 0a 20 20 20 20 20  log_fail \.     
0bf0: 20 20 65 7a 6c 6f 67 5f 66 61 69 6c 5f 74 68 65    ezlog_fail_the
0c00: 6e 5f 70 61 73 73 20 65 7a 6c 6f 67 5f 70 61 73  n_pass ezlog_pas
0c10: 73 20 20 20 20 20 65 7a 6c 6f 67 5f 77 61 72 6e  s     ezlog_warn
0c20: 20 20 20 20 20 6c 69 6e 65 69 74 65 6d 5f 66 61       lineitem_fa
0c30: 69 6c 20 20 6c 69 6e 65 69 74 65 6d 5f 70 61 73  il  lineitem_pas
0c40: 73 20 20 20 20 20 20 20 20 6c 6f 67 70 72 6f 5f  s        logpro_
0c50: 72 65 71 75 69 72 65 64 5f 66 61 69 6c 20 5c 0a  required_fail \.
0c60: 20 20 20 20 20 20 20 6d 61 6e 75 61 6c 5f 65 78         manual_ex
0c70: 61 6d 70 6c 65 20 20 20 20 20 20 20 6e 65 76 65  ample       neve
0c80: 72 72 75 6e 20 20 20 20 20 20 20 70 72 69 6f 72  rrun       prior
0c90: 69 74 79 5f 31 20 20 20 20 20 70 72 69 6f 72 69  ity_1     priori
0ca0: 74 79 5f 31 30 20 20 20 20 70 72 69 6f 72 69 74  ty_10    priorit
0cb0: 79 5f 31 30 5f 77 61 69 74 6f 6e 5f 31 20 5c 0a  y_10_waiton_1 \.
0cc0: 20 20 20 20 20 20 20 70 72 69 6f 72 69 74 79 5f         priority_
0cd0: 33 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6f  3           prio
0ce0: 72 69 74 79 5f 34 20 20 20 20 20 70 72 69 6f 72  rity_4     prior
0cf0: 69 74 79 5f 35 20 20 20 20 20 70 72 69 6f 72 69  ity_5     priori
0d00: 74 79 5f 36 20 20 20 20 20 70 72 69 6f 72 69 74  ty_6     priorit
0d10: 79 5f 37 20 20 20 20 20 20 20 20 20 20 20 70 72  y_7           pr
0d20: 69 6f 72 69 74 79 5f 38 20 5c 0a 20 20 20 20 20  iority_8 \.     
0d30: 20 20 70 72 69 6f 72 69 74 79 5f 39 20 20 20 20    priority_9    
0d40: 20 20 20 20 20 20 20 72 75 6e 66 69 72 73 74 20         runfirst 
0d50: 20 20 20 20 20 20 73 69 6e 67 6c 65 74 65 73 74        singletest
0d60: 20 20 20 20 20 73 69 6e 67 6c 65 74 65 73 74 32       singletest2
0d70: 20 20 20 20 73 71 6c 69 74 65 73 70 65 65 64 20      sqlitespeed 
0d80: 20 20 20 20 20 20 20 20 20 74 65 73 74 5f 6d 74           test_mt
0d90: 5f 76 61 72 73 20 5c 0a 20 20 20 20 20 20 20 65  _vars \.       e
0da0: 7a 5f 66 61 69 6c 5f 71 75 69 63 6b 20 20 20 20  z_fail_quick    
0db0: 20 20 20 20 74 65 73 74 31 20 20 20 20 20 20 20      test1       
0dc0: 20 20 20 74 65 73 74 32 0a 0a 23 20 54 68 69 73     test2..# This
0dd0: 20 76 61 72 69 61 62 6c 65 20 69 73 20 68 6f 6e   variable is hon
0de0: 6f 72 65 64 20 62 79 20 74 68 65 20 6c 6f 61 64  ored by the load
0df0: 72 75 6e 6e 65 72 20 73 63 72 69 70 74 2e 20 54  runner script. T
0e00: 68 65 20 76 61 6c 75 65 20 69 73 20 69 6e 20 70  he value is in p
0e10: 65 72 63 65 6e 74 0a 4d 41 58 5f 41 4c 4c 4f 57  ercent.MAX_ALLOW
0e20: 45 44 5f 4c 4f 41 44 20 32 30 30 0a 0a 23 20 4d  ED_LOAD 200..# M
0e30: 54 5f 58 54 45 52 4d 5f 43 4d 44 20 6f 76 65 72  T_XTERM_CMD over
0e40: 72 69 64 65 73 20 74 68 65 20 74 65 72 6d 69 6e  rides the termin
0e50: 61 6c 20 63 6f 6d 6d 61 6e 64 0a 23 20 4d 54 5f  al command.# MT_
0e60: 58 54 45 52 4d 5f 43 4d 44 20 78 74 65 72 6d 20  XTERM_CMD xterm 
0e70: 2d 62 67 20 6c 69 67 68 74 67 72 65 65 6e 20 2d  -bg lightgreen -
0e80: 66 67 20 62 6c 61 63 6b 0a 0a 53 50 45 43 49 41  fg black..SPECIA
0e90: 4c 5f 45 4e 56 5f 56 41 52 53 20 6f 76 65 72 69  L_ENV_VARS overi
0ea0: 64 65 20 74 68 65 6d 20 68 65 72 65 20 2d 20 73  de them here - s
0eb0: 68 6f 75 6c 64 20 62 65 20 73 65 65 6e 20 61 74  hould be seen at
0ec0: 20 6c 61 75 6e 63 68 20 61 6e 64 20 69 6e 20 74   launch and in t
0ed0: 68 65 20 72 75 6e 73 0a 54 45 53 54 56 41 52 20  he runs.TESTVAR 
0ee0: 5b 73 79 73 74 65 6d 20 72 65 61 64 6c 69 6e 6b  [system readlink
0ef0: 20 2d 66 20 2e 5d 0a 44 45 41 44 56 41 52 20 5b   -f .].DEADVAR [
0f00: 73 79 73 74 65 6d 20 6c 73 5d 0a 56 41 52 57 49  system ls].VARWI
0f10: 54 48 44 4f 4c 4c 41 52 20 24 48 4f 4d 45 2f 2e  THDOLLAR $HOME/.
0f20: 7a 73 68 72 63 0a 57 41 43 4b 59 56 41 52 20 20  zshrc.WACKYVAR  
0f30: 23 7b 73 79 73 74 65 6d 20 6c 73 20 3e 20 2f 64  #{system ls > /d
0f40: 65 76 2f 6e 75 6c 6c 7d 0a 57 41 43 4b 59 56 41  ev/null}.WACKYVA
0f50: 52 32 20 23 7b 67 65 74 20 76 61 6c 69 64 76 61  R2 #{get validva
0f60: 6c 75 65 73 20 73 74 61 74 65 7d 0a 57 41 43 4b  lues state}.WACK
0f70: 59 56 41 52 33 20 23 7b 67 65 74 65 6e 76 20 55  YVAR3 #{getenv U
0f80: 53 45 52 7d 0a 57 41 43 4b 59 56 41 52 34 20 23  SER}.WACKYVAR4 #
0f90: 7b 73 63 68 65 6d 65 20 28 2b 20 35 20 36 20 37  {scheme (+ 5 6 7
0fa0: 29 7d 0a 57 41 43 4b 59 56 41 52 35 20 23 7b 67  )}.WACKYVAR5 #{g
0fb0: 65 74 65 6e 76 20 73 79 73 6e 61 6d 65 7d 2f 23  etenv sysname}/#
0fc0: 7b 67 65 74 65 6e 76 20 66 73 6e 61 6d 65 7d 2f  {getenv fsname}/
0fd0: 23 7b 67 65 74 65 6e 76 20 64 61 74 61 70 61 74  #{getenv datapat
0fe0: 68 7d 0a 57 41 43 4b 59 56 41 52 36 20 23 7b 73  h}.WACKYVAR6 #{s
0ff0: 63 68 65 6d 65 20 28 61 72 67 73 3a 67 65 74 2d  cheme (args:get-
1000: 61 72 67 20 22 2d 74 61 72 67 65 74 22 29 7d 0a  arg "-target")}.
1010: 50 52 45 44 49 43 54 41 42 4c 45 20 74 68 65 5f  PREDICTABLE the_
1020: 61 6e 73 0a 4d 52 41 48 20 4d 54 5f 52 55 4e 5f  ans.MRAH MT_RUN_
1030: 41 52 45 41 5f 48 4f 4d 45 3d 23 7b 67 65 74 65  AREA_HOME=#{gete
1040: 6e 76 20 4d 54 5f 52 55 4e 5f 41 52 45 41 5f 48  nv MT_RUN_AREA_H
1050: 4f 4d 45 7d 0a 23 20 54 68 65 20 65 6d 70 74 79  OME}.# The empty
1060: 20 76 61 72 20 73 68 6f 75 6c 64 20 68 61 76 65   var should have
1070: 20 61 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69   a definition wi
1080: 74 68 20 6e 75 6c 6c 20 73 74 72 69 6e 67 0a 45  th null string.E
1090: 4d 50 54 59 5f 56 41 52 0a 0a 57 52 41 50 50 45  MPTY_VAR..WRAPPE
10a0: 44 56 41 52 20 54 68 69 73 20 76 61 72 20 73 68  DVAR This var sh
10b0: 6f 75 6c 64 20 68 61 76 65 20 74 68 65 20 77 6f  ould have the wo
10c0: 72 6b 20 62 6c 61 68 20 74 68 72 69 63 65 3a 20  rk blah thrice: 
10d0: 5c 0a 62 6c 61 68 20 5c 0a 62 6c 61 68 0a 0a 4d  \.blah \.blah..M
10e0: 59 52 55 4e 4e 41 4d 45 31 20 2f 74 68 69 73 2f  YRUNNAME1 /this/
10f0: 69 73 2f 23 7b 67 65 74 65 6e 76 20 4d 54 5f 52  is/#{getenv MT_R
1100: 55 4e 4e 41 4d 45 7d 2f 6d 79 2f 72 75 6e 6e 61  UNNAME}/my/runna
1110: 6d 65 0a 4d 59 52 55 4e 4e 41 4d 45 32 20 2f 74  me.MYRUNNAME2 /t
1120: 68 69 73 2f 69 73 2f 5b 73 79 73 74 65 6d 20 65  his/is/[system e
1130: 63 68 6f 20 24 4d 54 5f 52 55 4e 4e 41 4d 45 5d  cho $MT_RUNNAME]
1140: 2f 6d 79 2f 72 75 6e 6e 61 6d 65 0a 0a 0a 23 20  /my/runname...# 
1150: 58 54 45 52 4d 20 20 20 5b 73 79 73 74 65 6d 20  XTERM   [system 
1160: 78 74 65 72 6d 5d 0a 23 20 52 55 4e 44 45 41 44  xterm].# RUNDEAD
1170: 20 5b 73 79 73 74 65 6d 20 65 78 69 74 20 35 36   [system exit 56
1180: 5d 0a 0a 5b 73 65 72 76 65 72 5d 0a 0a 23 20 66  ]..[server]..# f
1190: 6f 72 63 65 20 75 73 65 20 6f 66 20 73 65 72 76  orce use of serv
11a0: 65 72 20 61 6c 77 61 79 73 0a 72 65 71 75 69 72  er always.requir
11b0: 65 64 20 79 65 73 0a 0a 23 20 55 73 65 20 68 74  ed yes..# Use ht
11c0: 74 70 20 69 6e 73 74 65 61 64 20 6f 66 20 64 69  tp instead of di
11d0: 72 65 63 74 20 66 69 6c 65 73 79 73 74 65 6d 20  rect filesystem 
11e0: 61 63 63 65 73 73 0a 74 72 61 6e 73 70 6f 72 74  access.transport
11f0: 20 68 74 74 70 0a 23 20 74 72 61 6e 73 70 6f 72   http.# transpor
1200: 74 20 66 73 0a 23 20 74 72 61 6e 73 70 6f 72 74  t fs.# transport
1210: 20 6e 6d 73 67 0a 0a 73 79 6e 63 68 72 6f 6e 6f   nmsg..synchrono
1220: 75 73 20 30 0a 0a 23 20 49 66 20 74 68 65 20 73  us 0..# If the s
1230: 65 72 76 65 72 20 63 61 6e 27 74 20 62 65 20 73  erver can't be s
1240: 74 61 72 74 65 64 20 6f 6e 20 74 68 69 73 20 70  tarted on this p
1250: 6f 72 74 20 69 74 20 77 69 6c 6c 20 74 72 79 20  ort it will try 
1260: 74 68 65 20 6e 65 78 74 20 70 6f 72 74 20 75 6e  the next port un
1270: 74 69 6c 0a 23 20 69 74 20 73 75 63 63 65 65 64  til.# it succeed
1280: 73 0a 70 6f 72 74 20 39 30 38 30 0a 0a 23 20 54  s.port 9080..# T
1290: 68 69 73 20 73 65 72 76 65 72 20 77 69 6c 6c 20  his server will 
12a0: 6b 65 65 70 20 72 75 6e 6e 69 6e 67 20 74 68 69  keep running thi
12b0: 73 20 6e 75 6d 62 65 72 20 6f 66 20 68 6f 75 72  s number of hour
12c0: 73 20 61 66 74 65 72 20 6c 61 73 74 20 61 63 63  s after last acc
12d0: 65 73 73 2e 20 0a 23 20 54 68 72 65 65 20 6d 69  ess. .# Three mi
12e0: 6e 75 74 65 73 20 69 73 20 30 2e 30 35 20 68 6f  nutes is 0.05 ho
12f0: 75 72 73 0a 23 20 74 69 6d 65 6f 75 74 20 30 2e  urs.# timeout 0.
1300: 30 32 35 0a 74 69 6d 65 6f 75 74 20 30 2e 30 36  025.timeout 0.06
1310: 31 0a 0a 23 20 66 61 73 74 73 74 61 72 74 3b 20  1..# faststart; 
1320: 75 6e 6c 65 73 73 20 6e 6f 2c 20 73 74 61 72 74  unless no, start
1330: 20 73 65 72 76 65 72 20 62 75 74 20 70 72 6f 63   server but proc
1340: 65 65 64 20 77 69 74 68 20 77 72 69 74 65 73 20  eed with writes 
1350: 75 6e 74 69 6c 20 73 65 72 76 65 72 20 73 74 61  until server sta
1360: 72 74 65 64 0a 66 61 73 74 73 74 61 72 74 20 6e  rted.faststart n
1370: 6f 0a 23 20 66 61 73 74 73 74 61 72 74 20 79 65  o.# faststart ye
1380: 73 0a 0a 23 20 53 74 61 72 74 20 73 65 72 76 65  s..# Start serve
1390: 72 20 77 68 65 6e 20 61 76 65 72 61 67 65 20 71  r when average q
13a0: 75 65 72 79 20 74 61 6b 65 73 20 6c 6f 6e 67 65  uery takes longe
13b0: 72 20 74 68 61 6e 20 74 68 69 73 0a 23 20 73 65  r than this.# se
13c0: 72 76 65 72 2d 71 75 65 72 79 2d 74 68 72 65 73  rver-query-thres
13d0: 68 6f 6c 64 20 35 35 35 30 30 0a 73 65 72 76 65  hold 55500.serve
13e0: 72 2d 71 75 65 72 79 2d 74 68 72 65 73 68 6f 6c  r-query-threshol
13f0: 64 20 31 30 30 30 0a 74 69 6d 65 6f 75 74 20 30  d 1000.timeout 0
1400: 2e 30 31 0a 0a 23 20 64 61 65 6d 6f 6e 69 7a 65  .01..# daemonize
1410: 20 79 65 73 0a 23 20 68 6f 73 74 6e 61 6d 65 20   yes.# hostname 
1420: 23 7b 73 63 68 65 6d 65 20 28 67 65 74 2d 68 6f  #{scheme (get-ho
1430: 73 74 2d 6e 61 6d 65 29 7d 0a 0a 23 23 20 64 69  st-name)}..## di
1440: 73 6b 73 20 61 72 65 3a 0a 23 23 20 6e 61 6d 65  sks are:.## name
1450: 20 68 6f 73 74 3a 2f 70 61 74 68 2f 74 6f 2f 61   host:/path/to/a
1460: 72 65 61 0a 23 23 20 2d 6f 72 2d 0a 23 23 20 6e  rea.## -or-.## n
1470: 61 6d 65 20 2f 70 61 74 68 2f 74 6f 2f 61 72 65  ame /path/to/are
1480: 61 0a 5b 64 69 73 6b 73 5d 0a 64 69 73 6b 30 20  a.[disks].disk0 
1490: 2f 66 6f 6f 62 61 72 62 61 7a 7a 0a 64 69 73 6b  /foobarbazz.disk
14a0: 31 20 6e 6f 74 2d 61 2d 64 69 73 6b 0a 0a 5b 69  1 not-a-disk..[i
14b0: 6e 63 6c 75 64 65 20 2e 2f 63 6f 6e 66 69 67 73  nclude ./configs
14c0: 2f 6d 74 5f 69 6e 63 6c 75 64 65 5f 32 2e 63 6f  /mt_include_2.co
14d0: 6e 66 69 67 5d 0a 0a 5b 69 6e 63 6c 75 64 65 20  nfig]..[include 
14e0: 23 7b 67 65 74 65 6e 76 20 55 53 45 52 7d 5f 74  #{getenv USER}_t
14f0: 65 73 74 69 6e 67 2e 63 6f 6e 66 69 67 5d 0a 0a  esting.config]..
1500: 5b 6a 6f 62 67 72 6f 75 70 73 5d 0a 0a 23 20 4e  [jobgroups]..# N
1510: 4f 54 45 3a 20 6a 6f 62 20 67 72 6f 75 70 73 20  OTE: job groups 
1520: 77 69 6c 6c 20 66 61 6c 73 65 6c 79 20 63 6f 75  will falsely cou
1530: 6e 74 20 74 68 65 20 74 6f 70 6c 65 76 65 6c 20  nt the toplevel 
1540: 74 65 73 74 20 61 73 20 61 20 6a 6f 62 2e 20 49  test as a job. I
1550: 66 20 70 6f 73 73 69 62 6c 65 20 61 64 64 20 4e  f possible add N
1560: 0a 23 20 20 20 20 20 20 20 74 6f 20 79 6f 75 72  .#       to your
1570: 20 6a 6f 62 67 72 6f 75 70 73 20 77 68 65 72 65   jobgroups where
1580: 20 4e 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72   N is the number
1590: 20 6f 66 20 70 61 72 61 6c 6c 65 6c 20 72 75 6e   of parallel run
15a0: 73 20 79 6f 75 20 61 72 65 20 6c 69 6b 65 6c 79  s you are likely
15b0: 20 74 6f 20 73 65 65 0a 23 20 20 20 20 20 20 0a   to see.#      .
15c0: 73 71 6c 69 74 65 33 20 36 0a 62 6c 6f 63 6b 7a  sqlite3 6.blockz
15d0: 20 20 31 30 0a 23 20 20 20 20 20 20 20 74 6f 20    10.#       to 
15e0: 79 6f 75 72 20 6a 6f 62 67 72 6f 75 70 73 20 77  your jobgroups w
15f0: 68 65 72 65 20 4e 20 69 73 20 74 68 65 20 6e 75  here N is the nu
1600: 6d 62 65 72 20 6f 66 20 70 61 72 61 6c 6c 65 6c  mber of parallel
1610: 20 72 75 6e 73 20 79 6f 75 20 61 72 65 20 6c 69   runs you are li
1620: 6b 65 6c 79 20 74 6f 20 73 65 65 0a 23 20 20 20  kely to see.#   
1630: 20 20 20 20 0a 0a 23 3d 3d 3d 3d 3d 3d 3d 3d 3d      ..#=========
1640: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1650: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1660: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1670: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 23 20  =============.# 
1680: 4d 61 63 68 69 6e 65 20 66 6c 61 76 6f 72 73 0a  Machine flavors.
1690: 23 0a 23 20 20 20 54 68 65 73 65 20 73 70 65 63  #.#   These spec
16a0: 69 66 79 20 6c 69 73 74 73 20 6f 66 20 68 6f 73  ify lists of hos
16b0: 74 73 20 6f 72 20 73 63 72 69 70 74 73 20 74 6f  ts or scripts to
16c0: 20 75 73 65 20 6f 72 20 63 61 6c 6c 20 66 6f 72   use or call for
16d0: 20 76 61 72 69 6f 75 73 0a 23 20 20 20 66 6c 61   various.#   fla
16e0: 76 6f 72 73 20 6f 66 20 74 61 73 6b 2e 0a 23 0a  vors of task..#.
16f0: 23 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  #===============
1700: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
1710: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
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 0a 0a 5b 66 6c 61 76 6f 72  =======..[flavor
1740: 73 5d 0a 0a 70 6c 61 69 6e 20 68 6f 73 74 73 3a  s]..plain hosts:
1750: 20 78 65 6e 61 2c 20 70 68 6f 65 62 65 0a 73 74   xena, phoebe.st
1760: 72 6f 6e 67 20 63 6f 6d 6d 61 6e 64 3a 20 4e 42  rong command: NB
1770: 46 41 4b 45 5f 48 4f 53 54 3d 7a 65 75 73 20 6e  FAKE_HOST=zeus n
1780: 62 66 61 6b 65 0a 61 72 6d 20 68 6f 73 74 73 3a  bfake.arm hosts:
1790: 20 63 75 62 69 61 6e 0a 0a 5b 61 72 63 68 69 76   cubian..[archiv
17a0: 65 5d 0a 0a 23 20 75 73 65 20 6d 61 63 68 69 6e  e]..# use machin
17b0: 65 73 20 6f 66 20 74 68 65 73 65 20 66 6c 61 76  es of these flav
17c0: 6f 72 0a 75 73 65 66 6c 61 76 6f 72 73 20 70 6c  or.useflavors pl
17d0: 61 69 6e 0a 74 61 72 67 73 69 7a 65 20 32 47 0a  ain.targsize 2G.
17e0: 0a 23 20 6d 69 6e 69 6d 75 6d 20 73 70 61 63 65  .# minimum space
17f0: 20 72 65 71 75 69 72 65 64 20 6f 6e 20 61 6e 20   required on an 
1800: 61 72 63 68 69 76 65 20 64 69 73 6b 20 62 65 66  archive disk bef
1810: 6f 72 65 20 61 6c 6c 6f 77 69 6e 67 20 61 72 63  ore allowing arc
1820: 68 69 76 69 6e 67 20 74 6f 20 73 74 61 72 74 20  hiving to start 
1830: 28 4d 42 29 0a 6d 69 6e 73 70 61 63 65 20 31 30  (MB).minspace 10
1840: 0a 0a 5b 61 72 63 68 69 76 65 2d 64 69 73 6b 73  ..[archive-disks
1850: 5d 0a 0a 23 20 41 72 63 68 69 76 65 73 20 77 69  ]..# Archives wi
1860: 6c 6c 20 62 65 20 6f 72 67 61 6e 69 73 65 64 20  ll be organised 
1870: 75 6e 64 65 72 20 74 68 65 73 65 20 70 61 74 68  under these path
1880: 73 20 6c 69 6b 65 20 74 68 69 73 3a 0a 23 20 20  s like this:.#  
1890: 3c 74 65 73 74 73 75 69 74 65 3e 2f 3c 63 72 65  <testsuite>/<cre
18a0: 61 74 69 6f 6e 64 61 74 65 3e 0a 23 20 57 69 74  ationdate>.# Wit
18b0: 68 69 6e 20 74 68 65 20 61 72 63 68 69 76 65 20  hin the archive 
18c0: 74 68 65 20 64 61 74 61 20 69 73 20 73 74 72 75  the data is stru
18d0: 63 74 75 72 65 64 20 6c 69 6b 65 20 74 68 69 73  ctured like this
18e0: 3a 0a 23 20 20 3c 74 61 72 67 65 74 3e 2f 3c 72  :.#  <target>/<r
18f0: 75 6e 6e 61 6d 65 3e 2f 3c 74 65 73 74 3e 2f 0a  unname>/<test>/.
1900: 64 69 73 6b 30 20 2f 74 6d 70 2f 23 7b 67 65 74  disk0 /tmp/#{get
1910: 65 6e 76 20 55 53 45 52 7d 2f 61 64 69 73 6b 31  env USER}/adisk1
1920: 0a 0a 23 20 55 6e 63 6f 6d 6d 65 6e 74 20 74 68  ..# Uncomment th
1930: 65 73 65 20 74 6f 20 65 6d 75 6c 61 74 65 20 61  ese to emulate a
1940: 20 6a 6f 62 20 71 75 65 75 65 20 77 69 74 68 20   job queue with 
1950: 61 20 6c 6f 6e 67 20 74 69 6d 65 20 28 6c 6f 6f  a long time (loo
1960: 6b 20 69 6e 20 62 69 6e 2f 73 6c 65 65 70 72 75  k in bin/sleepru
1970: 6e 6e 65 72 20 66 6f 72 20 74 68 65 20 74 69 6d  nner for the tim
1980: 65 29 0a 5b 6a 6f 62 74 6f 6f 6c 73 5d 0a 23 20  e).[jobtools].# 
1990: 6c 61 75 6e 63 68 65 72 20 23 7b 20 73 63 68 65  launcher #{ sche
19a0: 6d 65 20 28 63 61 73 65 20 28 73 74 72 69 6e 67  me (case (string
19b0: 2d 3e 73 79 6d 62 6f 6c 20 28 63 6f 6e 63 20 28  ->symbol (conc (
19c0: 67 65 74 65 6e 76 20 22 64 61 74 61 70 61 74 68  getenv "datapath
19d0: 22 29 29 29 20 5c 0a 23 20 20 20 20 20 20 20 20  "))) \.#        
19e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f0: 20 28 28 6e 6f 6e 65 29 20 22 6e 62 66 61 6b 65   ((none) "nbfake
1a00: 22 29 20 5c 0a 23 20 20 20 20 20 20 20 20 20 20  ") \.#          
1a10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28                 (
1a20: 28 6f 70 65 6e 6c 61 76 61 29 20 22 62 73 75 62  (openlava) "bsub
1a30: 22 29 20 5c 0a 23 20 20 20 20 20 20 20 20 20 20  ") \.#          
1a40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28                 (
1a50: 65 6c 73 65 20 22 73 6c 65 65 70 72 75 6e 6e 65  else "sleeprunne
1a60: 72 22 29 29 7d 0a 0a 23 20 6c 61 75 6e 63 68 65  r"))}..# launche
1a70: 72 20 62 73 75 62 20 2d 71 20 70 72 69 6f 72 69  r bsub -q priori
1a80: 74 79 20 2d 6f 20 24 4d 54 5f 54 45 53 54 5f 52  ty -o $MT_TEST_R
1a90: 55 4e 5f 44 49 52 2f 6f 70 65 6e 6c 61 76 61 2e  UN_DIR/openlava.
1aa0: 6c 6f 67 20 0a 0a 23 20 6c 61 75 6e 63 68 65 72  log ..# launcher
1ab0: 20 23 7b 73 68 65 6c 6c 20 69 66 20 77 68 69 63   #{shell if whic
1ac0: 68 20 62 73 75 62 20 3e 20 2f 64 65 76 2f 6e 75  h bsub > /dev/nu
1ad0: 6c 6c 3b 74 68 65 6e 20 65 63 68 6f 20 62 73 75  ll;then echo bsu
1ae0: 62 20 2d 71 20 70 72 69 6f 72 69 74 79 20 2d 6f  b -q priority -o
1af0: 20 6f 70 65 6e 6c 61 76 61 2e 6c 6f 67 3b 65 6c   openlava.log;el
1b00: 73 65 20 65 63 68 6f 20 73 6c 65 65 70 72 75 6e  se echo sleeprun
1b10: 6e 65 72 3b 66 69 7d 0a 6c 61 75 6e 63 68 65 72  ner;fi}.launcher
1b20: 20 6e 62 66 61 6b 65 0a 0a 5b 63 6f 6e 66 69 67   nbfake..[config
1b30: 66 3a 73 65 74 74 69 6e 67 73 20 74 72 69 6d 2d  f:settings trim-
1b40: 74 72 61 69 6c 69 6e 67 2d 73 70 61 63 65 73 20  trailing-spaces 
1b50: 79 65 73 5d 0a 0a 5b 74 65 73 74 5d 0a 23 20 56  yes]..[test].# V
1b60: 41 4c 31 20 68 61 73 20 74 72 61 69 6c 69 6e 67  AL1 has trailing
1b70: 20 73 70 61 63 65 73 0a 56 41 4c 31 20 46 6f 6f   spaces.VAL1 Foo
1b80: 20 20 20 20 0a 56 41 4c 32 20 3d 3d 3e 23 7b 67      .VAL2 ==>#{g
1b90: 65 74 20 74 65 73 74 20 56 41 4c 31 7d 42 61 72  et test VAL1}Bar
1ba0: 3c 3d 3d 20 6e 6f 20 73 70 61 63 65 73 20 62 65  <== no spaces be
1bb0: 74 77 65 65 6e 20 46 6f 6f 20 61 6e 64 20 42 61  tween Foo and Ba
1bc0: 72 20 74 6f 20 70 61 73 73 0a 0a 6c 74 65 73 74  r to pass..ltest
1bd0: 20 23 7b 73 63 68 65 6d 65 20 28 63 61 73 65 20   #{scheme (case 
1be0: 28 73 74 72 69 6e 67 2d 3e 73 79 6d 62 6f 6c 20  (string->symbol 
1bf0: 28 63 6f 6e 63 20 28 67 65 74 65 6e 76 20 22 64  (conc (getenv "d
1c00: 61 74 61 70 61 74 68 22 29 29 29 20 5c 0a 20 20  atapath"))) \.  
1c10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c20: 20 20 20 20 20 20 28 28 6e 6f 6e 65 29 20 22 6e        ((none) "n
1c30: 62 66 61 6b 65 22 29 20 5c 0a 20 20 20 20 20 20  bfake") \.      
1c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c50: 20 20 28 28 6f 70 65 6e 6c 61 76 61 29 20 22 62    ((openlava) "b
1c60: 73 75 62 22 29 20 5c 0a 20 20 20 20 20 20 20 20  sub") \.        
1c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c80: 28 65 6c 73 65 20 22 73 6c 65 65 70 72 75 6e 6e  (else "sleeprunn
1c90: 65 72 22 29 29 7d 0a 0a                          er"))}..