[fields]
sysname TEXT
fsname TEXT
datapath TEXT
[graph]
g1 sqlite3:../../example.db alldat event_time var val stuff
# refareas can be searched to find previous runs
# the path points to where megatest.db exists
[refareas]
area1 /tmp/oldarea/megatest
[include ./configs/mt_include_1.config]
[dashboard]
# pre-command xterm -geometry 180x20 -e "
# post-command |& tee results.log ;echo Press any key to continue;bash -c 'read -n 1 -s'" &
testsort -event_time
[misc]
home #{shell readlink -f $MT_RUN_AREA_HOME}
parent #{shell readlink -f $MT_RUN_AREA_HOME/..}
testsuite #{shell basename $MT_RUN_AREA_HOME}
[tests-paths]
1 #{get misc parent}/simplerun/tests
[setup]
# turn off faststart, put monitor.db in MT_RUN_AREA_HOME/db
# and set the dbdir to /var/tmp/$USER/mt_db to enable keeping
# the raw db in /var/tmp/$USER
#
faststart no
monitordir #{getenv MT_RUN_AREA_HOME}/db
dbdirdefn /tmp/#{getenv USER}/#{getenv MT_TESTSUITE_NAME}/db
dbdirmkdir #{scheme (create-directory "#{get setup dbdirdefn}" #t)}
dbdir #{get setup dbdirdefn}
# sync more aggressively to megatest-db
megatest-db yes
# Set launchwait to no to use the more agressive code that does not wait for the launch to complete before proceeding
# this may save a few milliseconds on launching tests
# launchwait no
waivercommentpatt ^WW\d+ [a-z].*
incomplete-timeout 1
# wait 0.5 seconds between launching every process
#
launch-delay 0.5
# wait for runs to completely complete. yes, anything else is no
run-wait yes
# If set to "default" the old code is used. Otherwise defaults to 200 or uses
# numeric value given.
#
runqueue 20
# Default runtimelim 1d 1h 1m 10s
#
runtimelim 20m
# Deadtime - when to consider tests dead (i.e. haven't heard from them in too long)
# Number in seconds, set to 20 seconds here to trigger a little trouble. Default is
# 1800
#
deadtime 600
# It is possible (but not recommended) to override the rsync command used
# to populate the test directories. For test development the following
# example can be useful
#
testcopycmd cp --remove-destination -rsv TEST_SRC_PATH/. TEST_TARG_PATH/. >> TEST_TARG_PATH/mt_launch.log 2>> TEST_TARG_PATH/mt_launch.log
# or for hard links
# testcopycmd cp --remove-destination -rlv TEST_SRC_PATH/. TEST_TARG_PATH/.
# FULL or 2, NORMAL or 1, OFF or 0
synchronous 0
# Throttle roughly scales the db access milliseconds to seconds delay
throttle 0.2
# Max retries allows megatest to re-check that a tests status has changed
# as tests can have transient FAIL status occasionally
maxretries 20
# Setup continued.
[setup]
# override the logview command
#
logviewer (%MTCMD%) 2> /dev/null > /dev/null
# override the html viewer launch command
#
# htmlviewercmd firefox -new-window
htmlviewercmd arora
# -runtests automatically deletes the records for tests with the listed states on starting up a run allowing them to re-run
# (nb// this is in addition to NOT_STARTED which is automatically re-run)
# format is STATE/STATUS
allow-auto-rerun /INCOMPLETE /ZERO_ITEMS
# could add: STUCK STUCK/DEAD UNKNOWN KILLED KILLREQ PREQ_DISCARD
[validvalues]
state start end 0 1 - 2
status pass fail n/a 0 1 running - 2
# These are set before all tests, override them
# in the testconfig [pre-launch-env-overrides] section
[env-override]
ALL_TOPLEVEL_TESTS exit_0 exit_1 ez_exit2_fail ez_fail ez_pass ezlog_fail \
ezlog_fail_then_pass ezlog_pass ezlog_warn lineitem_fail lineitem_pass logpro_required_fail \
manual_example neverrun priority_1 priority_10 priority_10_waiton_1 \
priority_3 priority_4 priority_5 priority_6 priority_7 priority_8 \
priority_9 runfirst singletest singletest2 sqlitespeed test_mt_vars \
ez_fail_quick test1 test2
# This variable is honored by the loadrunner script. The value is in percent
MAX_ALLOWED_LOAD 200
# MT_XTERM_CMD overrides the terminal command
# MT_XTERM_CMD xterm -bg lightgreen -fg black
SPECIAL_ENV_VARS overide them here - should be seen at launch and in the runs
TESTVAR [system readlink -f .]
DEADVAR [system ls]
VARWITHDOLLAR $HOME/.zshrc
WACKYVAR #{system ls > /dev/null}
WACKYVAR2 #{get validvalues state}
WACKYVAR3 #{getenv USER}
WACKYVAR4 #{scheme (+ 5 6 7)}
WACKYVAR5 #{getenv sysname}/#{getenv fsname}/#{getenv datapath}
WACKYVAR6 #{scheme (args:get-arg "-target")}
PREDICTABLE the_ans
MRAH MT_RUN_AREA_HOME=#{getenv MT_RUN_AREA_HOME}
# The empty var should have a definition with null string
EMPTY_VAR
WRAPPEDVAR This var should have the work blah thrice: \
blah \
blah
MYRUNNAME1 /this/is/#{getenv MT_RUNNAME}/my/runname
MYRUNNAME2 /this/is/[system echo $MT_RUNNAME]/my/runname
# XTERM [system xterm]
# RUNDEAD [system exit 56]
[server]
# force use of server always
# required yes
# Use http instead of direct filesystem access
transport http
# transport fs
# transport nmsg
synchronous 0
# If the server can't be started on this port it will try the next port until
# it succeeds
port 9080
# This server will keep running this number of hours after last access.
# Three minutes is 0.05 hours
# timeout 0.025
timeout 0.01
# faststart; unless no, start server but proceed with writes until server started
# faststart no
faststart yes
# Start server when average query takes longer than this
# server-query-threshold 55500
server-query-threshold 1000
# daemonize yes
# hostname #{scheme (get-host-name)}
## disks are:
## name host:/path/to/area
## -or-
## name /path/to/area
[disks]
disk0 /foobarbazz
disk1 not-a-disk
[include ./configs/mt_include_2.config]
[include #{getenv USER}_testing.config]
[jobgroups]
# NOTE: job groups will falsely count the toplevel test as a job. If possible add N
# to your jobgroups where N is the number of parallel runs you are likely to see
#
sqlite3 6
blockz 10
# to your jobgroups where N is the number of parallel runs you are likely to see
#
#======================================================================
# Machine flavors
#
# These specify lists of hosts or scripts to use or call for various
# flavors of task.
#
#======================================================================
[flavors]
plain hosts: xena, phoebe
strong command: NBFAKE_HOST=zeus nbfake
arm hosts: cubian
[archive]
# where to get bup executable
# bup /path/to/bup
# use machines of these flavor
useflavors plain
targsize 2G
# minimum space required on an archive disk before allowing archiving to start (MB)
minspace 10
[archive-disks]
# Archives will be organised under these paths like this:
# <testsuite>/<creationdate>
# Within the archive the data is structured like this:
# <target>/<runname>/<test>/
disk0 /tmp/#{getenv USER}/adisk1
disk1 /mfs/tmp/archive
# Uncomment these to emulate a job queue with a long time (look in bin/sleeprunner for the time)
[jobtools]
launcher #{scheme (case (string->symbol (conc (getenv "datapath"))) \
((none) "nbfake") \
((openlava) "bsub -o $MT_LINKTREE/$MT_TARGET/$MT_RUNNAME.$MT_TESTNAME-$MT_ITEM_PATH.log") \
((sleeprunner) "sleeprunner") \
(else "nbfake"))}
# launcher bsub -q priority -o $MT_TEST_RUN_DIR/openlava.log
# launcher #{ shell if which bsub > /dev/null;then echo bsub -q priority -o openlava.log;else echo sleeprunner;fi}
# launcher nbfake
maxload 1.1
maxhomehostload 1.1
[configf:settings trim-trailing-spaces yes]
# Override the rollup for specific tests
[testrollup]
runfirst ls
[test]
# VAL1 has trailing spaces
VAL1 Foo
VAL2 ==>#{get test VAL1}Bar<== no spaces between Foo and Bar to pass
ltest #{scheme (case (string->symbol (conc (getenv "datapath"))) \
((none) "nbfake") \
((openlava) "bsub -o $MT_LINKTREE/$MT_TARGET/$MT_RUNNAME.$MT_TESTNAME-$MT_ITEM_PATH.log") \
(else "sleeprunner"))}
#================================================================
# Flexi-launcher
#================================================================
#
# [host-types]
# general ssh #{getbgesthost general}
# nbgeneral nbjob run JOBCOMMAND -log $MT_LINKTREE/$MT_TARGET/$MT_RUNNAME.$MT_TESTNAME-$MT_ITEM_PATH.lgo
#
# [hosts]
# general cubian xena
#
# [launchers]
# envsetup general
# xor/%/n 4C16G
# % nbgeneral
#
# [jobtools]
# launcher bsub
# # if defined and not "no" flexi-launcher will bypass launcher unless there is no
# # match.
# flexi-launcher yes
[jobtools]
flexi-launcher yes
[host-types]
general nbfake
alt #{get jobtools launcher}
local nbfake
remote #{get jobtools launcher}
[launchers]
runfirst/sum% remote
% general