| 1 | ;;; -*- Mode: LISP; Syntax: COMMON-LISP -*- |
|---|
| 2 | ;;; $Id: abcl.asd 14698 2014-04-27 14:12:38Z mevenson $ |
|---|
| 3 | |
|---|
| 4 | (require 'asdf) |
|---|
| 5 | (in-package :asdf) |
|---|
| 6 | |
|---|
| 7 | ;;; Wrapper for all ABCL ASDF definitions. |
|---|
| 8 | (defsystem :abcl :version "0.6.0") |
|---|
| 9 | |
|---|
| 10 | ;;; Run via (asdf:operate 'asdf:test-op :abcl :force t) |
|---|
| 11 | (defmethod perform ((o test-op) (c (eql (find-system :abcl)))) |
|---|
| 12 | (load-system (find-system :abcl-test-lisp)) |
|---|
| 13 | (operate 'test-op :abcl-test-lisp)) |
|---|
| 14 | |
|---|
| 15 | ;;; Test ABCL with the Lisp unit tests collected in "test/lisp/abcl" |
|---|
| 16 | ;;; |
|---|
| 17 | ;;; We guard with #+abcl for tests that other Lisps cannot load. This |
|---|
| 18 | ;;; could be possibly be done at finer granularity in the files |
|---|
| 19 | ;;; themselves. |
|---|
| 20 | (defsystem :abcl-test-lisp :version "1.3.0" :components |
|---|
| 21 | ((:module abcl-rt |
|---|
| 22 | :pathname "test/lisp/abcl/" :serial t :components |
|---|
| 23 | ((:file "rt-package") |
|---|
| 24 | (:file "rt") |
|---|
| 25 | (:file "test-utilities"))) |
|---|
| 26 | (:module package :depends-on (abcl-rt) |
|---|
| 27 | :pathname "test/lisp/abcl/" :components |
|---|
| 28 | ((:file "package"))) |
|---|
| 29 | (:module test :depends-on (package) |
|---|
| 30 | :pathname "test/lisp/abcl/" :components |
|---|
| 31 | ((:file "utilities") |
|---|
| 32 | (:file "compiler-tests") |
|---|
| 33 | (:file "condition-tests") |
|---|
| 34 | #+abcl |
|---|
| 35 | (:file "class-file") |
|---|
| 36 | #+abcl |
|---|
| 37 | (:file "metaclass") |
|---|
| 38 | #+abcl |
|---|
| 39 | (:file "mop-tests-setup") |
|---|
| 40 | #+abcl |
|---|
| 41 | (:file "mop-tests" :depends-on |
|---|
| 42 | ("mop-tests-setup")) |
|---|
| 43 | (:file "clos-tests") |
|---|
| 44 | (:file "file-system-tests") |
|---|
| 45 | #+abcl |
|---|
| 46 | (:file "jar-pathname" :depends-on |
|---|
| 47 | ("utilities" "pathname-tests" "file-system-tests")) |
|---|
| 48 | #+abcl |
|---|
| 49 | (:file "url-pathname") |
|---|
| 50 | (:file "math-tests" :depends-on |
|---|
| 51 | ("compiler-tests")) |
|---|
| 52 | (:file "misc-tests") |
|---|
| 53 | (:file "latin1-tests") |
|---|
| 54 | (:file "bugs" :depends-on |
|---|
| 55 | ("file-system-tests")) |
|---|
| 56 | (:file "wild-pathnames" :depends-on |
|---|
| 57 | ("file-system-tests")) |
|---|
| 58 | #+abcl |
|---|
| 59 | (:file "weak-hash-tables") |
|---|
| 60 | #+abcl |
|---|
| 61 | (:file "zip") |
|---|
| 62 | #+abcl |
|---|
| 63 | (:file "java") |
|---|
| 64 | #+abcl |
|---|
| 65 | (:file "pathname-tests" :depends-on |
|---|
| 66 | ("utilities")) |
|---|
| 67 | #+abcl |
|---|
| 68 | (:file "package-local-nicknames-tests"))))) |
|---|
| 69 | |
|---|
| 70 | (defmethod perform ((o test-op) (c (eql (find-system 'abcl-test-lisp)))) |
|---|
| 71 | "Invoke tests with (asdf:oos 'asdf:test-op :abcl-test-lisp)." |
|---|
| 72 | (funcall (intern (symbol-name 'run) :abcl.test.lisp))) |
|---|
| 73 | |
|---|
| 74 | ;;;; |
|---|
| 75 | ;;;; ASDF definitions and the ANSI-TEST |
|---|
| 76 | ;;;; |
|---|
| 77 | |
|---|
| 78 | ;;; We refer to the ANSI-TESTS source tree, which isn't shipped as |
|---|
| 79 | ;;; part of ABCL, but may be obtained at |
|---|
| 80 | ;;; <svn://common-lisp.net/project/ansi-test/svn/trunk/ansi-tests>. |
|---|
| 81 | |
|---|
| 82 | ;;; We currently require that the ANSI-TESTS to be in a sibling |
|---|
| 83 | ;;; directory named "ansi-tests" which should be manually synced with |
|---|
| 84 | ;;; the contents of the SVN repository listed above. |
|---|
| 85 | |
|---|
| 86 | ;;; The ASDF definition for ABCL.TEST.ANSI defines VERIFY-ANSI-TESTS |
|---|
| 87 | ;;; which provides a more useful diagnostic, but I can't seem to find |
|---|
| 88 | ;;; a way to hook this into the ASDF:LOAD-OP phase |
|---|
| 89 | (defsystem :ansi-rt |
|---|
| 90 | :description "Enapsulation of the REGRESSION-TEST framework use by ~ |
|---|
| 91 | the ANSI test suite, so that we may build on its 'API'. |
|---|
| 92 | |
|---|
| 93 | Requires that the contents of <svn://common-lisp.net/project/ansi-test/svn/trunk/ansi-tests> ~ |
|---|
| 94 | be in a directory named '../ansi-test/'." |
|---|
| 95 | :pathname "../ansi-tests/" ;;; NB works when loaded from ASDF but not with a naked EVAL |
|---|
| 96 | :default-component-class cl-source-file.lsp |
|---|
| 97 | :components ((:file "rt-package") |
|---|
| 98 | (:file "rt" :depends-on (rt-package)))) |
|---|
| 99 | |
|---|
| 100 | (defsystem :ansi-interpreted |
|---|
| 101 | :version "1.2" |
|---|
| 102 | :description "Test ABCL with the interpreted ANSI tests." |
|---|
| 103 | :depends-on (ansi-rt) :components |
|---|
| 104 | ((:module ansi-tests :pathname "test/lisp/ansi/" :components |
|---|
| 105 | ((:file "packages") |
|---|
| 106 | (:file "abcl-ansi" :depends-on ("packages")) |
|---|
| 107 | (:file "parse-ansi-errors" :depends-on ("abcl-ansi")))))) |
|---|
| 108 | (defmethod perform :before ((o test-op) (c (eql (find-system :ansi-interpreted)))) |
|---|
| 109 | (load-system :ansi-interpreted)) |
|---|
| 110 | |
|---|
| 111 | (defmethod perform :after ((o load-op) (c (eql (find-system :ansi-interpreted)))) |
|---|
| 112 | (funcall (intern (symbol-name 'load-tests) :abcl.test.ansi))) |
|---|
| 113 | |
|---|
| 114 | (defmethod perform ((o test-op) (c (eql (find-system :ansi-interpreted)))) |
|---|
| 115 | (funcall (intern (symbol-name 'run) :abcl.test.ansi) |
|---|
| 116 | :compile-tests nil)) |
|---|
| 117 | |
|---|
| 118 | (defsystem :ansi-compiled :version "1.2" |
|---|
| 119 | :description "Test ABCL with the compiled ANSI tests." |
|---|
| 120 | :depends-on (ansi-rt) |
|---|
| 121 | :components |
|---|
| 122 | ((:module ansi-tests :pathname "test/lisp/ansi/" :components |
|---|
| 123 | ((:file "packages") |
|---|
| 124 | (:file "abcl-ansi" :depends-on ("packages")) |
|---|
| 125 | (:file "parse-ansi-errors" :depends-on ("abcl-ansi")))))) |
|---|
| 126 | |
|---|
| 127 | (defmethod perform :before ((o test-op) (c (eql (find-system :ansi-compiled)))) |
|---|
| 128 | (load-system :ansi-compiled)) |
|---|
| 129 | (defmethod perform ((o test-op) (c (eql (find-system :ansi-compiled)))) |
|---|
| 130 | (funcall (intern (symbol-name 'run) :abcl.test.ansi) |
|---|
| 131 | :compile-tests t)) |
|---|
| 132 | |
|---|
| 133 | (defsystem :cl-bench |
|---|
| 134 | :description "Test ABCL with CL-BENCH." |
|---|
| 135 | :components ((:module cl-bench-package :pathname "../cl-bench/" |
|---|
| 136 | :components ((:file "defpackage"))) |
|---|
| 137 | (:module cl-bench-wrapper :pathname "test/lisp/cl-bench/" |
|---|
| 138 | :depends-on (cl-bench-package) :components |
|---|
| 139 | ((:file "wrapper"))))) |
|---|
| 140 | (defmethod perform :before ((o test-op) (c (eql (find-system :cl-bench)))) |
|---|
| 141 | (load-system :cl-bench)) |
|---|
| 142 | (defmethod perform ((o test-op) (c (eql (find-system :cl-bench)))) |
|---|
| 143 | (funcall (intern (symbol-name 'run) :abcl.test.cl-bench))) |
|---|
| 144 | |
|---|
| 145 | ;;; Build ABCL from a Lisp. |
|---|
| 146 | ;;; aka the "Lisp-hosted build system" |
|---|
| 147 | ;;; Works for: abcl, sbcl, clisp, cmu, lispworks, allegro, openmcl |
|---|
| 148 | (defsystem :build-abcl :components |
|---|
| 149 | ((:module build :pathname "" :components |
|---|
| 150 | ((:file "build-abcl") |
|---|
| 151 | (:file "customizations" :depends-on ("build-abcl")))))) |
|---|
| 152 | |
|---|
| 153 | (defsystem :abcl-contrib |
|---|
| 154 | ;; :version "1.1" |
|---|
| 155 | :components ((:static-file "README"))) |
|---|
| 156 | ;; #+nil ((:module source :pathname "src/org/armedbear/lisp/" :components |
|---|
| 157 | ;; ((:file "abcl-contrib") |
|---|
| 158 | ;; #+nil::needs-abcl-asdf (:iri "jar-file:dist/abcl-contrib.jar")))) |
|---|
| 159 | |
|---|
| 160 | ;; XXX Currently need to force load via (asdf:load-system :abcl-contrib :force t) |
|---|
| 161 | (defmethod perform ((o load-op) (c (eql (find-system :abcl-contrib)))) |
|---|
| 162 | (require :abcl-contrib)) |
|---|
| 163 | |
|---|