diff --git a/test/defsystem-depends-on/defsystem-dependency.lisp b/test/defsystem-depends-on/defsystem-dependency.lisp index 0442efc702e424c5f2f9bfea451c8bd5db851126..c5f34a143cbfc7def1f9c01bfa9984b2e5383420 100644 --- a/test/defsystem-depends-on/defsystem-dependency.lisp +++ b/test/defsystem-depends-on/defsystem-dependency.lisp @@ -3,3 +3,9 @@ (incf *dd*) (format t "Loaded defsystem-dependency.lisp ~d time~(~:*~p~)~%" *dd*) (setf (find-class 'asdf::my-cl-source-file) (find-class 'cl-source-file)) + +(eval-when (:compile-toplevel :load-toplevel :execute) + (defvar *cdd* 0)) + +(eval-when (:compile-toplevel :execute) + (incf *cdd*)) diff --git a/test/defsystem-depends-on/overlapping-dependency.lisp b/test/defsystem-depends-on/overlapping-dependency.lisp index 68f718059b96c63ad3007ee199cc5d4c8f08466f..a923080f11d4ba883c823b26def6558893f2411c 100644 --- a/test/defsystem-depends-on/overlapping-dependency.lisp +++ b/test/defsystem-depends-on/overlapping-dependency.lisp @@ -1,3 +1,9 @@ (in-package :asdf-test) (defvar *od* 0) (incf *od*) + +(eval-when (:compile-toplevel :load-toplevel :execute) + (defvar *cod* 0)) + +(eval-when (:compile-toplevel :execute) + (incf *cod*)) diff --git a/test/test-defsystem-depends-on-phase-overlap.script b/test/test-defsystem-depends-on-phase-overlap.script index 1b1bae41b69ccfe436fc40b4b2574f024d0f455d..8c8cb112452501aee9a945956f53187f8dcc2dd6 100644 --- a/test/test-defsystem-depends-on-phase-overlap.script +++ b/test/test-defsystem-depends-on-phase-overlap.script @@ -8,14 +8,16 @@ (defvar *dd* 0) (defvar *id* 0) (defvar *ms* 0) +(defvar *cod* 0) +(defvar *cdd* 0) (defun reset-vars (&optional (x 0)) - (setf *od* x *dd* x *id* x *ms* x)) -(assert-equal (list *od* *dd* *id* *ms*) '(0 0 0 0)) + (setf *od* x *dd* x *id* x *ms* x *cod* x *cdd* x)) +(assert-equal (list *od* *dd* *id* *ms* *cod* *cdd*) '(0 0 0 0 0 0)) (DBG "Finding main-system doesn't load defsystem-dependency") (reset-vars) (find-system "main-system") -(assert-equal (list *od* *dd* *id* *ms*) '(0 0 0 0)) +(assert-equal (list *od* *dd* *id* *ms* *cod* *cdd*) '(0 0 0 0 0 0)) (DBG "Finding intermediate-dependency does load defsystem-dependency") (reset-vars) @@ -25,12 +27,18 @@ (DBG "Loading main-system doesn't reload defsystem-dependency or overlapping-dependency") (reset-vars) (load-system "main-system") -(assert-equal (list *od* *dd* *id* *ms*) '(0 0 1 1)) +(assert-equal (list *od* *dd* *id* *ms* *cod* *cdd*) '(0 0 1 1 0 0)) (DBG "Loading main-system a second time doesn't reload anything") (reset-vars) (load-system "main-system") -(assert-equal (list *od* *dd* *id* *ms*) '(0 0 0 0)) +(assert-equal (list *od* *dd* *id* *ms* *cod* *cdd*) '(0 0 0 0 0 0)) + +(DBG "Loading main-system in a different session loads but doesn't recompile") +(reset-vars) +(asdf::clear-registered-systems) +(load-system "main-system") +(assert-equal (list *od* *dd* *id* *ms* *cod* *cdd*) '(1 1 1 1 0 0)) (DBG :foo (component-sideway-dependencies (find-system "intermediate-dependency")) @@ -55,3 +63,4 @@ ;; This is what causes an issue without phase escalation: (test-system "defsystem-dependency")) (assert-equal *dd* 10) +