diff options
Diffstat (limited to 'Lisp/asdf/test')
-rw-r--r-- | Lisp/asdf/test/file1.lisp | 4 | ||||
-rw-r--r-- | Lisp/asdf/test/file2.lisp | 2 | ||||
-rw-r--r-- | Lisp/asdf/test/file3.lisp | 4 | ||||
-rw-r--r-- | Lisp/asdf/test/file4.lisp | 2 | ||||
-rw-r--r-- | Lisp/asdf/test/run-tests.sh | 39 | ||||
-rw-r--r-- | Lisp/asdf/test/test1.asd | 12 | ||||
-rw-r--r-- | Lisp/asdf/test/test1.script | 32 | ||||
-rw-r--r-- | Lisp/asdf/test/test2.asd | 8 | ||||
-rw-r--r-- | Lisp/asdf/test/test2.script | 19 | ||||
-rw-r--r-- | Lisp/asdf/test/test2a.asd | 12 | ||||
-rw-r--r-- | Lisp/asdf/test/test2b1.asd | 8 | ||||
-rw-r--r-- | Lisp/asdf/test/test2b2.asd | 8 | ||||
-rw-r--r-- | Lisp/asdf/test/test2b3.asd | 8 | ||||
-rw-r--r-- | Lisp/asdf/test/test3.asd | 11 | ||||
-rw-r--r-- | Lisp/asdf/test/test3.script | 23 | ||||
-rw-r--r-- | Lisp/asdf/test/test4.script | 8 | ||||
-rw-r--r-- | Lisp/asdf/test/wild-module.asd | 6 | ||||
-rw-r--r-- | Lisp/asdf/test/wild-module.script | 7 |
18 files changed, 213 insertions, 0 deletions
diff --git a/Lisp/asdf/test/file1.lisp b/Lisp/asdf/test/file1.lisp new file mode 100644 index 0000000..3612a2b --- /dev/null +++ b/Lisp/asdf/test/file1.lisp @@ -0,0 +1,4 @@ +(defpackage :test-package (:use :cl)) +(in-package :test-package) +(defvar *file1* t) + diff --git a/Lisp/asdf/test/file2.lisp b/Lisp/asdf/test/file2.lisp new file mode 100644 index 0000000..a8192bb --- /dev/null +++ b/Lisp/asdf/test/file2.lisp @@ -0,0 +1,2 @@ +(in-package :test-package) +(assert *file1*) diff --git a/Lisp/asdf/test/file3.lisp b/Lisp/asdf/test/file3.lisp new file mode 100644 index 0000000..0ed2df7 --- /dev/null +++ b/Lisp/asdf/test/file3.lisp @@ -0,0 +1,4 @@ +(defpackage :test-package (:use :cl)) +(in-package :test-package) +(defvar *file3* t) + diff --git a/Lisp/asdf/test/file4.lisp b/Lisp/asdf/test/file4.lisp new file mode 100644 index 0000000..45a709a --- /dev/null +++ b/Lisp/asdf/test/file4.lisp @@ -0,0 +1,2 @@ +(in-package :test-package) +(assert *file3*) diff --git a/Lisp/asdf/test/run-tests.sh b/Lisp/asdf/test/run-tests.sh new file mode 100644 index 0000000..0c4f87e --- /dev/null +++ b/Lisp/asdf/test/run-tests.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +do_tests() { +rm *.$2 || true +( cd .. && echo '(compile-file "asdf")' |$1 ) +for i in *.script; +do + rm *.$2 || true + if $1 < $i ;then + echo "Using $1, $i passed" >&2 + else + echo "Using $1, $i failed" >&2 + exit 1 + fi +done +echo "Using $1, all tests apparently successful" >&2 +} + +# do_tests {lisp invocation} {fasl extension} +# - read lisp forms one at a time from standard input +# - quit with exit status 0 on getting eof +# - quit with exit status >0 if an unhandled error occurs + +set -e + +if type sbcl +then + do_tests "sbcl --userinit /dev/null --sysinit /dev/null --noprogrammer" fasl +fi + +if [ -x /usr/bin/lisp ] +then + do_tests "/usr/bin/lisp -batch -noinit" x86f +fi + +if [ -x /usr/bin/clisp ] +then + do_tests "/usr/bin/clisp -norc -ansi -I " fas +fi diff --git a/Lisp/asdf/test/test1.asd b/Lisp/asdf/test/test1.asd new file mode 100644 index 0000000..423d796 --- /dev/null +++ b/Lisp/asdf/test/test1.asd @@ -0,0 +1,12 @@ +;;; -*- Lisp -*- +(asdf:defsystem test1 + :components ((:file "file2" :in-order-to ((compile-op (load-op "file1")))) + (:file "file1"))) + +#| +1) from clean, check that all fasl files build and that some function + defined in the second file is present + +2) delete the second fasl file, and build again. do test 1 again and + also check the date on file1.fasl +|# diff --git a/Lisp/asdf/test/test1.script b/Lisp/asdf/test/test1.script new file mode 100644 index 0000000..f39882c --- /dev/null +++ b/Lisp/asdf/test/test1.script @@ -0,0 +1,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))) diff --git a/Lisp/asdf/test/test2.asd b/Lisp/asdf/test/test2.asd new file mode 100644 index 0000000..344d17f --- /dev/null +++ b/Lisp/asdf/test/test2.asd @@ -0,0 +1,8 @@ +;;; -*- Lisp -*- +(asdf:defsystem test2b + :version "1.0" + :components ((:file "file2" :in-order-to ((compile-op (load-op "file1")))) + (:file "file1")) + :depends-on (version 'test2a "1.1")) + + diff --git a/Lisp/asdf/test/test2.script b/Lisp/asdf/test/test2.script new file mode 100644 index 0000000..bca6012 --- /dev/null +++ b/Lisp/asdf/test/test2.script @@ -0,0 +1,19 @@ +;;; -*- Lisp -*- +(load "../asdf") +(setf asdf:*central-registry* '(*default-pathname-defaults*)) +;(trace asdf::perform) +;(trace asdf::find-component) +;(trace asdf::traverse) +(asdf:oos 'asdf:load-op 'test2b1) +(assert (and (probe-file (compile-file-pathname "file3")) + (probe-file (compile-file-pathname "file4")))) +(handler-case + (asdf:oos 'asdf:load-op 'test2b2) + (asdf:missing-dependency (c) + (format t "load failed as expected: - ~%~A~%" c)) + (:no-error (c) (error "should have failed, oops"))) +(handler-case + (asdf:oos 'asdf:load-op 'test2b3) + (asdf:missing-dependency (c) + (format t "load failed as expected: - ~%~A~%" c)) + (:no-error (c) (error "should have failed, oops"))) diff --git a/Lisp/asdf/test/test2a.asd b/Lisp/asdf/test/test2a.asd new file mode 100644 index 0000000..0e031db --- /dev/null +++ b/Lisp/asdf/test/test2a.asd @@ -0,0 +1,12 @@ +;;; -*- Lisp -*- +(asdf:defsystem test2a + :version "1.1" + :components ((:file "file4" :in-order-to ((compile-op (load-op "file3")))) + (:file "file3"))) +#| +this system is referenced by test2b[12] +|# + + + + diff --git a/Lisp/asdf/test/test2b1.asd b/Lisp/asdf/test/test2b1.asd new file mode 100644 index 0000000..985b352 --- /dev/null +++ b/Lisp/asdf/test/test2b1.asd @@ -0,0 +1,8 @@ +;;; -*- Lisp -*- +(asdf:defsystem test2b1 + :version "1.0" + :components ((:file "file2" :in-order-to ((compile-op (load-op "file1")))) + (:file "file1")) + :in-order-to ((load-op (load-op (version test2a "1.1"))))) + + diff --git a/Lisp/asdf/test/test2b2.asd b/Lisp/asdf/test/test2b2.asd new file mode 100644 index 0000000..3344fcd --- /dev/null +++ b/Lisp/asdf/test/test2b2.asd @@ -0,0 +1,8 @@ +;;; -*- Lisp -*- +(asdf:defsystem test2b2 + :version "1.0" + :components ((:file "file2" :in-order-to ((compile-op (load-op "file1")))) + (:file "file1")) + :in-order-to ((load-op (load-op (version test2a "1.2"))))) + + diff --git a/Lisp/asdf/test/test2b3.asd b/Lisp/asdf/test/test2b3.asd new file mode 100644 index 0000000..36771cc --- /dev/null +++ b/Lisp/asdf/test/test2b3.asd @@ -0,0 +1,8 @@ +;;; -*- Lisp -*- +(asdf:defsystem test2b3 + :version "1.0" + :components ((:file "file2" :in-order-to ((compile-op (load-op "file1")))) + (:file "file1")) + :depends-on (bet-you-cant-find-this)) + + diff --git a/Lisp/asdf/test/test3.asd b/Lisp/asdf/test/test3.asd new file mode 100644 index 0000000..10f82c9 --- /dev/null +++ b/Lisp/asdf/test/test3.asd @@ -0,0 +1,11 @@ +;;; -*- Lisp -*- +(asdf:defsystem test3 + :properties ((:prop1 . "value")) + :components + ((:module "deps" + :if-component-dep-fails :try-next + :pathname "." + :components + ((:file "file1" :in-order-to ((compile-op (feature :f1)))) + (:file "file2" :in-order-to ((compile-op (feature :f2)))))))) + diff --git a/Lisp/asdf/test/test3.script b/Lisp/asdf/test/test3.script new file mode 100644 index 0000000..170d4c5 --- /dev/null +++ b/Lisp/asdf/test/test3.script @@ -0,0 +1,23 @@ +;;; -*- Lisp -*- +#+(or f1 f2) + (error "This test cannot run if :f1 or :f2 are on *features*") +(load "../asdf") +(asdf:run-shell-command "rm ~A ~A" + (namestring (compile-file-pathname "file1")) + (namestring (compile-file-pathname "file2"))) +(setf asdf:*central-registry* '(*default-pathname-defaults*)) +(in-package :asdf) +(handler-case + (asdf:oos 'asdf:load-op 'test3) + (asdf:missing-dependency (c) + (format t "first test failed as expected: - ~%~A~%" c)) + (:no-error (c) (error "should have failed, oops"))) +(pushnew :f1 *features*) +(asdf:oos 'asdf:load-op 'test3) +(assert (probe-file (compile-file-pathname "file1"))) +(assert (not (probe-file (compile-file-pathname "file2")))) +(run-shell-command "rm ~A" (namestring (compile-file-pathname "file1"))) +(setf *features* (cons :f2 (cdr *features*))) +(asdf:oos 'asdf:load-op 'test3) +(assert (probe-file (compile-file-pathname "file2"))) +(assert (not (probe-file (compile-file-pathname "file1")))) diff --git a/Lisp/asdf/test/test4.script b/Lisp/asdf/test/test4.script new file mode 100644 index 0000000..e0ca859 --- /dev/null +++ b/Lisp/asdf/test/test4.script @@ -0,0 +1,8 @@ +;;; -*- Lisp -*- +(load "../asdf") +(setf asdf:*central-registry* '(*default-pathname-defaults*)) +(in-package :asdf) +(assert (not (component-property (find-system 'test3) :foo))) +(assert (equal (component-property (find-system 'test3) :prop1) "value")) +(setf (component-property (find-system 'test3) :foo) "bar") +(assert (equal (component-property (find-system 'test3) :foo) "bar")) diff --git a/Lisp/asdf/test/wild-module.asd b/Lisp/asdf/test/wild-module.asd new file mode 100644 index 0000000..8c09008 --- /dev/null +++ b/Lisp/asdf/test/wild-module.asd @@ -0,0 +1,6 @@ +;;; -*- Lisp -*- + +(asdf:defsystem wild-module + :version "0.0" + :components ((:wild-module "systems" + :pathname "*.asd"))) diff --git a/Lisp/asdf/test/wild-module.script b/Lisp/asdf/test/wild-module.script new file mode 100644 index 0000000..c514693 --- /dev/null +++ b/Lisp/asdf/test/wild-module.script @@ -0,0 +1,7 @@ +;;; -*- Lisp -*- + +(load "../asdf") +(load "../wild-modules") + +(setf asdf:*central-registry* '(*default-pathname-defaults*)) +(asdf:operate 'asdf:load-op 'wild-module) |