diff --git a/test/file2.lisp b/test/file2.lisp index 839f82d42114898cb89f4c07b476b65b4e359f29..809aaa616bb2bd1696d54d339def8db64ff09c5d 100644 --- a/test/file2.lisp +++ b/test/file2.lisp @@ -1,4 +1,5 @@ (in-package :test-package) (assert *file1*) +(defparameter *file2* t) (defvar *f2c* 0) (incf *f2c*) diff --git a/test/test-multiple.asd b/test/test-multiple.asd index ccea22e2682271b60d67a242bb4d7c4fe56b335c..2b56436c605dc0e1bc9dbe8a159f7c3ed0849ec5 100644 --- a/test/test-multiple.asd +++ b/test/test-multiple.asd @@ -1,14 +1,17 @@ ;;; -*- Lisp -*- -(asdf:defsystem test-multiple +(defsystem test-multiple :components ((:file "file3"))) -(asdf:defsystem test-multiple-too +(defsystem test-multiple-too :components ((:file "file1") - (:file "file2" :depends-on ("file1")) - (:file "file3" :depends-on ("file1" "file2")))) + (:file "file2" :depends-on ("file1")))) -(asdf:defsystem test-multiple-free - :depends-on (:test-multiple) +(defsystem test-multiple-free + :depends-on (:test-multiple :test-multiple-dep) :components ((:file "file4"))) + +(defsystem test-multiple-dep + :depends-on (:test-multiple) + :components ((:file "file3"))) diff --git a/test/test-multiple.script b/test/test-multiple.script index e35b79b34936bce13a156f2258af0219958ad89e..06aed4e2cd90fef8b5cfe94ae1e87b583d066eca 100644 --- a/test/test-multiple.script +++ b/test/test-multiple.script @@ -7,19 +7,19 @@ (setf *central-registry* `(,*test-directory* ,tmp)) ;; Don't rely on ln -s on Windows -(cond - ((os-unix-p) - (multiple-value-bind (output error-output return-code) - (uiop:run-program - (format nil "ln -sf ~A ~A" - (native-namestring asd) - (native-namestring asd2)) :ignore-error-status t) - (declare (ignore output error-output)) - (oos 'load-source-op (if (zerop return-code) - 'test-multiple-too - 'test-multiple)))) - (t - (oos 'load-source-op 'test-multiple))) -(assert (asymval :*file3* :test-package)) +(defparameter symlinkp + (progn + #+os-unix + (zerop + (nth-value 2 + (run-program + `("ln" "-sf" ,(native-namestring asd) ,(native-namestring asd2)) + :output t :error-output t :input nil :ignore-error-status t))))) +(oos 'load-source-op (if symlinkp 'test-multiple-too 'test-multiple)) +(assert (asymval :*file2* :test-package)) (load-system 'test-multiple-free) (assert (probe-file* file4)) +(assert (asymval :*file4* :test-package)) +(setf test-package::*file4* nil) +(load-system 'test-multiple-free) +(assert-equal test-package::*file4* nil)