test-undeferred-warnings.script 2.11 KB
Newer Older
1 2 3 4 5 6 7 8 9
;;; -*- Lisp -*-

;;;---------------------------------------------------------------------------
;;; Intended to test behaviors that we see when the deferred warnings check is
;;; NOT deferred.
;;; ---------------------------------------------------------------------------

(in-package :asdf-test)

10 11
(setf asdf/session:*asdf-session* nil)

12 13
(disable-deferred-warnings-check)

14 15 16
(def-test-system :undefined-variables
  :components ((:file "fun-with-undefined-locals")))

17 18 19 20 21 22 23 24 25
;;; DEF-TEST-SYSTEM cannot parse :PERFORM arguments
#+nil(def-test-system :undefined-variables-throttled
  :components ((:file "fun-with-undefined-locals"
                  :perform (compile-op :around (op c)
                                 (declare (ignorable op c))
                                 (let ((asdf:*compile-file-warnings-behaviour* :ignore))
                                   (call-next-method))))))
(assert
 (asdf:find-system :undefined-variables-throttled))
26

27 28
;; GCL fails to warn; CMUCL, SBCL and presumably SCL defer warning to end of compilation unit;
;; SCL and XCL not actually tested
29
(format t "Check for proper errors on warning.~%")
30
(errors #+(or abcl allegro clisp clozure (and ecl (not ecl-bytecmp)) lispworks mkcl xcl) compile-file-error
31
        #+(or cmucl (and ecl ecl-bytecmp) gcl sbcl scl) null
32
        (let ((*compile-file-warnings-behaviour* :error))
33 34
          (load-system :undefined-variables :force t)))
(format t  "Check for proper warnings on warning.~%")
35
(errors #+(or abcl allegro clisp clozure (and ecl (not ecl-bytecmp)) lispworks mkcl xcl) compile-file-error
36
        #+(or cmucl (and ecl ecl-bytecmp) gcl sbcl scl) null
37 38
        (let ((*compile-file-warnings-behaviour* :warning))
          (load-system :undefined-variables :force t)))
39 40 41 42 43 44 45 46
(format t "check for undefined variable warnings to not fail a build.~%")
(assert
 (let ((*compile-file-warnings-behaviour* :ignore))
   (load-system :undefined-variables :force t)))
(format t "check for undefined variable-warnings throttled by PERFORM around method not failing a build.~%")
(assert
 (let ((*compile-file-warnings-behaviour* :error))
   (asdf:load-system :undefined-variables-throttled :force t)))