Skip to content
test-concatenate-source.script 1.65 KiB
Newer Older
  (defsystem :test-concatenate-source
    :depends-on (:file3-only)
    :components
    ((:file "file2" :depends-on ("foo"))
     (:module "foo" :pathname ""
       :components ((:file "file1")
                    (:file "file4" :if-feature (:not :common-lisp))))))
  (let ((mcso (asdf::make-operation 'asdf::monolithic-concatenate-source-op))
        (mccso (asdf::make-operation 'asdf::monolithic-compile-concatenated-source-op))
        (mlccso (asdf::make-operation 'asdf::monolithic-load-compiled-concatenated-source-op))
        (sys (find-system :test-concatenate-source)))
    (assert (asdf::operation-monolithic-p mcso))
    (assert-equal ;; on CLISP, we get un-equal pathnames with same namestrings. Sigh.
     (princ-to-string (input-files mcso sys))
     (princ-to-string (loop :for n :in '(3 1 2)
                            :collect (asdf::subpathname *test-directory* (format nil "file~D.lisp" n)))))
    (assert-equal
     (output-file mcso sys)
     (apply-output-translations (asdf::subpathname *test-directory* "test-concatenate-source.lisp")))
    (assert-equal
     (output-files mcso sys)
     (input-files mccso sys))
    (assert-equal ;; on ECL, we get un-equal pathnames.
     (princ-to-string (output-file mccso sys))
     (princ-to-string (apply-output-translations (compile-file-pathname (asdf::subpathname *test-directory* "test-concatenate-source.lisp")))))
    (assert-equal
     (output-files mccso sys)
     (input-files mlccso sys))
    (operate 'asdf::monolithic-load-compiled-concatenated-source-op sys)
    (assert (symbol-value (asdf::find-symbol* :*file3* :test-package)))))