On Sat, Sep 22, 2001 at 10:59:34PM -0500, Craig A. Berry wrote: > $ perl -"MCwd" -e "chdir('test'); print Cwd::getcwd();" > D0:[CRAIG.TEST]
Cwd is running things through VMS::Filespec. I have no idea which one is the proper thing to do, but it's already been established that Cwd is generally inconsistent and will most likely stay that way. > >For chdir.t, that might be fixed by #12124. > > I'll take a look. In the meantime, here's the verbose output: Ok, after applying 12124 (so everything's using File::Spec and not Cwd) I still have problems with case differences. not ok 2 - abs_path() agrees # Failed test (t/op/chdir.t at line 26) # got: 'USER1:[SCHWERN.PERL.T]' # expected: 'USER1:[SCHWERN.PERL.t]' What's the proper solution to this? The rest should clear up after tonite's round of chdir patching on p5p. > >manifest.t... we can probably fix it if I can see the test output. > > $ perl [-.lib.extutils]manifest.t > 1..31 > ok 1 - use ExtUtils::Manifest; > ok 2 - make mantest directory > ok 3 - chdir() to mantest > ok 4 - add a temporary file > not ok 5 - mkmanifest() displayed it's additions > # Failed test ([-.lib.extutils]manifest.t at line 58) > # got: 'Added to MANIFEST: MANIFEST > Added to MANIFEST: foo > Added to MANIFEST: manifest > ' > # expected: 'Added to MANIFEST: MANIFEST > Added to MANIFEST: foo > ' Ok, it would appear open() is being a smidge too helpful. ExtUtils::Manifest::mkmanifest() says open M, ">MANIFEST"; and it creates the file 'manifest.' Faaaascinating. Is this normal? VMS requires every filename to contain a dot? So open() seems to be handling the non-case-preserving parts ok. Should it also handle filehandles with no dot? > ok 13 - disabled warnings > not ok 14 - got skipping warning > # Failed test ([-.lib.extutils]manifest.t at line 91) > # 'Skipping manifest.skip > ' > # doesn't match '(?-xism:^Skipping MANIFEST\.SKIP)' Again, open() being too helpful. > ok 18 - created moretest directory > not ok 19 - manifind found [.moretest]quux > # Failed test ([-.lib.extutils]manifest.t at line 109) Ok, this is failing because we use File::Spec there. We're asking for: [.moretest]quux but manifind() keeps it's keys as unix file paths. That's a genuine problem. manifind() documents itself as: manifind() returns a hash reference. The keys of the hash are the files found below the current directory. would it work best for it to store the keys as native file paths? > ok 20 - two files found > not ok 21 - both files found > # Failed test ([-.lib.extutils]manifest.t at line 114) > # got: 'foo manifest' > # expected: 'MANIFEST foo' Another file casing problem. > not ok 22 - maniread found comment > # Failed test ([-.lib.extutils]manifest.t at line 118) > # got: 'none #none' > # expected: '#none' This looks like a simple matter of the VMS special-case code falling out of date. Genuine bug. Ok, a little logic rejiggering, aaaannd, this should do it. It should also make sure the special-cases don't drift away. --- lib/ExtUtils/Manifest.pm 2001/09/23 06:05:03 1.1 +++ lib/ExtUtils/Manifest.pm 2001/09/23 06:07:46 @@ -142,15 +142,14 @@ while (<M>){ chomp; next if /^#/; + + my($file, $comment) = /^(\S+)\s*(.*)/; + next unless $file; if ($Is_MacOS) { - my($item,$text) = /^(\S+)\s*(.*)/; - $item = _macify($item); - $item =~ s/\\([0-3][0-7][0-7])/sprintf("%c", oct($1))/ge; - $read->{$item}=$text; + $file = _macify($file); + $file =~ s/\\([0-3][0-7][0-7])/sprintf("%c", oct($1))/ge; } elsif ($Is_VMS) { - my($file)= /^(\S+)/; - next unless $file; my($base,$dir) = File::Basename::fileparse($file); # Resolve illegal file specifications in the same way as tar $dir =~ tr/./_/; @@ -158,9 +157,10 @@ if (@pieces > 2) { $base = shift(@pieces) . '.' . join('_',@pieces); } my $okfile = "$dir$base"; warn "Debug: Illegal name $file changed to $okfile\n" if $Debug; - $read->{"\L$okfile"}=$_; + $file = "\L$okfile"; } - else { /^(\S+)\s*(.*)/ and $read->{$1}=$2; } + + $read->{$file} = $comment; } close M; $read; > ok 30 - return to parent directory > not ok 31 - remove mantest directory > # Failed test ([-.lib.extutils]manifest.t at line 40) This is failing because the t/mantest directory is not empty. The unlink on line 147 fails to nail mainfest. Again, related to the casing issue. > > > kill_perl.t runs fine by itself but not in the test suite. > > > >Run vms/test.com on kill_perl.t with the -v flag set and show me the > >verbose output. > > Runs fine by itself, either directly from perl or from within test.com. > > >Did t/op/misc.t used to fail? If so, then it has something to do with > >the test names on the end confusing test.com. > > Don't remember offhand about misc.t, but it is almost surely > something in test.com since it only happens when the entire test > suite is run. Puzzling. I can't run the test suite, 'mms test' is barking about "unrecognized command verb". > >lib/Test/Simple/t/todo.t failing is probably just a minor bug in > >vms/test.com > > That may be an issue, but the failures I've noticed are independent of test.com: > > $ perl [-.lib.test.simple.t]todo.t > 1..13 > not ok 1 - Expected failure # TODO Just testing the todo interface. > # Failed (TODO) test ([-.lib.test.simple.t]todo.t at line 18) ...etc... Believe it or not, that's *exactly* what its supposed to do. test.com is just misparsing the "# TODO" part. Apply this patch and it should clear things up. I don't know how to run test.com, but I'm sure this will work. --- vms/test.com 2001/09/22 21:45:52 1.1 +++ vms/test.com 2001/09/22 21:46:19 @@ -201,7 +201,7 @@ next if /^\s*$/; - if (/^(not )?ok (\d+)(\s*#.*)?/ && + if (/^(not )?ok (\d+)[^#]*(\s*#.*)?/ && $2 == $next) { my($not, $num, $extra) = ($1, $2, $3); > >PS Could you please, please, please, take a swing at getting Perl > >installed on the OpenVMS Compaq testdrive account? > > Done. I'll try to post more details in the next day or two. For now > you can run it by logging in and typing the following commands: > > $ sd [.perl] > $ @perl_setup > $ define/translation=concealed perl_root user1:[schwern.perl.] ahh, of course. How did I not see that eariler?! :P Thanks. :) > I've also installed a vi-like editor which you can get by typing > "vile"; GNU diff is available as "gdiff" and GNU patch is available > as "gpatch". Ok, let the fun begin. Oh, this is interesting. After I use the debugger once I get: Daughter DB session started... 1..24 ######### Forked, but do not know how to create a new TTY. ######### Since two debuggers fight for the same TTY, input is severely entangled. -- Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/ Perl6 Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One Death? Its like being on holiday with a group of Germans.