aboutsummaryrefslogtreecommitdiffstats
path: root/Lisp/asdf/test/test1.script
blob: f39882c0f0a1a7f9bbb5bea6b71074842bfc92b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
;;; -*- Lisp -*-
(load "../asdf")
(setf asdf:*central-registry* '(*default-pathname-defaults*))
(asdf:operate 'asdf:load-op 'test1)

;; test that it compiled
(defvar file1-date (file-write-date (compile-file-pathname "file1")))
(assert (and file1-date (file-write-date (compile-file-pathname "file2"))))

;; and loaded
(assert test-package::*file1*)

;; now remove one output file and check that the other is _not_
;; recompiled
(sleep 1) ; mtime has 1-second granularity, so pause here for fast machines

(asdf::run-shell-command "rm ~A"
			 (namestring (compile-file-pathname "file2")))
(asdf:operate 'asdf:load-op 'test1)
(assert (= file1-date (file-write-date (compile-file-pathname "file1"))))
(assert (file-write-date (compile-file-pathname "file2")))

;; now touch file1 and check that file2 _is_ also recompiled

;; XXX run-shell-command loses if *default-pathname-defaults* is not the
;; unix cwd.  this is not a problem for run-tests.sh, but can be in general

(let ((before (file-write-date (compile-file-pathname "file2"))))
  (asdf::run-shell-command "touch file1.lisp")
  (sleep 1)
  (asdf:operate 'asdf:load-op 'test1)
  (assert (>  (file-write-date (compile-file-pathname "file2")) before)))