At 1:46 AM -0800 1/26/06, Yitzchak Scott-Thoennes wrote:
>Just a few comments to start with.  Have you had a chance to look
>at any of this?

Started to debug it but haven't gotten very far.

> >
> > $ perl harness [-.lib.Module.Build.t]*.t
>> d0:[craig.perl.lib.module.build.t]basic...........ok 7/55
>>                                                          Can't cd to 
>> D0:[CRAIG.perl.t._tmp.Simple]: no such file or directory
>
>Is there something wrong with that path name?  The different case for
>D0 and CRAIG?  The _ in _tmp?  Most of the tests use lib/DistGen.pm to
>generate directories of test files and cd into them to run their
>tests.  If that's not working, that's the first thing to try to fix.

The pathname is ok.  The test can't find it because it really doesn't
exist because it got deleted by DistGen->clean(), which doesn't
recognize it as one of the directories in its cache of directory
names.  The basic issues revolve around VMS filespec idiosyncracies.
For example, we'll have to call splitpath before splitdir if we want
the device name to be separated from the first directory name:

$ perl -e "use File::Spec; print join('|', 
File::Spec->splitdir('DEV:[foo.bar]'));"
DEV:[foo|bar
$ perl -e "use File::Spec; print join('|', 
File::Spec->splitpath('DEV:[foo.bar]'));"
DEV:|[foo.bar]|


> > # Looks like you planned 55 tests but only ran 13.
>> d0:[craig.perl.lib.module.build.t]basic...........dubious
>>         Test returned status 44 (wstat 1024, 0x400)
>>                 (VMS status is 44)
>> DIED. FAILED tests 14-55
>>         Failed 42/55 tests, 23.64% okay (less 1 skipped test: 12 okay, 
>> 21.82%)
>> d0:[craig.perl.lib.module.build.t]compat..........skipped
>>         all skipped: Don't know how to invoke 'make'
>
>compat.t tests that the different flavors of compatibility
>Makefile.PLs work with the "perl Makefile.PL; make" approach.
>Does VMS have $Config{make} set to something suitable?  If so,
>perhaps the find_in_path($Config{make}) check is making this
>whole test skipped when it shouldn't be?

We've got it in %Config:

$ perl -"V:make"
make='MMK';

I think the problem is likely in the find_in_path() call here:

if ( $Config{make} && find_in_path($Config{make}) ) {
    plan tests => 30 + @makefile_types*$tests_per_type;
} else {
    plan skip_all => "Don't know how to invoke 'make'";
}

On VMS, searching the path is the least common mechanism for locating
the program that will execute a command.  I think instead of
find_in_path() we'll have to abstract this into a make_is_installed()
or something that can do different things when necessary.

> > Can't locate object method "eliminate_macros" via package "Module::Build" 
> > at /D0/CRAIG/PERL/lib/Module/Build/Platform/VMS.pm line 85
>
>Hmm, looks like some code mistranslated from what makemaker did.
>And it looks like there's some kind of incestuous relationship
>between File::Spec and makemaker wrt eliminate_macros.  Yuck.

IIRC, MM has its own copy in order to run on older Perls that don't
have it in File::Spec.  We either need to duplicate the incest in MB
or figure out whether the minimum Perl version that has it in
File::Spec is an acceptable prerequisite for the use of MB on VMS.



-- 
________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Reply via email to