@@ -879,11 +879,11 @@ (items (tests:testqueue-get-items test-record)) (item-path (item-list->path itemdat)) (tfullname (runs:make-full-test-name test-name item-path)) (newtal (append tal (list hed))) (regfull (>= (length reg) reglen)) - (num-running (cdb:remote-run db:get-count-tests-running-for-run-id #f run-id))) + (num-running (cdb:remote-run db:get-count-tests-running-for-run-id #f run-id #f))) (if (> num-running 0) (set! last-time-some-running (current-seconds))) (if (> (current-seconds)(+ last-time-some-running 240)) @@ -1040,12 +1040,20 @@ ((not (null? reg)) ;; could we get here with leftovers? (debug:print-info 0 "Have leftovers!") (loop (car reg)(cdr reg) '() reruns)) (else (debug:print-info 4 "Exiting loop with...\n hed=" hed "\n tal=" tal "\n reruns=" reruns)) - ))) ;; LET* ((test-record - + )) + ;; now *if* -run-wait we wait for all tests to be done + (let loop ((num-running (cdb:remote-run db:get-count-tests-running-for-run-id #f run-id #f))) + (if (and (args:get-arg "-run-wait") + (> num-running 0)) + (begin + (debug:print-info 0 "-run-wait specified, waiting on " num-running " tests in RUNNING, REMOTEHOSTSTART or LAUNCHED state.") + (thread-sleep! 15) + (loop (cdb:remote-run db:get-count-tests-running-for-run-id #f run-id #f))))) + ) ;; LET* ((test-record ;; we get here on "drop through". All done! (debug:print-info 1 "All tests launched"))) (define (runs:calc-fails prereqs-not-met) (filter (lambda (test)