So is this done so that prove can damage its internal state while testing? So that you need to force the tests to reload if you want to rerun?
If so, can't the same objective be achieved more cleanly by adding a special method for OPERATION-DONE-P on PROVE's TEST-FILE class?
On 18 Oct 2017, at 8:41, Faré wrote:
On Wed, Oct 18, 2017 at 9:25 AM, Chream iz chream33@gmail.com wrote:
Hi, I am also getting this error when trying to run (asdf:test-system ....). It is also not finding the test-files but that might be an but in the prove package?
:defsystem-depends-on (:prove-asdf) :perform (test-op :after (op c) (funcall (intern #.(string :run-test-system) :prove-asdf) c) (asdf:clear-system c)))
There is your culprit: clear-system should NEVER be called within perform. It's removing the rug under ASDF as it's running -- very BAD, especially if there are many build phases. Unhappily, prove and other prove-based system skeletons (e.g. from caveman) have made this pattern popular. I sent patches to prove & al. at least six months ago, and wrote about this anti-pattern in my "best_practices" document, but I suppose the message didn't go around yet. Maybe I should make it an error for clear-system to be called from within an active asdf-session?
Stas, if you also use clear-system this way, you also lose for that reason.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Young man, in mathematics you don't understand things, you just get used to them. — John von Neumann (1903-1957)