1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
|
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
|
-
+
+
+
+
+
+
+
+
+
-
+
-
+
|
((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))
))
;; 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)))
(let loop ((num-running (cdb:remote-run db:get-count-tests-running-for-run-id #f run-id #f))
(prev-num-running 0))
(if (and (args:get-arg "-run-wait")
(> num-running 0))
(begin
;; Here we mark any old defunct tests as incomplete. Do this every fifteen minutes
(if (> (current-seconds)(+ last-time-incomplete 900))
(begin
(debug:print-info 0 "Marking stuck tests as INCOMPLETE while waiting for run " run-id ". Running as pid " (current-process-id) " on " (get-host-name))
(set! last-time-incomplete (current-seconds))
(cdb:remote-run db:find-and-mark-incomplete #f)))
(if (not (eq? num-running prev-num-running))
(debug:print-info 0 "-run-wait specified, waiting on " num-running " tests in RUNNING, REMOTEHOSTSTART or LAUNCHED state.")
(debug:print-info 0 "run-wait specified, waiting on " num-running " tests in RUNNING, REMOTEHOSTSTART or LAUNCHED state at " (time->string (seconds->local-time (current-seconds)))))
(thread-sleep! 15)
(loop (cdb:remote-run db:get-count-tests-running-for-run-id #f run-id #f)))))
(loop (cdb:remote-run db:get-count-tests-running-for-run-id #f run-id #f) num-running))))
) ;; 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)
(and (vector? test) ;; not (string? test))
|