source: trunk/abcl/abcl.asd @ 13008

Last change on this file since 13008 was 13008, checked in by Mark Evenson, 11 years ago

Guard implementation specific portions of ABCL test suite.

This allows other Lisp implementations to run the ABCL test suite to
compare results, which can also be done at a per-test level within the
test files themselves if neeed.

  • Property svn:keywords set to Id
File size: 4.4 KB
Line 
1;;; -*- Mode: LISP; Syntax: COMMON-LISP -*-
2;;; $Id: abcl.asd 13008 2010-11-07 12:10:30Z mevenson $
3
4(require 'asdf)
5(defpackage :abcl-asdf
6  (:use :cl :asdf))
7(in-package :abcl-asdf)
8
9;;; Wrapper for all ABCL ASDF definitions.
10(defsystem :abcl :version "0.5.0")
11
12(defmethod perform :after ((o load-op) (c (eql (find-system :abcl))))
13  (operate 'load-op :abcl-test-lisp :force t)
14  (operate 'load-op :cl-bench :force t)
15  (operate 'load-op :ansi-compiled :force t)
16  (operate 'load-op :ansi-interpreted :force t))
17
18;;;  Run via (asdf:operate 'asdf:test-op :abcl :force t)
19(defmethod perform ((o test-op) (c (eql (find-system :abcl))))
20  (operate 'test-op :abcl-tests :force t))
21
22;;; Test ABCL with the Lisp unit tests collected in "test/lisp/abcl"
23;;;
24;;; We guard with #+abcl for tests that other Lisps cannot load.  This
25;;; could be possibly be done at finer granularity in the files
26;;; themselves.
27(defsystem :abcl-test-lisp :version "1.1" :components
28     ((:module abcl-rt
29                     :pathname "test/lisp/abcl/" :serial t :components
30         ((:file "rt-package") (:file "rt")
31                      (:file "test-utilities")))
32      (:module package  :depends-on (abcl-rt)
33         :pathname "test/lisp/abcl/" :components
34         ((:file "package")))
35            (:module test :depends-on (package)
36         :pathname "test/lisp/abcl/" :components
37                     ((: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                      (:file "mop-tests" :depends-on ("mop-tests-setup"))
47                      (:file "file-system-tests")
48                      #+abcl
49                      (:file "jar-pathname" :depends-on
50                             ("pathname-tests"))
51                      #+abcl
52                      (:file "url-pathname")
53                      (:file "math-tests")
54                      (:file "misc-tests")
55                      (:file "latin1-tests")
56                      #+abcl
57                      (:file "bugs" :depends-on ("file-system-tests"))
58                      #+abcl
59                      (:file "pathname-tests")))))
60
61(defmethod perform ((o test-op) (c (eql (find-system 'abcl-test-lisp))))
62   "Invoke tests with (asdf:oos 'asdf:test-op :abcl-test-lisp)."
63   (funcall (intern (symbol-name 'run) :abcl.test.lisp)))
64
65;;; Test ABCL with the interpreted ANSI tests
66(defsystem :ansi-interpreted :version "1.1"
67           :components
68           ((:module ansi-tests :pathname "test/lisp/ansi/" :components
69         ((:file "package")
70                (:file "parse-ansi-errors" :depends-on ("package"))))))
71(defmethod perform :before ((o test-op) (c (eql (find-system :ansi-interpreted))))
72  (operate 'load-op :ansi-interpreted))
73(defmethod perform ((o test-op) (c (eql (find-system :ansi-interpreted))))
74  (funcall (intern (symbol-name 'run) :abcl.test.ansi)
75     :compile-tests nil))
76
77;;; Test ABCL with the compiled ANSI tests
78(defsystem :ansi-compiled :version "1.1"
79           :components
80           ((:module ansi-tests :pathname "test/lisp/ansi/" :components
81         ((:file "package")
82                (:file "parse-ansi-errors" :depends-on ("package"))))))
83(defmethod perform :before ((o test-op) (c (eql (find-system :ansi-compiled))))
84  (operate 'load-op :ansi-compiled))
85(defmethod perform ((o test-op) (c (eql (find-system :ansi-compiled))))
86  (funcall (intern (symbol-name 'run) :abcl.test.ansi)
87     :compile-tests t))
88
89
90;;; Test ABCL with CL-BENCH
91(defsystem :cl-bench :components
92           ((:module cl-bench-package :pathname "../cl-bench/"
93                    :components ((:file "defpackage")))
94            (:module cl-bench-wrapper :pathname "test/lisp/cl-bench/"
95                     :depends-on (cl-bench-package) :components
96                     ((:file "wrapper")))))
97(defmethod perform :before ((o test-op) (c (eql (find-system :cl-bench))))
98  (operate 'load-op :cl-bench :force t))
99(defmethod perform ((o test-op) (c (eql (find-system :cl-bench))))
100  (funcall (intern (symbol-name 'run) :abcl.test.cl-bench)))
101 
102;;; Build ABCL from a Lisp.
103;;; aka the "Lisp-hosted build system"
104;;; Works for: abcl, sbcl, clisp, cmu, lispworks, allegro, openmcl
105(defsystem :build-abcl :components
106     ((:module build :pathname ""  :components
107         ((:file "build-abcl")
108          (:file "customizations" :depends-on ("build-abcl"))))))
109
110
111
Note: See TracBrowser for help on using the repository browser.