+ (let ((namelen 0)
+ (succlen 0)
+ (testlen 0)
+ (results test-harness-file-results-alist))
+ ;; compute maximum lengths of variable components of report
+ ;; probably should just use (length "byte-compiler-tests.el")
+ ;; and 5-place sizes -- this will also work for the file-by-file
+ ;; printing when Adrian's kludge gets reverted
+ (flet ((print-width (i)
+ (let ((x 10) (y 1))
+ (while (>= i x)
+ (setq x (* 10 x) y (1+ y)))
+ y)))
+ (while results
+ (let* ((head (car results))
+ (nn (length (file-name-nondirectory (first head))))
+ (ss (print-width (second head)))
+ (tt (print-width (third head))))
+ (when (> nn namelen) (setq namelen nn))
+ (when (> ss succlen) (setq succlen ss))
+ (when (> tt testlen) (setq testlen tt)))
+ (setq results (cdr results))))
+ ;; create format and print
+ (let ((results (reverse test-harness-file-results-alist)))
+ (while results
+ (let* ((head (car results))
+ (basename (file-name-nondirectory (first head)))
+ (nsucc (second head))
+ (ntest (third head)))
+ (if (> ntest 0)
+ (message test-harness-file-summary-template
+ (concat basename ":")
+ nsucc
+ ntest
+ (/ (* 100 nsucc) ntest))
+ (message test-harness-null-summary-template
+ (concat basename ":")))
+ (setq results (cdr results)))))
+ (when (> unexpected-test-suite-failures 0)
+ (message "\n***** There %s %d unexpected test suite %s in %s:"
+ (if (= unexpected-test-suite-failures 1) "was" "were")
+ unexpected-test-suite-failures
+ (if (= unexpected-test-suite-failures 1) "failure" "failures")
+ (if (= (length unexpected-test-suite-failure-files) 1)
+ "file"
+ "files"))
+ (while unexpected-test-suite-failure-files
+ (let ((line (pop unexpected-test-suite-failure-files)))
+ (while (and (< (length line) 61)
+ unexpected-test-suite-failure-files)
+ (setq line
+ (concat line " "
+ (pop unexpected-test-suite-failure-files))))
+ (message line)))))
+ (message "\nDone")