Commit 4711ad45 authored by Robert P. Goldman's avatar Robert P. Goldman
Browse files

Added test attempting to validate bug 590517.

Added a test in which the system (test-redundant-recompile) is intended to
have :in-order-to values that echo the ones reported to cause redundant
recompilation in bug 590517.

I have still been unable to replicate this phenomenon, however.
parent a923121f
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
;;; -*- 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.
|#
+28 −0
Original line number Diff line number Diff line
;;; -*- 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)))))