3 # This software is part of the SBCL system. See the README file for
6 # While most of SBCL is derived from the CMU CL system, the test
7 # files (like this one) were written from scratch after the fork
10 # This software is in the public domain and is provided with
11 # absolutely no warranty. See the COPYING and CREDITS files for
14 # Check that compiling and loading the file $1 generates an error
15 # at load time; also that just loading it directly (into the
16 # interpreter) generates an error.
19 # Test compiling and loading.
22 ;;; But loading the file should fail.
23 (multiple-value-bind (value0 value1) (ignore-errors (load *))
24 (assert (null value0))
25 (format t "VALUE1=~S (~A)~%" value1 value1)
26 (assert (typep value1 'error)))
27 (sb-ext:quit :unix-status 52)
30 echo compile-and-load $1 test failed: $?
34 # Test loading into the interpreter.
36 (multiple-value-bind (value0 value1) (ignore-errors (load "$1"))
37 (assert (null value0))
38 (format t "VALUE1=~S (~A)~%" value1 value1)
39 (assert (typep value1 'error)))
40 (sb-ext:quit :unix-status 52)
43 echo load-into-interpreter $1 test failed: $?
48 tmpfilename="clos-test-$$-tmp.lisp"
50 # This should fail, but didn't until sbcl-0.6.12.7, with Martin
51 # Atzmueller's port of Pierre Mai's fixes.
52 cat > $tmpfilename <<EOF
54 ;; This definition has too many qualifiers, so loading the
55 ;; DEFMETHOD should fail.
56 (defmethod zut progn :around ((x integer)) (print "integer"))
58 expect_load_error $tmpfilename
60 # Even before sbcl-0.6.12.7, this would fail as it should. Let's
61 # make sure that it still does.
62 cat > $tmpfilename <<EOF
64 (defgeneric zut (x) (:method-combination progn))
65 ;; This definition is missing the PROGN qualifier, and so the
66 ;; DEFMETHOD should fail.
67 (defmethod zut ((x integer)) (print "integer"))
69 expect_load_error $tmpfilename
71 # Even before sbcl-0.6.12.7, this would fail as it should, but Martin
72 # Atzmueller's port of Pierre Mai's fixes caused it to generate more
73 # correct text in the error message. We can't check that in a regression
74 # test until AI gets a mite stronger, but at least we can check that
75 # the problem is still detected.
76 cat > $tmpfilename <<EOF
78 (defgeneric zut (x) (:method-combination progn))
79 ;; This definition has too many qualifiers, so loading the
80 ;; DEFMETHOD should fail.
81 (defmethod zut progn :around ((x integer)) (print "integer"))
83 expect_load_error $tmpfilename