From cca259c411025e71f984990d8d0860e478173983 Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau <tunes@google.com> Date: Thu, 10 Jan 2013 23:58:48 -0500 Subject: [PATCH] Fix tests broken by recent touch changes. --- test/test-encodings.script | 4 +++- test/test-force.script | 4 ++-- test/test-missing-lisp-file.asd | 5 ----- test/test-missing-lisp-file.script | 11 ++++++----- test/test-static-and-serial.script | 6 +++--- test/test-touch-system-1.script | 29 ++++++++++++++++------------- test/test1.script | 11 +++++++---- 7 files changed, 37 insertions(+), 33 deletions(-) delete mode 100644 test/test-missing-lisp-file.asd diff --git a/test/test-encodings.script b/test/test-encodings.script index cd975c10..79e8ed6a 100644 --- a/test/test-encodings.script +++ b/test/test-encodings.script @@ -43,7 +43,9 @@ (defsystem :test-encoding-explicit-u8 :components ((:file "lambda" :encoding :utf-8)))) - #+(and asdf-unicode (or clozure sbcl)) + ;; NB: recent clozure can autodetect without asdf-encodings with :default (!) + + #+(and asdf-unicode sbcl) (progn #+clozure (setf ccl:*default-external-format* :latin3) #+sbcl (setf sb-impl::*default-external-format* :latin-3) diff --git a/test/test-force.script b/test/test-force.script index 7f12c5f5..50f18c4e 100644 --- a/test/test-force.script +++ b/test/test-force.script @@ -15,8 +15,8 @@ (assert file1-date) ;; unforced, date should stay same - (touch-file "file1.lisp" date1) - (touch-file file1 date2) + (touch-file "file1.lisp" :timestamp date1) + (touch-file file1 :timestamp date2) (asdf:operate 'asdf:load-op 'test-force) (assert (equal (file-write-date file1) date2)) diff --git a/test/test-missing-lisp-file.asd b/test/test-missing-lisp-file.asd deleted file mode 100644 index 605b4fcf..00000000 --- a/test/test-missing-lisp-file.asd +++ /dev/null @@ -1,5 +0,0 @@ -;;; -*- Lisp -*- -(asdf:defsystem test-missing-lisp-file - :components ((:file "file2" :in-order-to ((compile-op (load-op "fileMissing")) - (load-op (load-op "fileMissing")))) - (:file "fileMissing"))) diff --git a/test/test-missing-lisp-file.script b/test/test-missing-lisp-file.script index ea4e48f9..41067190 100644 --- a/test/test-missing-lisp-file.script +++ b/test/test-missing-lisp-file.script @@ -10,7 +10,10 @@ (load-asdf) (quit-on-error - (setf asdf:*central-registry* '(*default-pathname-defaults*)) + (asdf:defsystem test-missing-lisp-file + :components ((:file "file2" :in-order-to ((compile-op (load-op "fileMissing")) + (load-op (load-op "fileMissing")))) + (:file "fileMissing"))) (let ((missing-name (namestring (make-pathname :name "fileMissing" :type "lisp" @@ -21,8 +24,7 @@ :type "lisp" :defaults *default-pathname-defaults*)))) - (asdf::run-shell-command - (format nil "cp ~a ~a" template-file missing-name)) + (asdf::concatenate-files (list template-file) missing-name) (unless (probe-file missing-name) (format t "File copy failed.~%")) (asdf:operate 'asdf:load-op 'test-missing-lisp-file) @@ -38,9 +40,8 @@ (assert (symbol-value (find-symbol (symbol-name :*file1*) :test-package))) ;; now remove the lisp file we created, and wait for an error - (sleep 1) ; mtime has 1-second granularity, so pause here for fast machines - (asdf::run-shell-command (format nil "rm -f ~A" missing-name)) + (asdf::delete-file-if-exists missing-name) ;; we shouldn't be able to find the input-file for the compile-op, and that ;; should be an error. (let ((err (nth-value 1 (ignore-errors (asdf:operate 'asdf:load-op 'test-missing-lisp-file))))) diff --git a/test/test-static-and-serial.script b/test/test-static-and-serial.script index a362bcd5..97d7221e 100644 --- a/test/test-static-and-serial.script +++ b/test/test-static-and-serial.script @@ -23,8 +23,8 @@ ;; date should stay same (asdf:clear-system 'static-and-serial) - (touch-file "file2.lisp" date1) - (touch-file "file1.lisp" date2) - (touch-file file1 date3) + (touch-file "file2.lisp" :timestamp date1) + (touch-file "file1.lisp" :timestamp date2) + (touch-file file1 :timestamp date3) (asdf:operate 'asdf:load-op 'static-and-serial) (assert (equal (file-write-date file1) date3)))) diff --git a/test/test-touch-system-1.script b/test/test-touch-system-1.script index 70d5b490..518f16a3 100644 --- a/test/test-touch-system-1.script +++ b/test/test-touch-system-1.script @@ -10,17 +10,20 @@ (let ((data (asdf::system-registered-p name))) (when data (car data))))) - (setf asdf:*central-registry* '(*default-pathname-defaults*)) - (asdf:find-system :test1) - (let ((date1 (system-load-time :test1)) - (file (namestring (merge-pathnames "test1.asd")))) - (assert date1) - (assert file) - (sleep 1) - (touch-file file) + (let* ((file "test1.asd") + (date1 (file-write-date file)) + (date2 (- date1 600)) + (date3 (- date1 300))) + (touch-file file :timestamp date2) (asdf:find-system :test1) - (let ((date2 (system-load-time :test1))) - (print (list date1 date2)) - (assert date2) - (assert (> date2 date1)))))) - + (let ((date4 (file-write-date (asdf::compile-file-pathname* "file1.lisp"))) + (date5 (system-load-time :test1))) + (DBG :blah date2 date3 date4 date5) + (assert-equal date2 date5) + (assert (>= date4 date3)) + (sleep 1) + (touch-file file) + (asdf:find-system :test1) + (let ((date6 (system-load-time :test1))) + (assert (> date6 date4))))))) + \ No newline at end of file diff --git a/test/test1.script b/test/test1.script index 9cdf96e0..6a8b8199 100644 --- a/test/test1.script +++ b/test/test1.script @@ -10,24 +10,27 @@ (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))) + (file2-date (file-write-date file1))) (DBG "test that it compiled" file1 file1-date) (assert file1-date) (assert file2-date) + (touch-file file1 :timestamp (- file1-date 200)) + (touch-file file2 :timestamp (- file1-date 100)) (DBG "and loaded") (assert (symbol-value (find-symbol (symbol-name :*file1*) :test-package))) (DBG "now remove file2 that depends-on file1" file1-date (- file1-date 120)) - (touch-file file1 :timestamp (- file1-date 120)) ;; move file1.fasl two minutes ago. - (assert-equal (- file1-date 120) (file-write-date file1)) + (touch-file file1 :timestamp (- file1-date 150)) ;; move file1.fasl two minutes ago. + (assert-equal (- file1-date 150) (file-write-date file1)) (asdf::delete-file-if-exists file2) + (DBG "load again") (asdf:clear-system 'test1) (asdf:load-system 'test1) (DBG "check that file1 is _not_ recompiled, but file2 is" (file-write-date file1)) - (assert-equal (- file1-date 120) (file-write-date file1)) + (assert-equal (- file1-date 150) (file-write-date file1)) (assert (<= file2-date (file-write-date file2))) (DBG "now touch file1 and check that file2 _is_ also recompiled") -- GitLab