X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-introspect%2Ftest-driver.lisp;h=276e4718ed94f93af9eb5e2f5599d1fe46b3fa1d;hb=65a29e8b22383bda1d4ac20796c9b56529c02a6e;hp=a44476997d7e5ffa5153e7f17ba4995c2d845205;hpb=a80a02aec71e15e1ae7bebd502399ab2b824d08b;p=sbcl.git diff --git a/contrib/sb-introspect/test-driver.lisp b/contrib/sb-introspect/test-driver.lisp index a444769..276e471 100644 --- a/contrib/sb-introspect/test-driver.lisp +++ b/contrib/sb-introspect/test-driver.lisp @@ -532,3 +532,33 @@ (type-equal (function-type #'nullary) '(function () (values null &optional)))) t) + +;;; Defstruct accessor, copier, and predicate + +(deftest defstruct-fun-sources + (let ((copier (find-definition-source #'cl-user::copy-three)) + (accessor (find-definition-source #'cl-user::three-four)) + (predicate (find-definition-source #'cl-user::three-p))) + (values (and (equalp copier accessor) + (equalp copier predicate)) + (equal "test.lisp" + (file-namestring (definition-source-pathname copier))) + (equal '(5) + (definition-source-form-path copier)))) + t + t + t) + +(deftest defstruct-fun-sources-by-name + (let ((copier (car (find-definition-sources-by-name 'cl-user::copy-three :function))) + (accessor (car (find-definition-sources-by-name 'cl-user::three-four :function))) + (predicate (car (find-definition-sources-by-name 'cl-user::three-p :function)))) + (values (and (equalp copier accessor) + (equalp copier predicate)) + (equal "test.lisp" + (file-namestring (definition-source-pathname copier))) + (equal '(5) + (definition-source-form-path copier)))) + t + t + t)