r50977 - in /branches/upstream/libtest-pod-perl/current: Build.PL Changes MANIFEST META.yml Makefile.PL Pod.pm lib/ lib/Test/ lib/Test/Pod.pm t/link.pod t/link.t t/spaced-directives.t

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Fri Jan 15 02:17:29 UTC 2010


Author: jawnsy-guest
Date: Fri Jan 15 02:17:04 2010
New Revision: 50977

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=50977
Log:
[svn-upgrade] Integrating new upstream version, libtest-pod-perl (1.41)

Added:
    branches/upstream/libtest-pod-perl/current/Build.PL
    branches/upstream/libtest-pod-perl/current/lib/
    branches/upstream/libtest-pod-perl/current/lib/Test/
    branches/upstream/libtest-pod-perl/current/lib/Test/Pod.pm
Removed:
    branches/upstream/libtest-pod-perl/current/Makefile.PL
    branches/upstream/libtest-pod-perl/current/Pod.pm
    branches/upstream/libtest-pod-perl/current/t/link.pod
    branches/upstream/libtest-pod-perl/current/t/link.t
Modified:
    branches/upstream/libtest-pod-perl/current/Changes
    branches/upstream/libtest-pod-perl/current/MANIFEST
    branches/upstream/libtest-pod-perl/current/META.yml
    branches/upstream/libtest-pod-perl/current/t/spaced-directives.t

Added: branches/upstream/libtest-pod-perl/current/Build.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-pod-perl/current/Build.PL?rev=50977&op=file
==============================================================================
--- branches/upstream/libtest-pod-perl/current/Build.PL (added)
+++ branches/upstream/libtest-pod-perl/current/Build.PL Fri Jan 15 02:17:04 2010
@@ -1,0 +1,26 @@
+use strict;
+use warnings;
+use Module::Build;
+
+Module::Build->new(
+    module_name        => 'Test::Pod',
+    license            => 'perl',
+    configure_requires => { 'Module::Build' => '0.30', },
+    build_requires     => {
+        'Module::Build' => '0.30',
+        'Test::More'    => '0.70',
+    },
+    requires => {
+        'Pod::Simple'           => '3.07',
+        'Test::More'            => '0.70',,
+        'Test::Builder::Tester' => '1.02',
+        'File::Spec'            => 0,
+    },
+    meta_merge => {
+        resources => {
+            homepage   => 'http://search.cpan.org/dist/Test-Pod/',
+            bugtracker => 'http://github.com/theory/test-xpod/issues/',
+            repository => 'http://github.com/theory/test-pod/tree/',
+        }
+    },
+)->create_build_script;

Modified: branches/upstream/libtest-pod-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-pod-perl/current/Changes?rev=50977&op=diff
==============================================================================
--- branches/upstream/libtest-pod-perl/current/Changes (original)
+++ branches/upstream/libtest-pod-perl/current/Changes Fri Jan 15 02:17:04 2010
@@ -1,4 +1,10 @@
 Change log for Test::Pod
+
+1.41 - 2010-01-14T20:09:25
+    * Maintenance transfered to David Wheeler.
+    * Test::Pod no longer complains about the construct L<text|url>, as it is
+      no longer illegal (as of Perl 5.11.3).
+    * Switched to Module::Build.
 
 1.40 - Sun Jul 12 23:32:11 CDT 2009
     [THINGS THAT MAY BREAK YOUR CODE]

Modified: branches/upstream/libtest-pod-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-pod-perl/current/MANIFEST?rev=50977&op=diff
==============================================================================
--- branches/upstream/libtest-pod-perl/current/MANIFEST (original)
+++ branches/upstream/libtest-pod-perl/current/MANIFEST Fri Jan 15 02:17:04 2010
@@ -1,8 +1,8 @@
+Build.PL
 Changes
-Makefile.PL
-MANIFEST
-Pod.pm
-
+lib/Test/Pod.pm
+MANIFEST			This list of files
+META.yml
 t/00-load.t
 t/all_pod_files.t
 t/cut-outside-block.pod
@@ -11,12 +11,9 @@
 t/good.t
 t/item-ordering.pod
 t/item-ordering.t
-t/link.pod
-t/link.t
 t/load.t
 t/missing-file.t
 t/pod.t
-t/pod/good-pod-script
 t/pod/good-pod-script
 t/pod/good.pod
 t/pod/no_pod.pod
@@ -25,4 +22,3 @@
 t/spaced-directives.t
 t/unknown-directive.pod
 t/unknown-directive.t
-META.yml                                 Module meta-data (added by MakeMaker)

Modified: branches/upstream/libtest-pod-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-pod-perl/current/META.yml?rev=50977&op=diff
==============================================================================
--- branches/upstream/libtest-pod-perl/current/META.yml (original)
+++ branches/upstream/libtest-pod-perl/current/META.yml Fri Jan 15 02:17:04 2010
@@ -1,24 +1,30 @@
---- #YAML:1.0
-name:               Test-Pod
-version:            1.40
-abstract:           ~
-author:  []
-license:            unknown
-distribution_type:  module
+---
+abstract: 'check for POD errors in files'
+author:
+  - 'Currently maintained by David E. Wheeler, C<< <david at justatheory.com> >>.'
+build_requires:
+  Module::Build: 0.30
+  Test::More: 0.70
 configure_requires:
-    ExtUtils::MakeMaker:  0
-build_requires:
-    ExtUtils::MakeMaker:  0
+  Module::Build: 0.30
+generated_by: 'Module::Build version 0.3601'
+license: perl
+meta-spec:
+  url: http://module-build.sourceforge.net/META-spec-v1.4.html
+  version: 1.4
+name: Test-Pod
+provides:
+  Test::Pod:
+    file: lib/Test/Pod.pm
+    version: 1.41
 requires:
-    File::Spec:           0
-    Pod::Simple:          3.07
-    Test::Builder::Tester:  1.02
-    Test::More:           0.62
-no_index:
-    directory:
-        - t
-        - inc
-generated_by:       ExtUtils::MakeMaker version 6.52
-meta-spec:
-    url:      http://module-build.sourceforge.net/META-spec-v1.4.html
-    version:  1.4
+  File::Spec: 0
+  Pod::Simple: 3.07
+  Test::Builder::Tester: 1.02
+  Test::More: 0.70
+resources:
+  bugtracker: http://github.com/theory/test-xpod/issues/
+  homepage: http://search.cpan.org/dist/Test-Pod/
+  license: http://dev.perl.org/licenses/
+  repository: http://github.com/theory/test-pod/tree/
+version: 1.41

Added: branches/upstream/libtest-pod-perl/current/lib/Test/Pod.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-pod-perl/current/lib/Test/Pod.pm?rev=50977&op=file
==============================================================================
--- branches/upstream/libtest-pod-perl/current/lib/Test/Pod.pm (added)
+++ branches/upstream/libtest-pod-perl/current/lib/Test/Pod.pm Fri Jan 15 02:17:04 2010
@@ -1,0 +1,296 @@
+package Test::Pod;
+
+use strict;
+
+=head1 NAME
+
+Test::Pod - check for POD errors in files
+
+=head1 VERSION
+
+Version 1.41
+
+=cut
+
+our $VERSION = '1.41';
+
+=head1 SYNOPSIS
+
+C<Test::Pod> lets you check the validity of a POD file, and report
+its results in standard C<Test::Simple> fashion.
+
+    use Test::Pod tests => $num_tests;
+    pod_file_ok( $file, "Valid POD file" );
+
+Module authors can include the following in a F<t/pod.t> file and
+have C<Test::Pod> automatically find and check all POD files in a
+module distribution:
+
+    use Test::More;
+    eval "use Test::Pod 1.00";
+    plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
+    all_pod_files_ok();
+
+You can also specify a list of files to check, using the
+C<all_pod_files()> function supplied:
+
+    use strict;
+    use Test::More;
+    eval "use Test::Pod 1.00";
+    plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
+    my @poddirs = qw( blib script );
+    all_pod_files_ok( all_pod_files( @poddirs ) );
+
+Or even (if you're running under L<Apache::Test>):
+
+    use strict;
+    use Test::More;
+    eval "use Test::Pod 1.00";
+    plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
+
+    my @poddirs = qw( blib script );
+    use File::Spec::Functions qw( catdir updir );
+    all_pod_files_ok(
+        all_pod_files( map { catdir updir, $_ } @poddirs )
+    );
+
+=head1 DESCRIPTION
+
+Check POD files for errors or warnings in a test file, using
+C<Pod::Simple> to do the heavy lifting.
+
+=cut
+
+use 5.008;
+
+use Test::Builder;
+use File::Spec;
+use Pod::Simple;
+
+our %ignore_dirs = (
+    '.bzr' => 'Bazaar',
+    '.git' => 'Git',
+    '.hg'  => 'Mercurial',
+    '.pc'  => 'quilt',
+    '.svn' => 'Subversion',
+    CVS    => 'CVS',
+    RCS    => 'RCS',
+    SCCS   => 'SCCS',
+    _darcs => 'darcs',
+    _sgbak => 'Vault/Fortress',
+);
+
+my $Test = Test::Builder->new;
+
+sub import {
+    my $self = shift;
+    my $caller = caller;
+
+    for my $func ( qw( pod_file_ok all_pod_files all_pod_files_ok ) ) {
+        no strict 'refs';
+        *{$caller."::".$func} = \&$func;
+    }
+
+    $Test->exported_to($caller);
+    $Test->plan(@_);
+}
+
+sub _additional_test_pod_specific_checks {
+    my ($ok, $errata, $file) = @_;
+
+    return $ok;
+}
+
+=head1 FUNCTIONS
+
+=head2 pod_file_ok( FILENAME[, TESTNAME ] )
+
+C<pod_file_ok()> will okay the test if the POD parses correctly.  Certain
+conditions are not reported yet, such as a file with no pod in it at all.
+
+When it fails, C<pod_file_ok()> will show any pod checking errors as
+diagnostics.
+
+The optional second argument TESTNAME is the name of the test.  If it
+is omitted, C<pod_file_ok()> chooses a default test name "POD test
+for FILENAME".
+
+=cut
+
+sub pod_file_ok {
+    my $file = shift;
+    my $name = @_ ? shift : "POD test for $file";
+
+    if ( !-f $file ) {
+        $Test->ok( 0, $name );
+        $Test->diag( "$file does not exist" );
+        return;
+    }
+
+    my $checker = Pod::Simple->new;
+
+    $checker->output_string( \my $trash ); # Ignore any output
+    $checker->parse_file( $file );
+
+    my $ok = !$checker->any_errata_seen;
+       $ok = _additional_test_pod_specific_checks( $ok, ($checker->{errata}||={}), $file );
+
+    $Test->ok( $ok, $name );
+    if ( !$ok ) {
+        my $lines = $checker->{errata};
+        for my $line ( sort { $a<=>$b } keys %$lines ) {
+            my $errors = $lines->{$line};
+            $Test->diag( "$file ($line): $_" ) for @$errors;
+        }
+    }
+
+    return $ok;
+} # pod_file_ok
+
+=head2 all_pod_files_ok( [@files/@directories] )
+
+Checks all the files in C<@files> for valid POD.  It runs
+L<all_pod_files()> on each file/directory, and calls the C<plan()>
+function for you (one test for each function), so you can't have
+already called C<plan>.
+
+If C<@files> is empty or not passed, the function finds all POD
+files in the F<blib> directory if it exists, or the F<lib> directory
+if not.  A POD file is one that ends with F<.pod>, F<.pl> and F<.pm>,
+or any file where the first line looks like a shebang line.
+
+If you're testing a module, just make a F<t/pod.t>:
+
+    use Test::More;
+    eval "use Test::Pod 1.00";
+    plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
+    all_pod_files_ok();
+
+Returns true if all pod files are ok, or false if any fail.
+
+=cut
+
+sub all_pod_files_ok {
+    my @files = @_ ? @_ : all_pod_files();
+
+    $Test->plan( tests => scalar @files );
+
+    my $ok = 1;
+    foreach my $file ( @files ) {
+        pod_file_ok( $file, $file ) or undef $ok;
+    }
+    return $ok;
+}
+
+=head2 all_pod_files( [@dirs] )
+
+Returns a list of all the Perl files in I<$dir> and in directories
+below.  If no directories are passed, it defaults to F<blib> if
+F<blib> exists, or else F<lib> if not.  Skips any files in CVS,
+.svn, .git and similar directories.  See C<%Test::Pod::ignore_dirs>
+for a list of them.
+
+A Perl file is:
+
+=over 4
+
+=item * Any file that ends in F<.PL>, F<.pl>, F<.pm>, F<.pod> or F<.t>.
+
+=item * Any file that has a first line with a shebang and "perl" on it.
+
+=back
+
+The order of the files returned is machine-dependent.  If you want them
+sorted, you'll have to sort them yourself.
+
+=cut
+
+sub all_pod_files {
+    my @queue = @_ ? @_ : _starting_points();
+    my @pod = ();
+
+    while ( @queue ) {
+        my $file = shift @queue;
+        if ( -d $file ) {
+            local *DH;
+            opendir DH, $file or next;
+            my @newfiles = readdir DH;
+            closedir DH;
+
+            @newfiles = File::Spec->no_upwards( @newfiles );
+            @newfiles = grep { not exists $ignore_dirs{ $_ } } @newfiles;
+
+            foreach my $newfile (@newfiles) {
+                my $filename = File::Spec->catfile( $file, $newfile );
+                if ( -f $filename ) {
+                    push @queue, $filename;
+                }
+                else {
+                    push @queue, File::Spec->catdir( $file, $newfile );
+                }
+            }
+        }
+        if ( -f $file ) {
+            push @pod, $file if _is_perl( $file );
+        }
+    } # while
+    return @pod;
+}
+
+sub _starting_points {
+    return 'blib' if -e 'blib';
+    return 'lib';
+}
+
+sub _is_perl {
+    my $file = shift;
+
+    return 1 if $file =~ /\.PL$/;
+    return 1 if $file =~ /\.p(?:l|m|od)$/;
+    return 1 if $file =~ /\.t$/;
+
+    open my $fh, '<', $file or return;
+    my $first = <$fh>;
+    close $fh;
+
+    return 1 if defined $first && ($first =~ /^#!.*perl/);
+
+    return;
+}
+
+=head1 TODO
+
+STUFF TO DO
+
+Note the changes that are being made.
+
+Note that you no longer can test for "no pod".
+
+=head1 AUTHOR
+
+Currently maintained by David E. Wheeler, C<< <david at justatheory.com> >>.
+
+Originally by brian d foy.
+
+Maintainer emeritus: Andy Lester, C<< <andy at petdance.com> >>.
+
+=head1 ACKNOWLEDGEMENTS
+
+Thanks to
+Andy Lester,
+David Wheeler,
+Paul Miller
+and
+Peter Edwards
+for contributions and to C<brian d foy> for the original code.
+
+=head1 COPYRIGHT
+
+Copyright 2006-2010, Andy Lester. Some Rights Reserved.
+
+You may use, modify, and distribute this package under the terms
+as the Artistic License v2.0 or GNU Public License v2.0.
+
+=cut
+
+1;

Modified: branches/upstream/libtest-pod-perl/current/t/spaced-directives.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-pod-perl/current/t/spaced-directives.t?rev=50977&op=diff
==============================================================================
--- branches/upstream/libtest-pod-perl/current/t/spaced-directives.t (original)
+++ branches/upstream/libtest-pod-perl/current/t/spaced-directives.t Fri Jan 15 02:17:04 2010
@@ -12,11 +12,11 @@
 
 BAD: {
     my $name = 'Test name: Something not likely to accidentally occur!';
-    my $file = 't/spaced-rectives.pod';
+    my $file = 't/spaced-directives.pod';
     test_out( "not ok 1 - $name" );
     pod_file_ok( $file, $name );
     test_fail(-1);
-    test_diag( "$file (9): Unknown directive: =over4",);
-    test_diag( "$file (13): Unknown directive: =under",);
+    test_diag('*** WARNING: line containing nothing but whitespace in paragraph at line 11 in file t/spaced-directives.pod');
+    test_diag('*** WARNING: line containing nothing but whitespace in paragraph at line 17 in file t/spaced-directives.pod');
     test_test( "$name is bad" );
 }




More information about the Pkg-perl-cvs-commits mailing list