From: David Lichteblau Date: Fri, 5 Oct 2012 16:40:38 +0000 (+0200) Subject: Reenable ALLOCATION-INFORMATION.4, mark as known failure X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=f7ed0a1e83f34b447e621d22b6010f78171bd8ad;p=sbcl.git Reenable ALLOCATION-INFORMATION.4, mark as known failure It seems unlikely to me that the combination of features currently identified as problematic is truly accurate. More plausible seems that ALLOCATION-INFORMATION is broken and needs a bug fix. Yet the warning now given should be clear enough and allow users to report this issue. --- diff --git a/contrib/sb-introspect/sb-introspect.asd b/contrib/sb-introspect/sb-introspect.asd index a9587df..d547cc6 100644 --- a/contrib/sb-introspect/sb-introspect.asd +++ b/contrib/sb-introspect/sb-introspect.asd @@ -63,5 +63,20 @@ (make-pathname :directory (pathname-directory '#.(or *compile-file-pathname* *load-pathname*))))) - (or (funcall (intern "DO-TESTS" (find-package "SB-RT"))) - (error "~S failed" 'test-op)))) + (multiple-value-bind (soft strict pending) + (funcall (intern "DO-TESTS" (find-package "SB-RT"))) + (fresh-line) + (unless strict + #+sb-testing-contrib + ;; We create TEST-PASSED from a shell script if tests passed. But + ;; since the shell script only `touch'es it, we can actually create + ;; it ahead of time -- as long as we're certain that tests truly + ;; passed, hence the check for SOFT. + (when soft + (with-open-file (s #p"SYS:CONTRIB;SB-INTROSPECT;TEST-PASSED" + :direction :output) + (dolist (pend pending) + (format s "Expected failure: ~A~%" pend)))) + (warn "ignoring expected failures in test-op")) + (unless soft + (error "test-op failed with unexpected failures"))))) diff --git a/contrib/sb-introspect/test-driver.lisp b/contrib/sb-introspect/test-driver.lisp index 810a295..e31b2a3 100644 --- a/contrib/sb-introspect/test-driver.lisp +++ b/contrib/sb-introspect/test-driver.lisp @@ -12,6 +12,12 @@ (in-package :sb-introspect-test) +(defmacro deftest* ((name &key fails-on) form &rest results) + `(progn + (when (sb-impl::featurep ',fails-on) + (pushnew ',name sb-rt::*expected-failures*)) + (deftest ,name ,form ,@results))) + (deftest function-lambda-list.1 (function-lambda-list 'cl-user::one) (cl-user::a cl-user::b cl-user::c)) @@ -294,15 +300,18 @@ ;;; Skip the whole damn test on GENCGC PPC -- the combination is just ;;; to flaky for this to make too much sense. -;; #-(and ppc gencgc) - -;;; It appears that this test can fail due to systematic issues (possibly -;;; with the C compiler used) which we cannot detect based on *features*. -;;; Until this issue has been fixed, I am disabling this test entirely to -;;; to allow installation of the contrib on affected builds. C.f. lp1057631. -;;; --DFL -#-gencgc -(deftest allocation-information.4 +;;; +;;; -- It appears that this test can also fail due to systematic issues +;;; (possibly with the C compiler used) which we cannot detect based on +;;; *features*. Until this issue has been fixed, I am marking this test +;;; as failing on Windows to allow installation of the contrib on +;;; affected builds, even if the underlying issue is (possibly?) not even +;;; strictly related to windows. C.f. lp1057631. --DFL +;;; +(deftest* (allocation-information.4 + ;; Ignored as per the comment above, even though it seems + ;; unlikely that this is the right condition. + :fails-on (or :win32 (and :ppc :gencgc))) #+gencgc (tai #'cons :heap ;; FIXME: This is the canonical GENCGC result. On PPC we sometimes get