diff --git a/test/test-redundant-recompile.asd b/test/test-redundant-recompile.asd new file mode 100644 index 0000000000000000000000000000000000000000..a69d558cadaa9de26d65a967aa1f3e9c10dcd673 --- /dev/null +++ b/test/test-redundant-recompile.asd @@ -0,0 +1,16 @@ +;;; -*- Lisp -*- +(asdf:defsystem test-redundant-recompile + :components ((:file "file2" :in-order-to ((compile-op (load-op "file1")) + (load-op (load-op "file1")))) + (:file "file1"))) + +#| +;;;This test system definition attempts to replicate the excess dependencies +;;;that seem to give rise to launchpad bug 590517 +;;;(https://bugs.launchpad.net/asdf/+bug/590517) + +1) from clean, check that all fasl files build and that some function + defined in the second file is present + +2) load again. Check to make sure that nothing is recompiled. +|# diff --git a/test/test-redundant-recompile.script b/test/test-redundant-recompile.script new file mode 100644 index 0000000000000000000000000000000000000000..9f16fcba8f258a7e3bd324bd385de6ee3aa25a09 --- /dev/null +++ b/test/test-redundant-recompile.script @@ -0,0 +1,28 @@ +;;; -*- Lisp -*- +(load "script-support") +(load-asdf) + +(quit-on-error + (setf asdf:*central-registry* '(*default-pathname-defaults*)) + (asdf:operate 'asdf:load-op 'test-redundant-recompile) + ;; test that it compiled + (let* ((file1 (asdf:compile-file-pathname* "file1")) + (file2 (asdf:compile-file-pathname* "file2")) + (file1-date (file-write-date file1)) + (file2-date (file-write-date file2))) + + (format t "~&test-redundant-recompile 1: ~S ~S~%" file1 file1-date) + (format t "~&test-redundant-recompile 2: ~S ~S~%" file2 file2-date) + (assert file1-date) + (assert file2-date) + + ;; and loaded + (assert (symbol-value (find-symbol (symbol-name :*file1*) :test-package))) + + ;; now rerun the load-op and check that no files are recompiled + + ;;(trace asdf::operation-done-p asdf::traverse) + (asdf:operate 'asdf:load-op 'test-redundant-recompile) + (assert (= file1-date (file-write-date file1))) + (assert (= file2-date (file-write-date file2))))) +