On Mon, Aug 11, 2014 at 10:36 AM, Faré fahree@gmail.com wrote:
On Mon, Aug 11, 2014 at 10:19 AM, Robert P. Goldman rpgoldman@sift.info wrote:
Thanks to both of you for your work on this patch.
I'm going to hold off on applying any patches, though, until there's a test case.
Dave, I understand that it might be hard to wrap your head around the test script code, so let's start by brainstorming what the test should do, rather than digging in and getting confused with the details of implementation.
I believe what is wanted is a test where we make an image with some system preloaded, try to mark it as immutable, and then check to see if it's reloaded. Is that correct?
I think you'd want to (1) compile a bundle from one slave process, or in the master process then delete suitable packages and clear-defined-systems. (2) in another slave process (or master process, after clean up), load the bundle and call register-immutable-system, then ((re)configure asdf if needed) and try to load the system, and see that the system loading was a success yet that the .asd file wasn't loaded (e.g. the .asd can contain a defpackage or defparameter that you check didn't happen)
Considering that it can be done without a slave process if only you clean up, maybe the best place for that isn't the test-program.script, but test-bundle.script.
Now that I think of it, the test should also compare the situation with not using register-immutable-system, so first try to load, cleanup, reload, and check that reload happens; then cleanup, register-immutable-system, and check that reload does not happen. Also, check that the system doesn't disappear when you try to clear it.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org A tautology is a thing which is tautological.