I just noticed t/pod and that its not run with "make test".
This appears to have come up before and was an oversight.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2000-09/msg00730.html

Looks like people just gave up on fixing t/pod/find.t and I don't
blame them, its a mess.  I'm tempted to just chuck it and start over.
Well, the fundemental problem is that Pod::Find is doing all sorts of
gyrations to look at the source code.  This is fundementally
unmaintainable (tests should not break when we add new files to the
dist).  Instead, I've added t/pod/test_pods/ to provide a little
controled sandbox for Pod::Find to play in.

Could one of the VMS folks look over the VMS specific parts of this
test and see if they can be eliminated or scaled down?

Out of curiousity, where did Pod::Find come from?  I can't find it
anywhere on CPAN yet the test is written as if it was expecting to be
run as part of a module install, not a core test.

Here's a patch to fix t/pod/find.t and add t/pod to t/TEST so it will
run as part of make test.  I've added a t/pod/test_pods directory and
some dummy files in it for Pod::Find to test against.

--- t/pod/find.t        2001/02/23 08:07:47     1.1
+++ t/pod/find.t        2001/02/23 08:08:08
@@ -14,31 +14,24 @@
 ok(1);
 
 require Cwd;
-my $THISDIR = Cwd::cwd();
 my $VERBOSE = 0;
-my $lib_dir = File::Spec->catdir($THISDIR,'lib');
+my $lib_dir = File::Spec->catdir('pod', 'test_pods', 'lib');
 if ($^O eq 'VMS') {
-    $lib_dir = VMS::Filespec::unixify(File::Spec->catdir($THISDIR,'-','lib','pod'));
+    $lib_dir = VMS::Filespec::unixify(File::Spec->catdir('pod', 'test_pods', 'lib'));
     $Qlib_dir = $lib_dir;
     $Qlib_dir =~ s#\/#::#g;
 }
 print "### searching $lib_dir\n";
-my %pods = pod_find("$lib_dir");
-my $result = join("\n### ", sort values %pods);
-print "### found $result\n";
-my $compare = join(',', qw(
-    Pod::Checker
-    Pod::Find
-    Pod::InputObjects
-    Pod::ParseUtils
-    Pod::Parser
-    Pod::PlainText
-    Pod::Select
-    Pod::Usage
+my %pods = pod_find($lib_dir);
+my $result = join(',', sort values %pods);
+my $compare = join(',', sort qw(
+    Pod::Stuff
+    Pod::Rhubarb
+    Like::And::Yeah
 ));
 if ($^O eq 'VMS') {
     $compare = lc($compare);
-    $result = join(',', sort grep(/pod::/, values %pods));
+    $result = join(',', sort values %pods);
     my $undollared = $Qlib_dir;
     $undollared =~ s/\$/\\\$/g;
     $undollared =~ s/\-/\\\-/g;
@@ -55,8 +48,6 @@
     ok($result,$compare);
 }
 
-# File::Find is located in this place since eons
-# and on all platforms, hopefully
 
 print "### searching for File::Find\n";
 $result = pod_where({ -inc => 1, -verbose => $VERBOSE }, 'File::Find')
@@ -71,25 +62,24 @@
     ok($result,$compare);
 }
 else {
-    $compare = File::Spec->catfile($Config::Config{privlib},"File","Find.pm");
+    $compare = File::Spec->catfile(File::Spec->updir, 'lib','File','Find.pm');
     ok(_canon($result),_canon($compare));
 }
 
 # Search for a documentation pod rather than a module
 print "### searching for perlfunc.pod\n";
-$result = pod_where({ -inc => 1, -verbose => $VERBOSE }, 'perlfunc')
+my $search = File::Spec->catfile('pod', 'test_pods', 'pod');
+$result = pod_where({ -dirs => [$search], -verbose => $VERBOSE }, 'perlfoo')
   || 'undef - perlfunc.pod not found!';
 print "### found $result\n";
 
-if ($^O eq 'VMS') { # privlib is perl_root:[lib] unfortunately
-    $compare = "/lib/pod/perlfunc.pod";
+if ($^O eq 'VMS') {
     $result = VMS::Filespec::unixify($result);
-    $result =~ s/perl_root\///i;
     $result =~ s/^\.\.//;  # needed under `mms test`
     ok($result,$compare);
 }
 else {
-    $compare = File::Spec->catfile($Config::Config{privlib},"perlfunc.pod");
+    $compare = File::Spec->catfile('pod', 'test_pods', 'pod' ,'perlfunc.pod');
     ok(_canon($result),_canon($compare));
 }
 
--- /dev/null   Tue Dec 12 01:02:04 2000
+++ t/pod/test_pods/lib/Like/And/Yeah.pm        Fri Feb 23 02:55:13 2001
@@ -0,0 +1,13 @@
+package Like::And::Yeah;
+
+=head1 Umm
+
+Ya know and stuff
+
+=head1 Things
+
+Things are neat.  And stuff.  Whatever.
+
+=head2 Ummm
+
+Errr whatever.
--- /dev/null   Tue Dec 12 01:02:04 2000
+++ t/pod/test_pods/lib/Pod/Rhubarb.pod Fri Feb 23 02:52:33 2001
@@ -0,0 +1,15 @@
+=head1 RHUBARB
+
+Rhubarb - rhubarb rhubarb
+
+=head1 rhubarb
+
+Rhubarb rhubarb rhubarb
+
+=over 4
+
+=item B<rhubarb>
+
+  my $rhubarb = rhubarb($rhubarb, $rhubarb, \%rhubarb);
+
+=back
--- /dev/null   Tue Dec 12 01:02:04 2000
+++ t/pod/test_pods/lib/Pod/Stuff.pm    Fri Feb 23 02:51:18 2001
@@ -0,0 +1,20 @@
+=head1 NAME
+
+Pod::Stuff - dummy testing pod
+
+=head1 DESCRIPTION
+
+This isn't really anything, its just some dummy pod code.
+And stuff.
+
+Lots of stuff.
+
+=head2 STUFF
+
+For all your stuff [tm]
+
+Stuffit
+
+Mmmm, stuffed pizza bread.
+
+=cut
--- MANIFEST    2001/02/18 18:51:54     1.5
+++ MANIFEST    2001/02/23 08:16:39
@@ -1669,6 +1669,10 @@
 t/pod/testcmp.pl       Module to compare output against expected results
 t/pod/testp2pt.pl      Module to test Pod::PlainText for a given file
 t/pod/testpchk.pl      Module to test Pod::Checker for a given file
+t/pod/test_pods/lib/Like/And/Yeah.pm    Sample data for find.t
+t/pod/test_pods/lib/Pod/Rhubarb.pod     Sample data for find.t
+t/pod/test_pods/lib/Pod/Stuff.pm        Sample data for find.t
+t/pod/test_pods/pod/perlfoo.pod         Sample data for find.t
 t/pragma/constant.t    See if compile-time constants work
 t/pragma/diagnostics.t See if diagnostics.pm works
 t/pragma/locale.t      See if locale support works
--- t/TEST      2001/02/23 08:10:52     1.1
+++ t/TEST      2001/02/23 08:10:58
@@ -27,7 +27,7 @@
 
 if ($#ARGV == -1) {
     @ARGV = split(/[ \n]/,
-      `echo base/*.t comp/*.t cmd/*.t run/*.t io/*.t; echo op/*.t pragma/*.t 
lib/*.t`);
+      `echo base/*.t comp/*.t cmd/*.t run/*.t io/*.t; echo op/*.t pragma/*.t lib/*.t 
+pod/*.t`);
 }
 
 %infinite = ( 'comp/require.t', 1, 'op/bop.t', 1, 'lib/hostname.t', 1 ); 



-- 
Michael G Schwern   <[EMAIL PROTECTED]>   http://www.pobox.com/~schwern/
Perl6 Quality Assurance     <[EMAIL PROTECTED]>       Kwalitee Is Job One

Reply via email to