1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
|
[fields]
sysname TEXT
fsname TEXT
datapath TEXT
# refareas can be searched to find previous runs
# the path points to where megatest.db exists
[refareas]
area1 /tmp/oldarea/megatest
[include config/mt_include_1.config]
[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
dbdir #{getenv MT_RUN_AREA_HOME}/db
# 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
# yes, anything else is no
# wait for runs to completely complete. yes, anything else is no
run-wait yes
# Use http instead of direct filesystem access
# transport http
transport fs
# 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
#
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
|
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
-
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
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 OFF
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 konqueror
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)
#
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 echo $PWD]
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
# Set MAX_ALLOWED_LOAD for nbload. 150 percent is a good value.
MYRUNNAME1 /this/is/#{getenv MT_RUNNAME}/my/runname
MYRUNNAME2 /this/is/[system echo $MT_RUNNAME]/my/runname
MAX_ALLOWED_LOAD 200
# 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 8080
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.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 config/mt_include_2.config]
[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 5
blockz 5
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
# 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
[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 sleeprunner
# 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
|