# from Andy Armstrong
# on Tuesday 31 July 2007 05:55 am:
>> This is the approach I thought of. I think you'll need to keep a
>> persistent file of output to capture require calls across each test
>> file and then summarize. (I.e. so you can set it as a command line
>> option to the harness.)
>
>Yup, I'm just playing with it now. Seems that it'll do everything we
>need of it. Lovely :)
Yep. My thinking for Devel::TraceDeps was that it would be enabled with
a PERL5OPT=-MDevel::TraceDeps=somedir so-as to catch the subprocesses.
It would need to basically create a subpath-keyed (YAML?) file in
somedir for every $0 that hits import.
The post-processing then allows you to filter-out the "test that runs a
program" while still allowing you to process data from a "test that
runs other tests".
The trouble with basically [EMAIL PROTECTED] is that it is always
first-come first-serve and you never get a poke for the latter
require()s.
use Foo; # uses warnings, strict, Carp
use warnings; # got it already, no callback
use strict; # ditto
use Carp; # ditto
With END {} looking at %INC, you're only seeing "everything that
everyone used anywhere."
And to get complete coverage (e.g. for PAR to work), we also need do()
for things like 'utf8_heavy.pl does unicore/lib/SpacePer.pl' and etc.
Plus, of course, the .dll/.so/.dylibs.
Also note that "-d" tends to segfault in Wx usage (at window creation or
thereabouts) and maybe elsewhere.
Would be nice to note $^S as well as far as caring whether an
eval()-wrapped load succeeds or fails.
http://scratchcomputing.com/svn/Devel-TraceDeps/trunk
--Eric
--
"I've often gotten the feeling that the only people who have learned
from computer assisted instruction are the authors."
--Ben Schneiderman
---------------------------------------------------
http://scratchcomputing.com
---------------------------------------------------