test1.script 1.26 KB
Newer Older
Daniel Barlow's avatar
Daniel Barlow committed
1
;;; -*- Lisp -*-
2
(load "script-support")
Daniel Barlow's avatar
Daniel Barlow committed
3
(load "../asdf")
4
5
6
(exit-on-error 
 (setf asdf:*central-registry* '(*default-pathname-defaults*))
 (asdf:operate 'asdf:load-op 'test1)
Daniel Barlow's avatar
Daniel Barlow committed
7

8
9
10
 ;; 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")))))
Daniel Barlow's avatar
Daniel Barlow committed
11
12
13
14

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

15
16
17
18
(exit-on-error 
 ;; 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
Daniel Barlow's avatar
Daniel Barlow committed
19

20
 (asdf::run-shell-command "rm -f ~A"
21
22
23
24
			  (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")))
Daniel Barlow's avatar
   
Daniel Barlow committed
25

26
 ;; now touch file1 and check that file2 _is_ also recompiled
Daniel Barlow's avatar
   
Daniel Barlow committed
27

28
29
 ;; 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
Daniel Barlow's avatar
   
Daniel Barlow committed
30

31
32
33
34
35
36
 (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)))
 )