abcl.asd 7.17 KB
Newer Older
1 2 3
;;; -*- Mode: LISP; Syntax: COMMON-LISP -*-
;;; $Id$

4
(require :asdf)
5
(in-package :asdf)
6

7 8
#+abcl
(eval-when (:load-toplevel :execute)
9
  (require :abcl-contrib)
10 11
  (asdf:load-system :quicklisp-abcl))

12
;;; Wrapper for all ABCL ASDF definitions.
13
(defsystem :abcl :version "1.4.0")
14

15 16
;;;  Run via (asdf:operate 'asdf:test-op :abcl :force t)
(defmethod perform ((o test-op) (c (eql (find-system :abcl))))
17 18
  (load-system (find-system :abcl-test-lisp))
  (operate 'test-op :abcl-test-lisp))
19

20
;;; Test ABCL with the Lisp unit tests collected in "test/lisp/abcl"
21 22 23 24
;;;
;;; We guard with #+abcl for tests that other Lisps cannot load.  This
;;; could be possibly be done at finer granularity in the files
;;; themselves.
25
(defsystem :abcl-test-lisp :version "1.3.0" :components
26 27
	   ((:module abcl-rt 
                     :pathname "test/lisp/abcl/" :serial t :components
28 29
		     ((:file "rt-package") 
                      (:file "rt")
30
                      (:file "test-utilities")))
31
	    (:module package  :depends-on (abcl-rt)
32
		     :pathname "test/lisp/abcl/" :components
33 34 35
		     ((:file "package")))
            (:module test :depends-on (package)
		     :pathname "test/lisp/abcl/" :components
36 37
                     ((:file "utilities")
                      (:file "compiler-tests")
38
                      (:file "condition-tests")
39
                      #+abcl
40
                      (:file "class-file")
41
                      #+abcl
42
                      (:file "metaclass")
43
                      #+abcl
44
                      (:file "mop-tests-setup")
45
                      #+abcl
46 47
                      (:file "mop-tests" :depends-on 
                             ("mop-tests-setup"))
48
                      (:file "clos-tests")
49
                      (:file "file-system-tests")
50
                      #+abcl
51
                      (:file "jar-pathname" :depends-on 
52
                             ("utilities" "pathname-tests" "file-system-tests"))
53
                      #+abcl
54
                      (:file "url-pathname")
55 56
                      (:file "math-tests" :depends-on 
                             ("compiler-tests"))
57
                      (:file "misc-tests")
58
                      (:file "latin1-tests")
59 60 61 62
                      (:file "bugs" :depends-on 
                             ("file-system-tests"))
                      (:file "wild-pathnames" :depends-on 
                             ("file-system-tests"))
63 64
                      #+abcl 
                      (:file "weak-hash-tables")
65 66
                      #+abcl 
                      (:file "zip")
67 68
                      #+abcl 
                      (:file "java")
69
                      #+abcl
70
                      (:file "pathname-tests" :depends-on 
71 72
                             ("utilities"))
                      #+abcl
73 74
                      (:file "runtime-class")
                      #+abcl
75
                      (:file "package-local-nicknames-tests")))))
76

77
(defmethod perform ((o test-op) (c (eql (find-system 'abcl-test-lisp))))
78
   "Invoke tests with (asdf:oos 'asdf:test-op :abcl-test-lisp)."
79
   (funcall (intern (symbol-name 'run) :abcl.test.lisp)))
80

81 82 83 84 85 86
;;;;
;;;; ASDF definitions and the ANSI-TEST
;;;;

;;; We refer to the ANSI-TESTS source tree, which isn't shipped as
;;; part of ABCL, but may be obtained at 
87
;;; <git+https://gitlab.common-lisp.net/ansi-test/ansi-test.git>
88 89 90 91 92 93 94 95 96 97 98 99

;;; We currently require that the ANSI-TESTS to be in a sibling
;;; directory named "ansi-tests" which should be manually synced with
;;; the contents of the SVN repository listed above.

;;; The ASDF definition for ABCL.TEST.ANSI defines VERIFY-ANSI-TESTS
;;; which provides a more useful diagnostic, but I can't seem to find
;;; a way to hook this into the ASDF:LOAD-OP phase
(defsystem :ansi-rt
  :description "Enapsulation of the REGRESSION-TEST framework use by ~
the ANSI test suite, so that we may build on its 'API'.

100
Requires that the contents of <git+https://gitlab.common-lisp.net/ansi-test/ansi-test.git> ~
101
be in a directory named '../ansi-test/'."
102
  :pathname "../ansi-test/" ;;; NB works when loaded from ASDF but not with a naked EVAL
103 104 105 106
  :default-component-class cl-source-file.lsp
  :components ((:file "rt-package")
               (:file "rt" :depends-on (rt-package))))

107 108
(defsystem :ansi-interpreted 
  :version "1.2" 
109 110
  :description "Test ABCL with the interpreted ANSI tests." 
  :depends-on (ansi-rt) :components 
111 112 113 114
  ((:module ansi-tests :pathname "test/lisp/ansi/" :components
            ((:file "packages")
             (:file "abcl-ansi" :depends-on ("packages"))
             (:file "parse-ansi-errors" :depends-on ("abcl-ansi"))))))
115
(defmethod perform :before ((o test-op) (c (eql (find-system :ansi-interpreted))))
116
  (load-system :ansi-interpreted))
117 118 119 120

(defmethod perform :after ((o load-op) (c (eql (find-system :ansi-interpreted))))
  (funcall (intern (symbol-name 'load-tests) :abcl.test.ansi)))

121 122 123 124
(defmethod perform ((o test-op) (c (eql (find-system :ansi-interpreted))))
  (funcall (intern (symbol-name 'run) :abcl.test.ansi)
	   :compile-tests nil))

125
(defsystem :ansi-compiled :version "1.2" 
126 127 128
           :description "Test ABCL with the compiled ANSI tests." 
           :depends-on (ansi-rt)
           :components 
129
           ((:module ansi-tests :pathname "test/lisp/ansi/" :components
130 131 132 133
                     ((:file "packages")
                      (:file "abcl-ansi" :depends-on ("packages"))
                      (:file "parse-ansi-errors" :depends-on ("abcl-ansi"))))))

134
(defmethod perform :before ((o test-op) (c (eql (find-system :ansi-compiled))))
135
  (load-system :ansi-compiled))
136 137 138 139
(defmethod perform ((o test-op) (c (eql (find-system :ansi-compiled))))
  (funcall (intern (symbol-name 'run) :abcl.test.ansi)
	   :compile-tests t))

140 141 142 143 144 145 146
(defsystem :cl-bench 
  :description "Test ABCL with CL-BENCH."
  :components ((:module cl-bench-package :pathname "../cl-bench/"
                        :components ((:file "defpackage")))
               (:module cl-bench-wrapper :pathname "test/lisp/cl-bench/" 
                        :depends-on (cl-bench-package) :components
                        ((:file "wrapper")))))
147
(defmethod perform :before ((o test-op) (c (eql (find-system :cl-bench))))
148
  (load-system :cl-bench))
149 150
(defmethod perform ((o test-op) (c (eql (find-system :cl-bench))))
  (funcall (intern (symbol-name 'run) :abcl.test.cl-bench)))
151
 
152
;;; Build ABCL from a Lisp.
153
;;; aka the "Lisp-hosted build system"
154
;;; Works for: abcl, sbcl, clisp, cmu, lispworks, allegro, openmcl
155
(defsystem :build-abcl :components 
156 157 158 159
	   ((:module build :pathname ""  :components
		     ((:file "build-abcl") 
		      (:file "customizations" :depends-on ("build-abcl"))))))

160 161 162 163 164 165 166 167 168 169
(defsystem :abcl-contrib
  ;; :version "1.1"
  :components ((:static-file "README")))
  ;; #+nil ((:module source :pathname "src/org/armedbear/lisp/" :components 
  ;;                       ((:file  "abcl-contrib")
  ;;                        #+nil::needs-abcl-asdf (:iri "jar-file:dist/abcl-contrib.jar"))))

;; XXX Currently need to force load via (asdf:load-system :abcl-contrib :force t)
(defmethod perform ((o load-op) (c (eql (find-system :abcl-contrib))))
 (require :abcl-contrib))
170

171 172 173 174 175 176 177
(defsystem :abcl/documentation
  :depends-on (swank)
  :components
  ((:module grovel :pathname "doc/manual/" :serial t
            :components ((:file "package")
                         (:file "grovel")))))