diff --git a/ansi-tests/describe.lsp b/ansi-tests/describe.lsp index 8ddfdfa7319b5db4c26747d2be7cd1b75a72289e..3361a886f63b10948db56337713782afef35dabe 100644 --- a/ansi-tests/describe.lsp +++ b/ansi-tests/describe.lsp @@ -34,7 +34,8 @@ (loop for x in *universe* for s1 = nil for s2 = nil - for s3 = (with-output-to-string (s) (setf (values s1 s2) (harness-for-describe #'(lambda () (describe x s))))) + for s3 = (with-output-to-string (s) + (setf (values s1 s2) (harness-for-describe #'(lambda () (describe x s))))) when (or (equal s3 "") (not (equal "" s2)) (not (equal "" s1))) collect (list x s1 s2 s3)) nil) @@ -53,6 +54,22 @@ collect (list x s1 s2)) nil) +;;; Defining methods for describe-object + +(defclass describe-object-test-class-01 () ((s1 :initarg :s1) (s2 :initarg :s2) (s3 :initarg :s3))) + +(defmethod describe-object ((obj describe-object-test-class-01) stream) + (format stream "ABCDE ~A ~A ~A XYZ" (slot-value obj 's1) (slot-value obj 's2) (slot-value obj 's3))) + +(deftest describe.5 + (let ((obj (make-instance 'describe-object-test-class-01 :s1 2 :s2 6 :s3 17))) + (multiple-value-bind (str1 str2) (harness-for-describe #'(lambda () (describe obj))) + (if (or (search "ABCDE 2 6 17 XYZ" str1) + (search "ABCDE 2 6 17 XYZ" str2)) + :good + (list str1 str2)))) + :good) + ;;; Error cases (deftest describe.error.1