Overview
| SHA1 Hash: | e38c4a9bdd2c0ae2c038c1655a92d32dd45f49df |
|---|---|
| Date: | 2011-05-03 02:30:39 |
| User: | matt |
| Comment: | Fixed and or implemented; concurrent running tasks limit, derive megatest executable path and add to PATH, add MT_TEST_RUN_DIR |
| Timelines: | family | ancestors | descendants | both | trunk |
| Downloads: | Tarball | ZIP archive |
| Other Links: | files | file ages | manifest |
Tags And Properties
- branch=trunk inherited from [d673a9367e]
- sym-trunk inherited from [d673a9367e]
Changes
Modified dashboard.scm from [58d8d13c30b5e647] to [43e9dd636ea63c87].
14 14 15 ;; (use canvas-draw) 15 ;; (use canvas-draw) 16 16 17 (use sqlite3 srfi-1 posix regex regex-case srfi-69) 17 (use sqlite3 srfi-1 posix regex regex-case srfi-69) 18 18 19 (import (prefix sqlite3 sqlite3:)) 19 (import (prefix sqlite3 sqlite3:)) 20 20 21 (include "../margs/margs.scm") | 21 (include "margs.scm") 22 (include "keys.scm") 22 (include "keys.scm") 23 (include "items.scm") 23 (include "items.scm") 24 (include "db.scm") 24 (include "db.scm") 25 (include "configf.scm") 25 (include "configf.scm") 26 (include "process.scm") 26 (include "process.scm") 27 (include "launch.scm") 27 (include "launch.scm") 28 (include "runs.scm") 28 (include "runs.scm")
Modified db.scm from [764f6c91ad07200b] to [8e4eb733dadf74db].
148 (lambda (a . x) 148 (lambda (a . x) 149 (set! res (apply vector a x))) 149 (set! res (apply vector a x))) 150 db 150 db 151 (conc "SELECT " keystr " FROM runs WHERE id=?;") 151 (conc "SELECT " keystr " FROM runs WHERE id=?;") 152 run-id) 152 run-id) 153 (vector header res))) 153 (vector header res))) 154 154 155 ;; Tests | 155 ;;====================================================================== > 156 ;; T E S T S > 157 ;;====================================================================== > 158 156 (define (make-db:test)(make-vector 6)) 159 (define (make-db:test)(make-vector 6)) 157 (define-inline (db:test-get-id vec) (vector-ref vec 0)) 160 (define-inline (db:test-get-id vec) (vector-ref vec 0)) 158 (define-inline (db:test-get-run_id vec) (vector-ref vec 1)) 161 (define-inline (db:test-get-run_id vec) (vector-ref vec 1)) 159 (define-inline (db:test-get-testname vec) (vector-ref vec 2)) 162 (define-inline (db:test-get-testname vec) (vector-ref vec 2)) 160 (define-inline (db:test-get-state vec) (vector-ref vec 3)) 163 (define-inline (db:test-get-state vec) (vector-ref vec 3)) 161 (define-inline (db:test-get-status vec) (vector-ref vec 4)) 164 (define-inline (db:test-get-status vec) (vector-ref vec 4)) 162 (define-inline (db:test-get-event_time vec) (vector-ref vec 5)) 165 (define-inline (db:test-get-event_time vec) (vector-ref vec 5)) ................................................................................................................................................................................ 175 (sqlite3:for-each-row 178 (sqlite3:for-each-row 176 (lambda (id run-id testname state status event-time host cpuload diskfree u 179 (lambda (id run-id testname state status event-time host cpuload diskfree u 177 (set! res (cons (vector id run-id testname state status event-time host c 180 (set! res (cons (vector id run-id testname state status event-time host c 178 db 181 db 179 "SELECT id,run_id,testname,state,status,event_time,host,cpuload,diskfree,un 182 "SELECT id,run_id,testname,state,status,event_time,host,cpuload,diskfree,un 180 run-id) 183 run-id) 181 res)) 184 res)) > 185 > 186 (define (db:delete-test-step-records db run-id test-name) > 187 (sqlite3:execute db "DELETE FROM test_steps WHERE test_id in (SELECT id FROM t > 188 > 189 (define (db:get-count-tests-running db) > 190 (let ((res 0)) > 191 (sqlite3:for-each-row > 192 (lambda (count) > 193 (set! res count)) > 194 db > 195 "SELECT count(id) FROM tests WHERE state = 'RUNNING' OR state = 'LAUNCHED' > 196 res)) 182 197 183 ;; NB// Sync this with runs:get-test-info 198 ;; NB// Sync this with runs:get-test-info 184 (define (db:get-test-info db run-id testname item-path) 199 (define (db:get-test-info db run-id testname item-path) 185 (let ((res '())) 200 (let ((res '())) 186 (sqlite3:for-each-row 201 (sqlite3:for-each-row 187 (lambda (id run-id testname state status event-time host cpuload diskfree u 202 (lambda (id run-id testname state status event-time host cpuload diskfree u 188 (set! res (vector id run-id testname state status event-time host cpuload 203 (set! res (vector id run-id testname state status event-time host cpuload
Modified launch.scm from [c9e33dfffe235bd9] to [5bc0a599f19f166d].
14 ;;====================================================================== 14 ;;====================================================================== 15 15 16 (define (setup-for-run) 16 (define (setup-for-run) 17 (set! *configinfo* (find-and-read-config (if (args:get-arg "-config")(args:get 17 (set! *configinfo* (find-and-read-config (if (args:get-arg "-config")(args:get 18 (set! *configdat* (if (car *configinfo*)(car *configinfo*) #f)) 18 (set! *configdat* (if (car *configinfo*)(car *configinfo*) #f)) 19 (set! *toppath* (if (car *configinfo*)(cadr *configinfo*) #f)) 19 (set! *toppath* (if (car *configinfo*)(cadr *configinfo*) #f)) 20 (if *toppath* 20 (if *toppath* 21 (setenv "MT_RUN_AREA_HOME" *toppath*) | 21 (setenv "MT_RUN_AREA_HOME" *toppath*) ;; to be deprecated 22 (print "ERROR: failed to find the top path to your run setup.")) 22 (print "ERROR: failed to find the top path to your run setup.")) 23 *toppath*) 23 *toppath*) 24 24 25 (define (setup-env-defaults db fname run-id . already-seen) 25 (define (setup-env-defaults db fname run-id . already-seen) 26 (let* ((keys (get-keys db)) 26 (let* ((keys (get-keys db)) 27 (keyvals (get-key-vals db run-id)) 27 (keyvals (get-key-vals db run-id)) 28 (thekey (string-intersperse (map (lambda (x)(if x x "-na-")) keyvals) 28 (thekey (string-intersperse (map (lambda (x)(if x x "-na-")) keyvals) ................................................................................................................................................................................ 111 (hosts (config-lookup *configdat* "jobtools" "workhosts")) 111 (hosts (config-lookup *configdat* "jobtools" "workhosts")) 112 (remote-megatest (config-lookup *configdat* "setup" "executable")) 112 (remote-megatest (config-lookup *configdat* "setup" "executable")) 113 (local-megatest (car (argv))) 113 (local-megatest (car (argv))) 114 ;; (item-path (item-list->path itemdat)) test-path is the full path inc 114 ;; (item-path (item-list->path itemdat)) test-path is the full path inc 115 (work-area #f) 115 (work-area #f) 116 (diskpath #f) 116 (diskpath #f) 117 (cmdparms #f) 117 (cmdparms #f) 118 (fullcmd #f));; (define a (with-output-to-string (lambda ()(write x)) | 118 (fullcmd #f) ;; (define a (with-output-to-string (lambda ()(write x)) > 119 (mt-bindir-path #f)) 119 (if hosts (set! hosts (string-split hosts))) 120 (if hosts (set! hosts (string-split hosts))) 120 (if (not remote-megatest)(set! remote-megatest "megatest")) | 121 (if (not remote-megatest)(set! remote-megatest local-megatest)) ;; "megatest > 122 (set! mt-bindir-path (pathname-directory remote-megatest)) 121 (if launcher (set! launcher (string-split launcher))) 123 (if launcher (set! launcher (string-split launcher))) 122 ;; set up the run work area for this test 124 ;; set up the run work area for this test 123 (set! diskpath (get-best-disk *configdat*)) 125 (set! diskpath (get-best-disk *configdat*)) 124 (if diskpath 126 (if diskpath 125 (set! work-area (create-work-area db run-id test-path diskpath test-name 127 (set! work-area (create-work-area db run-id test-path diskpath test-name 126 (begin 128 (begin 127 (set! work-area test-path) 129 (set! work-area test-path) ................................................................................................................................................................................ 129 (set! cmdparms (base64:base64-encode (with-output-to-string 131 (set! cmdparms (base64:base64-encode (with-output-to-string 130 (lambda () ;; (list 'hosts hosts) 132 (lambda () ;; (list 'hosts hosts) 131 (write (list (list 'testpath test-path) 133 (write (list (list 'testpath test-path) 132 (list 'work-area work-area) 134 (list 'work-area work-area) 133 (list 'test-name test-name) 135 (list 'test-name test-name) 134 (list 'runscript runscript) 136 (list 'runscript runscript) 135 (list 'run-id run-id ) 137 (list 'run-id run-id ) > 138 (list 'itemdat itemdat) 136 (list 'itemdat itemdat))))) | 139 (list 'mt-bindir-path mt-bind 137 (change-directory work-area) ;; so that log files from the launch process do 140 (change-directory work-area) ;; so that log files from the launch process do 138 (cond 141 (cond 139 ((and launcher hosts) ;; must be using ssh hostname 142 ((and launcher hosts) ;; must be using ssh hostname 140 (set! fullcmd (append launcher (car hosts)(list remote-megatest "-execute" 143 (set! fullcmd (append launcher (car hosts)(list remote-megatest "-execute" 141 (launcher 144 (launcher 142 (set! fullcmd (append launcher (list remote-megatest "-execute" cmdparms)) 145 (set! fullcmd (append launcher (list remote-megatest "-execute" cmdparms)) 143 (else 146 (else 144 (set! fullcmd (list remote-megatest "-execute" cmdparms)))) 147 (set! fullcmd (list remote-megatest "-execute" cmdparms)))) 145 (if (args:get-arg "-xterm")(set! fullcmd (append fullcmd (list "-xterm")))) 148 (if (args:get-arg "-xterm")(set! fullcmd (append fullcmd (list "-xterm")))) 146 (print "Launching megatest for test " test-name " in " work-area" ...") 149 (print "Launching megatest for test " test-name " in " work-area" ...") 147 (test-set-status! db run-id test-name "LAUNCHED" "n/a" itemdat) ;; (if launc 150 (test-set-status! db run-id test-name "LAUNCHED" "n/a" itemdat) ;; (if launc 148 ;; set "pre-launch-env-vars | 151 ;; set > 152 ;; set pre-launch-env-vars before launching, keep the vars in prevvals and p > 153 (let* ((commonprevvals (alist->env-vars > 154 (hash-table-ref/default *configdat* "env-override" ' 149 (let* ((prevvals (alist->env-vars | 155 (testprevvals (alist->env-vars 150 (hash-table-ref/default test-conf "pre-launch-env-ov 156 (hash-table-ref/default test-conf "pre-launch-env-ov 151 (launch-results (apply cmd-run-proc-each-line 157 (launch-results (apply cmd-run-proc-each-line 152 (car fullcmd) 158 (car fullcmd) 153 print 159 print 154 (cdr fullcmd)))) ;; launcher fullcmd)));; (ap 160 (cdr fullcmd)))) ;; launcher fullcmd)));; (ap 155 (print "Launching completed, updating db") 161 (print "Launching completed, updating db") 156 (alist->env-vars prevvals)))) | 162 (alist->env-vars testprevvals) > 163 (alist->env-vars commonprevvals)))) 157 164
Modified megatest.scm from [1d8e12b57ca2c358] to [ffa8cfbec7c014c4].
19 -h : this help 19 -h : this help 20 20 21 Process and test running 21 Process and test running 22 -runall : run all tests that are not state COMPLETED and statu 22 -runall : run all tests that are not state COMPLETED and statu 23 -runtests tst1,tst2 ... : run tests 23 -runtests tst1,tst2 ... : run tests 24 24 25 Run status updates (these require that you are in a test directory 25 Run status updates (these require that you are in a test directory 26 and you have sourced the \"megatest.csh\" or | 26 and you have sourced the \"megatest.csh\" 27 \"megatest.sh\" file.) 27 \"megatest.sh\" file.) 28 -step stepname 28 -step stepname 29 -test-status : set the state and status of a test (use :state and : 29 -test-status : set the state and status of a test (use :state and : 30 -setlog logfname : set the path/filename to the final log relative to t 30 -setlog logfname : set the path/filename to the final log relative to t 31 directory. may be used with -test-status 31 directory. may be used with -test-status 32 -m comment : insert a comment for this test 32 -m comment : insert a comment for this test 33 33 ................................................................................................................................................................................ 37 :state : required if updating step state; e.g. start, end, co 37 :state : required if updating step state; e.g. start, end, co 38 :status : required if updating step status; e.g. pass, fail, n 38 :status : required if updating step status; e.g. pass, fail, n 39 39 40 Queries 40 Queries 41 -list-runs patt : list runs matching pattern \"patt\", % is the wildca 41 -list-runs patt : list runs matching pattern \"patt\", % is the wildca 42 -showkeys : show the keys used in this megatest setup 42 -showkeys : show the keys used in this megatest setup 43 43 44 Misc (note: there is a bug in argument processing, put these at the beginning | 44 Misc 45 of the command line or it may fail) < 46 -force : override some checks 45 -force : override some checks 47 -xterm : start an xterm instead of launching the test 46 -xterm : start an xterm instead of launching the test 48 47 49 Helpers 48 Helpers 50 49 51 -runstep stepname ... : take leftover params as comand and execute as stepna 50 -runstep stepname ... : take leftover params as comand and execute as stepna 52 log will be in stepname.log 51 log will be in stepname.log ................................................................................................................................................................................ 270 (let* ((testpath (assoc/default 'testpath cmdinfo)) 269 (let* ((testpath (assoc/default 'testpath cmdinfo)) 271 (work-area (assoc/default 'work-area cmdinfo)) 270 (work-area (assoc/default 'work-area cmdinfo)) 272 (test-name (assoc/default 'test-name cmdinfo)) 271 (test-name (assoc/default 'test-name cmdinfo)) 273 (runscript (assoc/default 'runscript cmdinfo)) 272 (runscript (assoc/default 'runscript cmdinfo)) 274 (db-host (assoc/default 'db-host cmdinfo)) 273 (db-host (assoc/default 'db-host cmdinfo)) 275 (run-id (assoc/default 'run-id cmdinfo)) 274 (run-id (assoc/default 'run-id cmdinfo)) 276 (itemdat (assoc/default 'itemdat cmdinfo)) 275 (itemdat (assoc/default 'itemdat cmdinfo)) > 276 (mt-bindir-path (assoc/default 'mt-bindir-path cmdinfo)) 277 (fullrunscript (conc testpath "/" runscript)) 277 (fullrunscript (conc testpath "/" runscript)) 278 (db #f)) 278 (db #f)) 279 (print "Exectuing " test-name " on " (get-host-name)) 279 (print "Exectuing " test-name " on " (get-host-name)) 280 (change-directory testpath) 280 (change-directory testpath) > 281 (setenv "MT_TEST_RUN_DIR" testpath) > 282 (setenv "PATH" (conc (getenv "PATH") ":" mt-bindir-path)) 281 (if (not (setup-for-run)) 283 (if (not (setup-for-run)) 282 (begin 284 (begin 283 (print "Failed to setup, exiting") 285 (print "Failed to setup, exiting") 284 (exit 1))) 286 (exit 1))) 285 ;; now can find our db 287 ;; now can find our db 286 (set! db (open-db)) 288 (set! db (open-db)) 287 (change-directory work-area) 289 (change-directory work-area) ................................................................................................................................................................................ 439 (exitstat #f)) 441 (exitstat #f)) 440 ;; mark the start of the test 442 ;; mark the start of the test 441 (test-set-status! db run-id test-name "start" "n/a" itemdat 443 (test-set-status! db run-id test-name "start" "n/a" itemdat 442 ;; close the db 444 ;; close the db 443 (sqlite3:finalize! db) 445 (sqlite3:finalize! db) 444 ;; run the test step 446 ;; run the test step 445 (set! exitstat (process-run cmd params)) 447 (set! exitstat (process-run cmd params)) > 448 ;; re-open the db > 449 (set! db (open-db)) 446 ;; run logpro if applicable 450 ;; run logpro if applicable 447 (if logpro 451 (if logpro > 452 (let ((logfile (conc test-name ".html"))) 448 (set! exitstat (process-run "logpro" logpro (conc test-n | 453 (set! exitstat (process-run "logpro" logpro logfile)) > 454 (test-set-log! db run-id test-name itemdat logfile))) 449 (test-set-status! db run-id test-name "end" FINISH MEEEEE!!! | 455 (test-set-status! db run-id test-name "end" exitstat itemdat > 456 (sqlite3:finalize! db) > 457 (exit exitstat) 450 ;; open the db 458 ;; open the db 451 ;; mark the end of the test 459 ;; mark the end of the test 452 )) | 460 ))) 453 (sqlite3:finalize! db) 461 (sqlite3:finalize! db) 454 (set! *didsomething* #t)))) 462 (set! *didsomething* #t)))) 455 463 456 (if (args:get-arg "-showkeys") 464 (if (args:get-arg "-showkeys") 457 (let ((db #f) 465 (let ((db #f) 458 (keys #f)) 466 (keys #f)) 459 (if (not (setup-for-run)) 467 (if (not (setup-for-run))
Modified runs.scm from [62d4c34f375dd67e] to [27b4382d3c345345].
183 (set! res (cons (last (string-split testpath "/")) res)))) 183 (set! res (cons (last (string-split testpath "/")) res)))) 184 tests) 184 tests) 185 res)) 185 res)) 186 186 187 (define (run-tests db test-names) 187 (define (run-tests db test-names) 188 (for-each 188 (for-each 189 (lambda (test-name) 189 (lambda (test-name) > 190 (let ((num-running (db:get-count-tests-running db)) > 191 (max-concurrent-jobs (config-lookup *configdat* "setup" "max_concurre > 192 (print "max-concurrent-jobs: " max-concurrent-jobs ", num-running: " num- > 193 (if (or (not max-concurrent-jobs) > 194 (and max-concurrent-jobs > 195 (string->number max-concurrent-jobs) > 196 (not (> num-running (string->number max-concurrent-jobs))))) 190 (run-one-test db test-name)) | 197 (run-one-test db test-name) > 198 (print "WARNING: Max running jobs exceeded, current number running: " > 199 ", max_concurrent_jobs: " max-concurrent-jobs)))) 191 test-names)) 200 test-names)) 192 201 193 (define (run-one-test db test-name) 202 (define (run-one-test db test-name) 194 (print "Launching test " test-name) 203 (print "Launching test " test-name) 195 (let* ((test-path (conc *toppath* "/tests/" test-name)) 204 (let* ((test-path (conc *toppath* "/tests/" test-name)) 196 (test-configf (conc test-path "/testconfig")) 205 (test-configf (conc test-path "/testconfig")) 197 (testexists (and (file-exists? test-configf)(file-read-access? test-c 206 (testexists (and (file-exists? test-configf)(file-read-access? test-c ................................................................................................................................................................................ 213 ;; (print "items: ")(pp allitems) 222 ;; (print "items: ")(pp allitems) 214 (let loop ((itemdat (car allitems)) 223 (let loop ((itemdat (car allitems)) 215 (tal (cdr allitems))) 224 (tal (cdr allitems))) 216 ;; (lambda (itemdat) ;;; ((ripeness "overripe") (temperature "cool") 225 ;; (lambda (itemdat) ;;; ((ripeness "overripe") (temperature "cool") 217 (let* ((item-path (item-list->path itemdat)) ;; (string-interspe 226 (let* ((item-path (item-list->path itemdat)) ;; (string-interspe 218 (new-test-path (string-intersperse (cons test-path (map cadr 227 (new-test-path (string-intersperse (cons test-path (map cadr 219 (new-test-name (if (equal? item-path "") test-name (conc test 228 (new-test-name (if (equal? item-path "") test-name (conc test 220 (test-status #f)) | 229 (test-status #f) > 230 (num-running (db:get-count-tests-running db)) > 231 (max-concurrent-jobs (config-lookup *configdat* "setup" "max_ > 232 (print "max-concurrent-jobs: " max-concurrent-jobs ", num-running: > 233 (if (not (or (not max-concurrent-jobs) > 234 (and max-concurrent-jobs > 235 (string->number max-concurrent-jobs) > 236 (not (> num-running (string->number max-concurre > 237 (print "WARNING: Max running jobs exceeded, current number run > 238 ", max_concurrent_jobs: " max-concurrent-jobs) > 239 (begin 221 (let loop2 ((ts #f) | 240 (let loop2 ((ts #f) 222 (ct 0)) | 241 (ct 0)) 223 (if (and (not ts) | 242 (if (and (not ts) 224 (< ct 10)) | 243 (< ct 10)) 225 (begin | 244 (begin 226 (register-test db run-id test-name item-path) | 245 (register-test db run-id test-name item-path) > 246 (db:delete-test-step-records db run-id test-name) ;; 227 (loop2 (runs:get-test-info db run-id test-name item-path) | 247 (loop2 (runs:get-test-info db run-id test-name item- 228 (+ ct 1))) | 248 (+ ct 1))) 229 (if ts | 249 (if ts 230 (set! test-status ts) | 250 (set! test-status ts) 231 (begin | 251 (begin 232 (print "WARNING: Couldn't register test " test-name " | 252 (print "WARNING: Couldn't register test " test-n 233 (if (not (null? tal)) | 253 (if (not (null? tal)) 234 (loop (car tal)(cdr tal))))))) | 254 (loop (car tal)(cdr tal))))))) 235 (change-directory test-path) | 255 (change-directory test-path) 236 ;; this block is here only to inform the user early on | 256 ;; this block is here only to inform the user early on 237 (if (file-exists? runconfigf) | 257 (if (file-exists? runconfigf) 238 (setup-env-defaults db runconfigf run-id *already-seen-runconf | 258 (setup-env-defaults db runconfigf run-id *already-seen-r 239 (print "WARNING: You do not have a run config file: " runconfi | 259 (print "WARNING: You do not have a run config file: " ru 240 ;; (print "run-id: " run-id " test-name: " test-name " item-path: | 260 ;; (print "run-id: " run-id " test-name: " test-name " item- 241 (case (if (args:get-arg "-force") | 261 (case (if (args:get-arg "-force") 242 'NOT_STARTED | 262 'NOT_STARTED 243 (if test-status | 263 (if test-status 244 (string->symbol (test:get-state test-status)) | 264 (string->symbol (test:get-state test-status)) 245 'failed-to-insert)) | 265 'failed-to-insert)) 246 ((failed-to-insert) | 266 ((failed-to-insert) 247 (print "ERROR: Failed to insert the record into the db")) | 267 (print "ERROR: Failed to insert the record into the db")) 248 ((NOT_STARTED COMPLETED) ;; (cadr status is the row id for the r | 268 ((NOT_STARTED COMPLETED) ;; (cadr status is the row id for 249 (if (and (equal? (test:get-state test-status) "COMPLETED") | 269 (if (and (equal? (test:get-state test-status) "COMPLETED" 250 (equal? (test:get-status test-status) "PASS") | 270 (equal? (test:get-status test-status) "PASS") 251 (not (args:get-arg "-force"))) | 271 (not (args:get-arg "-force"))) 252 (print "NOTE: Not starting test " new-test-name " as it is | 272 (print "NOTE: Not starting test " new-test-name " as 253 (let* ((get-prereqs-cmd (lambda () | 273 (let* ((get-prereqs-cmd (lambda () 254 (db-get-prereqs-not-met db run-id | 274 (db-get-prereqs-not-met db 255 (launch-cmd (lambda () | 275 (launch-cmd (lambda () 256 (launch-test db run-id test-conf | 276 (launch-test db run-id test 257 (testrundat (list get-prereqs-cmd launch-cmd))) | 277 (testrundat (list get-prereqs-cmd launch- 258 (if (or (args:get-arg "-force") | 278 (if (or (args:get-arg "-force") 259 (null? ((car testrundat)))) ;; are there any test | 279 (null? ((car testrundat)))) ;; are there an 260 ((cadr testrundat)) ;; this is the line that launches | 280 ((cadr testrundat)) ;; this is the line that la 261 (hash-table-set! *waiting-queue* new-test-name testru | 281 (hash-table-set! *waiting-queue* new-test-name 262 ((LAUNCHED REMOTEHOSTSTART KILLED) | 282 ((LAUNCHED REMOTEHOSTSTART KILLED) 263 (print "NOTE: " new-test-name " is already running or was expli | 283 (print "NOTE: " new-test-name " is already running or was 264 ((RUNNING) (print "NOTE: " test-name " is already running")) | 284 ((RUNNING) (print "NOTE: " test-name " is already running 265 (else (print "ERROR: Failed to launch test " new-test-name | 285 (else (print "ERROR: Failed to launch test " new-tes 266 (if (not (null? tal)) | 286 (if (not (null? tal)) 267 (loop (car tal)(cdr tal)))))))) | 287 (loop (car tal)(cdr tal))))))))) 268 288 269 (define (run-waiting-tests db) 289 (define (run-waiting-tests db) 270 (let ((numtries 0) 290 (let ((numtries 0) 271 (last-try-time (current-seconds)) 291 (last-try-time (current-seconds)) 272 (times (list 1))) ;; minutes to wait before trying again to 292 (times (list 1))) ;; minutes to wait before trying again to 273 ;; BUG this hack of brute force retrying works quite well for many cases but 293 ;; BUG this hack of brute force retrying works quite well for many cases but 274 ;; what is needed is to check the db for tests that have failed less tha 294 ;; what is needed is to check the db for tests that have failed less tha
Modified tests/megatest.config from [40d2ea3ec3570ea4] to [a84bbe77f9b586c8].
1 [fields] 1 [fields] 2 sysname TEXT 2 sysname TEXT 3 fsname TEXT 3 fsname TEXT 4 datapath TEXT 4 datapath TEXT 5 5 6 [setup] 6 [setup] 7 executable megatest | 7 executable /home/matt/data/megatest/megatest > 8 max_concurrent_jobs 3 8 9 9 [jobtools] 10 [jobtools] 10 # ## launcher launches jobs, the job is managed on the target host 11 # ## launcher launches jobs, the job is managed on the target host 11 ## by megatest, comment out launcher to run local 12 ## by megatest, comment out launcher to run local 12 # workhosts localhost hermes 13 # workhosts localhost hermes 13 launcher nbfake 14 launcher nbfake 14 15 15 [validvalues] 16 [validvalues] 16 state start end completed 17 state start end completed 17 status pass fail n/a 18 status pass fail n/a 18 19 > 20 # These are set before all tests, override them > 21 # in the testconfig [pre-launch-env-overrides] section 19 [env-override] 22 [env-override] 20 SPECIAL_ENV_VARS overide them here - all tests see these 23 SPECIAL_ENV_VARS overide them here - all tests see these 21 24 22 ## disks are: 25 ## disks are: 23 ## name host:/path/to/area 26 ## name host:/path/to/area 24 ## -or- 27 ## -or- 25 ## name /path/to/area 28 ## name /path/to/area 26 [disks] 29 [disks] 27 1 /tmp 30 1 /tmp