From bb4d316ff7adf2a2732544732f53894066a4484e Mon Sep 17 00:00:00 2001 From: "Robert P. Goldman" <rpgoldman@gmail.com> Date: Tue, 1 Jul 2014 10:30:04 -0500 Subject: [PATCH] This test version shows the failure. --- test/test-try-refinding.script | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/test/test-try-refinding.script b/test/test-try-refinding.script index 615631ac..4983e18c 100644 --- a/test/test-try-refinding.script +++ b/test/test-try-refinding.script @@ -10,9 +10,12 @@ ;;(terpri) (assert (asdf:find-system "test-asdf/force1")) +(defun clear-caches-and-search () + (setf asdf:*central-registry* nil) + (asdf/find-system:clear-defined-system "test-asdf/force1")) + (DBG "Clearing the caches and finding.") -(setf asdf:*central-registry* nil) -(asdf/find-system:clear-defined-system "test-asdf/force1") +(clear-caches-and-search) (assert (not (asdf:find-system "test-asdf/force1" nil))) (let (tried-once) (handler-bind @@ -33,3 +36,27 @@ ;; avoid infinite looping (error c))))) (asdf:find-system "test-asdf/force1"))) + +(DBG "Refinding test successful.") + +(DBG "Now trying LOAD-SYSTEM with refinding.") +(clear-caches-and-search) +(let (tried-once) + (handler-bind + ((asdf:missing-dependency-of-version + (lambda (c) + ;; Nothing Quicklisp can do to recover from this, so + ;; just resignal + (error c))) + (asdf:missing-dependency + (lambda (c) + (if (not tried-once) + (let ((missing (asdf::missing-requires c))) + (assert (equal missing "test-asdf/force1")) + (setf tried-once t) + (DBG "Trying to reset the central registry and retry.") + (setf asdf:*central-registry* *old-registry*) + (asdf:load-system missing)) + ;; avoid infinite looping + (error c))))) + (asdf:load-system "test-asdf/force1"))) -- GitLab