Craig A. Berry wrote: > On Fri, Feb 27, 2009 at 5:14 PM, demerphq <demer...@gmail.com> wrote: >> 2009/2/27 Michael G Schwern <schw...@pobox.com>: > >>> The plan changed in the middle of this argument and I think that wast lost. >>> I >>> no longer plan to do it with make subtests but rather by hacking t/TEST and >>> t/harness. It should work out to no visible change. Rather than untangle >>> the >>> miscommunication in email its simpler and faster for me to just do it and >>> let >>> the code speak for itself. >> That sounds great! > > Yes, indeed. Even if the hacks are wicked they'll be corralled into > one or two places where we can keep an eye on them.
It is done. Or at least, it is demonstratable. http://github.com/schwern/perl/tree/ExtUtils-MakeMaker The effective change to the testing system is rather small. Here you can see it without refactorings. git diff 1a129493906affc7fd0e26067910a344e22fb5f2^..HEAD t/TEST t/TestInit.pm I altered t/TEST to run ext/Module tests from ext/Module. This leaves how tests are run outwardly unchanged. I then stripped all the PERL_CORE path hackery out of the ext/ tests which is what really consumed all the time. I kept changes to a minimum and in separate commits for each module to facilitate pushing them back to the authors. In some cases I moved files out of t/ and back into ext/ when doing so would restore the integrity of a CPAN distribution and eliminate a PERL_CORE hack. t/Module_Pluggable for example. I realize some of the moves were made because of VMS depth limits. I think now that ext has been flattened this should be ok. If not, a better solution might be for TEST to create a VMS virtual root for each ext/Module and chdir into that. I also made the path to perl and the lib directories absolute so tests can chdir safely and added "." into @INC so it's more like how perl really runs. One debatable bit is t/TEST's use of File::Spec->rel2abs. TEST was already using File::Spec but now its also using Cwd. Fortunately, Cwd can work as a Perl module. Also, if things go really bad, you can run TEST using an already installed Perl. Even a rather old one should work. t/harness still needs to be dealt with. And the system for copying ext/ExtUtils-MakeMaker/lib into lib is incomplete. I'm not sure how that should best be done. Ideally I'd like make to take care of it so that as ext/ExtUtils-MakeMaker/lib is edited, it will be copied into lib as necessary. -- <Schwern> What we learned was if you get confused, grab someone and swing them around a few times -- Life's lessons from square dancing