Index: db.scm ================================================================== --- db.scm +++ db.scm @@ -1584,11 +1584,11 @@ (define (cdb:get-test-info serverdat run-id test-name item-path) (cdb:client-call serverdat 'immediate #f *default-numtries* open-run-close db:get-test-info #f run-id test-name item-path)) (define (cdb:get-test-info-by-id serverdat test-id) (let ((test-dat (cdb:client-call serverdat 'immediate #f *default-numtries* open-run-close db:get-test-info-by-id #f test-id))) - (hash-table-set! *test-info* test-id test-dat) ;; cached for use where up-to-date info is not needed + (hash-table-set! *test-info* test-id (vector (current-seconds) test-dat)) ;; cached for use where up-to-date info is not needed test-dat)) ;; db should be db open proc or #f (define (cdb:remote-run proc db . params) (apply cdb:client-call *runremote* 'immediate #f *default-numtries* open-run-close proc #f params)) Index: mt.scm ================================================================== --- mt.scm +++ mt.scm @@ -93,11 +93,13 @@ ;;====================================================================== (define (mt:process-triggers test-id newstate newstatus) (let* ((test-dat (mt:lazy-get-test-info-by-id test-id)) (test-rundir (db:test-get-rundir test-dat)) - (tconfig #f)) + (tconfig #f) + (state (if newstate newstate (db:test-get-state test-dat))) + (status (if newstatus newstatus (db:test-get-status test-dat)))) (if (and (file-exists? test-rundir) (directory? test-rundir)) (begin (push-directory test-rundir) (set! tconfig (mt:lazy-read-test-config test-dat)) @@ -104,16 +106,18 @@ (pop-directory) (for-each (lambda (trigger) (let ((cmd (configf:lookup tconfig "triggers" trigger)) (logf (conc test-rundir "/last-trigger.log"))) (if cmd - (system (conc "(" cmd " " test-id " " test-rundir " " trigger ") >> " logf " 2>&1"))))) + (let ((fullcmd (conc "(" cmd " " test-id " " test-rundir " " trigger ") >> " logf " 2>&1"))) + (debug:print-info 0 "TRIGGERED on " trigger ", running command " fullcmd) + (process-run fullcmd))))) (list - (conc newstate "/" newstatus) - (conc newstate "/") - (conc "/" newstatus))))))) - + (conc state "/" status) + (conc state "/") + (conc "/" status))))))) + ;;====================================================================== ;; S T A T E A N D S T A T U S F O R T E S T S ;;====================================================================== (define (mt:roll-up-pass-fail-counts run-id test-name item-path status) @@ -140,13 +144,14 @@ (if newcomment (cdb:client-call *runremote* 'set-test-comment #t *default-numtries* newcomment test-id)))) (mt:process-triggers test-id newstate newstatus) #t) (define (mt:lazy-get-test-info-by-id test-id) - (let ((tdat (hash-table-ref/default *test-info* test-id #f))) - (if tdat - tdat + (let* ((tdat (hash-table-ref/default *test-info* test-id #f))) + (if (and tdat + (< (current-seconds)(+ (vector-ref tdat 0) 10))) + (vector-ref tdat 1) ;; no need to update *test-info* as that is done in cdb:get-test-info-by-id (cdb:get-test-info-by-id *runremote* test-id)))) (define (mt:lazy-read-test-config test-dat) (let* ((test-id (db:test-get-id test-dat)) Index: tests/fdktestqa/testqa/Makefile ================================================================== --- tests/fdktestqa/testqa/Makefile +++ tests/fdktestqa/testqa/Makefile @@ -20,9 +20,10 @@ dashboard : $(DASHBOARD) -rows 20 & compile : + $(MEGATEST) -stop-server 0 (cd ../../..;make && make install) clean : rm -rf ../simple*/*/* megatest.db Index: tests/fullrun/config/mt_include_1.config ================================================================== --- tests/fullrun/config/mt_include_1.config +++ tests/fullrun/config/mt_include_1.config @@ -1,8 +1,8 @@ [setup] # exectutable /path/to/megatest -max_concurrent_jobs 15 +max_concurrent_jobs 25 linktree #{getenv MT_RUN_AREA_HOME}/tmp/mt_links [jobtools] useshell yes Index: tests/fullrun/megatest.config ================================================================== --- tests/fullrun/megatest.config +++ tests/fullrun/megatest.config @@ -21,11 +21,10 @@ # Set launchwait to no to use the more agressive code that does not wait for the launch to complete before proceeding launchwait no # Use http instead of direct filesystem access transport http - # If set to "default" the old code is used. Otherwise defaults to 200 or uses # numeric value given. # runqueue 20