Megatest

Diff
Login

Differences From Artifact [cd8c6d3d5e]:

To Artifact [9fd3c3ad12]:


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))