Add patches from Aymeric Vincent to fix sb-posix on recentish NetBSD.
[sbcl.git] / contrib / sb-introspect / sb-introspect.asd
index b484c23..a9587df 100644 (file)
   (with-compilation-unit (:source-plist (plist-file-source-plist com))
     (call-next-method)))
 
+(defclass source-only-file (cl-source-file)
+  ())
+
+(defmethod perform ((op compile-op) (com source-only-file)))
+
+(defmethod output-files ((op compile-op) (com source-only-file))
+  (list (component-pathname com)))
+
 (defsystem :sb-introspect-tests
   :depends-on (:sb-introspect :sb-rt)
   :components ((:file "xref-test-data")
                (:file "xref-test" :depends-on ("xref-test-data"))
                (:plist-file "test" :source-plist (:test-outer "OUT"))
-               (:file "test-driver" :depends-on ("test"))))
+               (:source-only-file "load-test")
+               (:file "test-driver" :depends-on ("test" "load-test"))))
 
 (defmethod perform ((op test-op) (com (eql (find-system :sb-introspect-tests))))
-  (or (funcall (intern "DO-TESTS" (find-package "SB-RT")))
-      (error "~S failed" 'test-op)))
+  ;; N.b. At least DEFINITION-SOURCE-PLIST.1 assumes that CWD is the
+  ;; contrib/sb-introspect directory which is true for when this is
+  ;; implicitly run via make-target-contribs.sh -- but not when this
+  ;; is executed manually.
+  (let ((*default-pathname-defaults*
+         (make-pathname :directory (pathname-directory
+                                    '#.(or *compile-file-pathname*
+                                           *load-pathname*)))))
+    (or (funcall (intern "DO-TESTS" (find-package "SB-RT")))
+        (error "~S failed" 'test-op))))