# 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 ---------------------------------------------------