r11859: Canonicalize whitespace
[uffi.git] / tests / rt.lisp
index d4dd2aedb677e020169363f312f6da7fe1c8317e..c6ceab71e1e5237fda23b79c8c1db68591bfb3d7 100644 (file)
  |----------------------------------------------------------------------------|#
 
 (defpackage #:regression-test
-  (:nicknames #:rtest #-lispworks #:rt) 
+  (:nicknames #:rtest #-lispworks #:rt)
   (:use #:cl)
   (:export #:*do-tests-when-defined* #:*test* #:continue-testing
-          #:deftest #:do-test #:do-tests #:get-test #:pending-tests
-          #:rem-all-tests #:rem-test)
+           #:deftest #:do-test #:do-tests #:get-test #:pending-tests
+           #:rem-all-tests #:rem-test)
   (:documentation "The MIT regression tester with pfdietz's modifications"))
 
 (in-package :regression-test)
@@ -45,7 +45,7 @@
   "A list of test names that are expected to fail.")
 
 (defstruct (entry (:conc-name nil)
-                 (:type list))
+                  (:type list))
   pend name form)
 
 (defmacro vals (entry) `(cdddr ,entry))
 
 (defun get-entry (name)
   (let ((entry (find name (cdr *entries*)
-                    :key #'name
-                    :test #'equal)))
+                     :key #'name
+                     :test #'equal)))
     (when (null entry)
       (report-error t
         "~%No test with name ~:@(~S~)."
-       name))
+        name))
     entry))
 
 (defmacro deftest (name form &rest values)
@@ -92,8 +92,8 @@
     (when (null (cdr l))
       (setf (cdr l) (list entry))
       (return nil))
-    (when (equal (name (cadr l)) 
-                (name entry))
+    (when (equal (name (cadr l))
+                 (name entry))
       (setf (cadr l) entry)
       (report-error nil
         "Redefining test ~:@(~S~)"
   (setq *test* (name entry)))
 
 (defun report-error (error? &rest args)
-  (cond (*debug* 
-        (apply #'format t args)
-        (if error? (throw '*debug* nil)))
-       (error? (apply #'error args))
-       (t (apply #'warn args))))
+  (cond (*debug*
+         (apply #'format t args)
+         (if error? (throw '*debug* nil)))
+        (error? (apply #'error args))
+        (t (apply #'warn args))))
 
 (defun do-test (&optional (name *test*))
   (do-entry (get-entry name)))
    ((eq x y) t)
    ((consp x)
     (and (consp y)
-        (equalp-with-case (car x) (car y))
-        (equalp-with-case (cdr x) (cdr y))))
+         (equalp-with-case (car x) (car y))
+         (equalp-with-case (cdr x) (cdr y))))
    ((and (typep x 'array)
-        (= (array-rank x) 0))
+         (= (array-rank x) 0))
     (equalp-with-case (aref x) (aref y)))
    ((typep x 'vector)
     (and (typep y 'vector)
-        (let ((x-len (length x))
-              (y-len (length y)))
-          (and (eql x-len y-len)
-               (loop
-                for e1 across x
-                for e2 across y
-                always (equalp-with-case e1 e2))))))
+         (let ((x-len (length x))
+               (y-len (length y)))
+           (and (eql x-len y-len)
+                (loop
+                 for e1 across x
+                 for e2 across y
+                 always (equalp-with-case e1 e2))))))
    ((and (typep x 'array)
-        (typep y 'array)
-        (not (equal (array-dimensions x)
-                    (array-dimensions y))))
+         (typep y 'array)
+         (not (equal (array-dimensions x)
+                     (array-dimensions y))))
     nil)
    ((typep x 'array)
     (and (typep y 'array)
-        (let ((size (array-total-size x)))
-          (loop for i from 0 below size
-                always (equalp-with-case (row-major-aref x i)
-                                         (row-major-aref y i))))))
+         (let ((size (array-total-size x)))
+           (loop for i from 0 below size
+                 always (equalp-with-case (row-major-aref x i)
+                                          (row-major-aref y i))))))
    (t (eql x y))))
 
 (defun do-entry (entry &optional
-                      (s *standard-output*))
+                       (s *standard-output*))
   (catch '*in-test*
     (setq *test* (name entry))
     (setf (pend entry) t)
     (let* ((*in-test* t)
-          ;; (*break-on-warnings* t)
-          (aborted nil)
-          r)
+           ;; (*break-on-warnings* t)
+           (aborted nil)
+           r)
       ;; (declare (special *break-on-warnings*))
 
       (block aborted
-       (setf r
-             (flet ((%do
-                     ()
-                     (if *compile-tests*
-                         (multiple-value-list
-                          (funcall (compile
-                                    nil
-                                    `(lambda ()
-                                       (declare
-                                        (optimize ,@*optimization-settings*))
-                                       ,(form entry)))))
-                       (multiple-value-list
-                        (eval (form entry))))))
-               (if *catch-errors*
-                   (handler-bind
-                       ((style-warning #'muffle-warning)
-                        (error #'(lambda (c)
-                                   (setf aborted t)
-                                   (setf r (list c))
-                                   (return-from aborted nil))))
-                     (%do))
-                 (%do)))))
+        (setf r
+              (flet ((%do
+                      ()
+                      (if *compile-tests*
+                          (multiple-value-list
+                           (funcall (compile
+                                     nil
+                                     `(lambda ()
+                                        (declare
+                                         (optimize ,@*optimization-settings*))
+                                        ,(form entry)))))
+                        (multiple-value-list
+                         (eval (form entry))))))
+                (if *catch-errors*
+                    (handler-bind
+                        ((style-warning #'muffle-warning)
+                         (error #'(lambda (c)
+                                    (setf aborted t)
+                                    (setf r (list c))
+                                    (return-from aborted nil))))
+                      (%do))
+                  (%do)))))
 
       (setf (pend entry)
-           (or aborted
-               (not (equalp-with-case r (vals entry)))))
-      
+            (or aborted
+                (not (equalp-with-case r (vals entry)))))
+
       (when (pend entry)
-       (let ((*print-circle* *print-circle-on-failure*))
-         (format s "~&Test ~:@(~S~) failed~
+        (let ((*print-circle* *print-circle-on-failure*))
+          (format s "~&Test ~:@(~S~) failed~
                    ~%Form: ~S~
                    ~%Expected value~P: ~
                       ~{~S~^~%~17t~}~%"
-                 *test* (form entry)
-                 (length (vals entry))
-                 (vals entry))
-         (format s "Actual value~P: ~
+                  *test* (form entry)
+                  (length (vals entry))
+                  (vals entry))
+          (format s "Actual value~P: ~
                       ~{~S~^~%~15t~}.~%"
-                 (length r) r)))))
+                  (length r) r)))))
   (when (not (pend entry)) *test*))
 
 (defun continue-testing ()
       (do-entries *standard-output*)))
 
 (defun do-tests (&optional
-                (out *standard-output*))
+                 (out *standard-output*))
   (dolist (entry (cdr *entries*))
     (setf (pend entry) t))
   (if (streamp out)
       (do-entries out)
-      (with-open-file 
-         (stream out :direction :output)
-       (do-entries stream))))
+      (with-open-file
+          (stream out :direction :output)
+        (do-entries stream))))
 
 (defun do-entries (s)
   (format s "~&Doing ~A pending test~:P ~
              of ~A tests total.~%"
           (count t (cdr *entries*)
-                :key #'pend)
-         (length (cdr *entries*)))
+                 :key #'pend)
+          (length (cdr *entries*)))
   (dolist (entry (cdr *entries*))
     (when (pend entry)
       (format s "~@[~<~%~:; ~:@(~S~)~>~]"
-             (do-entry entry s))))
+              (do-entry entry s))))
   (let ((pending (pending-tests))
-       (expected-table (make-hash-table :test #'equal)))
+        (expected-table (make-hash-table :test #'equal)))
     (dolist (ex *expected-failures*)
       (setf (gethash ex expected-table) t))
     (let ((new-failures
-          (loop for pend in pending
-                unless (gethash pend expected-table)
-                collect pend)))
+           (loop for pend in pending
+                 unless (gethash pend expected-table)
+                 collect pend)))
       (if (null pending)
-         (format s "~&No tests failed.")
-       (progn
-         (format s "~&~A out of ~A ~
+          (format s "~&No tests failed.")
+        (progn
+          (format s "~&~A out of ~A ~
                    total tests failed: ~
                    ~:@(~{~<~%   ~1:;~S~>~
                          ~^, ~}~)."
-                 (length pending)
-                 (length (cdr *entries*))
-                 pending)
-         (if (null new-failures)
-             (format s "~&No unexpected failures.")
-           (when *expected-failures*
-             (format s "~&~A unexpected failures: ~
+                  (length pending)
+                  (length (cdr *entries*))
+                  pending)
+          (if (null new-failures)
+              (format s "~&No unexpected failures.")
+            (when *expected-failures*
+              (format s "~&~A unexpected failures: ~
                    ~:@(~{~<~%   ~1:;~S~>~
                          ~^, ~}~)."
-                   (length new-failures)
-                   new-failures)))
-         ))
+                    (length new-failures)
+                    new-failures)))
+          ))
       (null pending))))