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.