X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Frun-tests.lisp;h=b67497e9d2f4918b3350bb3773ebe2adb806af0d;hb=de3bfc084239fa962ef001eaa68e5b6f4b9bbf81;hp=80e28ac1a9a94557db0cc8d7cc18ff1090cfe945;hpb=69fe69971242dba6905e9c55f8ce6a9a93c9e403;p=sbcl.git diff --git a/tests/run-tests.lisp b/tests/run-tests.lisp index 80e28ac..b67497e 100644 --- a/tests/run-tests.lisp +++ b/tests/run-tests.lisp @@ -1,10 +1,9 @@ #+#.(cl:if (cl:find-package "ASDF") '(or) '(and)) -(load (merge-pathnames "../contrib/asdf/asdf.fasl")) +(require :asdf) #+#.(cl:if (cl:find-package "SB-POSIX") '(or) '(and)) -(let ((asdf:*central-registry* - (cons "../contrib/systems/" asdf:*central-registry*))) - (asdf:oos 'asdf:load-op 'sb-posix)) +(handler-bind (#+win32 (warning #'muffle-warning)) + (require :sb-posix)) (load "test-util.lisp") @@ -17,6 +16,7 @@ (defvar *all-failures* nil) (defvar *break-on-error* nil) +(defvar *report-skipped-tests* nil) (defvar *accept-files* nil) (defun run-all () @@ -26,6 +26,8 @@ (setf test-util:*break-on-failure* t)) ((string= arg "--break-on-expected-failure") (setf test-util:*break-on-expected-failure* t)) + ((string= arg "--report-skipped-tests") + (setf *report-skipped-tests* t)) (t (push (truename (parse-namestring arg)) *accept-files*)))) (pure-runner (pure-load-files) #'load-test) @@ -34,14 +36,15 @@ (impure-runner (impure-cload-files) #'cload-test) #-win32 (impure-runner (sh-files) #'sh-test) (report) - (sb-ext:quit :unix-status (if (unexpected-failures) - 1 - 104))) + (sb-ext:exit :code (if (unexpected-failures) + 1 + 104))) (defun report () (terpri) (format t "Finished running tests.~%") - (let ((skipcount 0)) + (let ((skipcount 0) + (*print-pretty* nil)) (cond (*all-failures* (format t "Status:~%") (dolist (fail (reverse *all-failures*)) @@ -54,12 +57,18 @@ "Invalid exit status:" (enough-namestring (second fail)))) ((eq (car fail) :skipped-disabled) + (when *report-skipped-tests* + (format t " ~20a ~a / ~a~%" + "Skipped (irrelevant):" + (enough-namestring (second fail)) + (third fail))) (incf skipcount)) (t (format t " ~20a ~a / ~a~%" (ecase (first fail) (:expected-failure "Expected failure:") (:unexpected-failure "Failure:") + (:leftover-thread "Leftover thread (broken):") (:unexpected-success "Unexpected success:") (:skipped-broken "Skipped (broken):") (:skipped-disabled "Skipped (irrelevant):")) @@ -120,6 +129,7 @@ ,test-util:*break-on-expected-failure*) (let ((file ,test-file) (*break-on-error* ,run-tests::*break-on-error*)) + (declare (special *break-on-error*)) (format t "// Running ~a~%" file) (restart-case (handler-bind @@ -137,7 +147,7 @@ (skip-file () (format t ">>>~a<<<~%" test-util::*failures*))) (test-util:report-test-status) - (sb-ext:quit :unix-status 104))))) + (sb-ext:exit :code 104))))) (defun impure-runner (files test-fun) (format t "// Running impure tests (~a)~%" test-fun) @@ -200,7 +210,9 @@ (list (native-namestring ,file)) :environment (test-util::test-env) :output *error-output*))) - (sb-ext:quit :unix-status (process-exit-code process)))) + (let ((*failures* nil)) + (test-util:report-test-status)) + (sb-ext:exit :code (process-exit-code process)))) (defun accept-test-file (file) (if *accept-files*