-;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
+;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
(defun db-type-spec (db-type specs)
(funcall (spec-fn db-type) specs))
-(defun db-type-ensure-system (db-type)
- (unless (find-package (symbol-name db-type))
- (asdf:operate 'asdf:load-op
- (intern (concatenate 'string
- (symbol-name '#:clsql-)
- (symbol-name db-type))))))
-
+(defun summarize-test-report (sexp &optional (output *standard-output*))
+ (flet ((db-title (db-type underlying-db-type)
+ (format nil "~A~A"
+ db-type
+ (if (eq db-type underlying-db-type)
+ ""
+ (format nil "/~A" underlying-db-type)))))
+ (with-open-file (in sexp :direction :input)
+ (let ((eof (cons nil nil)))
+ (do ((form (read in nil eof) (read in nil eof)))
+ ((eq form eof))
+ (destructuring-bind (db-type
+ underlying-db-type
+ utime
+ total-tests
+ failed-tests
+ impl-type
+ impl-version
+ machine-type)
+ form
+ (declare (ignorable utime impl-version))
+ (if failed-tests
+ (format output "~&~A: ~D of ~D tests failed (~A, ~A).~&"
+ (db-title db-type underlying-db-type)
+ (length failed-tests)
+ total-tests
+ machine-type
+ impl-type)
+ (format output "~&~A: All ~D tests passed (~A, ~A).~%"
+ (db-title db-type underlying-db-type)
+ total-tests
+ machine-type
+ impl-type))))))))