There are other uses for it already. We have t/apr-ext tests which require no running server at all. a magic directory sounds good to me. I'd even suggest having two of them - one for pre-start and one for post-stop. e.g.:
t/pre-start/ t/post-stop/
yeah, I was thinking about balancing them out. good idea.
The only issue is with Test::Harness, we will need to somehow feed tests to it so it'll take them all as one bunch, while we have to run first t/pre-start/ test, followed by normal tests, followed by t/post-stop/ tests.
that doesn't seem too hard. TestRun::run is pretty simple. the problem isparsing out the test files and making sure that all those custom options (subtests, all.t, etc) are right.
though I don't see how does it help you with restart-in-the middle. again we could have a magic directory which will force a server restart when it hits it, though I'm not sure whether we want it to restart for each test in that t/restart/ dir, or just once. However I think that making the client side doing the restart is the best option, provided that we provide a portable implementation for it.
an API is best there, for certain. but one thing at a time.
I'll get working on the pre and post directory stuff and see what I can hack together.
--Geoff