diff options
author | Guillem Jover <guillem@debian.org> | 2016-07-23 14:18:38 +0200 |
---|---|---|
committer | Guillem Jover <guillem@debian.org> | 2016-07-31 16:10:39 +0200 |
commit | d5f3d026b87c345f3158f8033e252df58899b515 (patch) | |
tree | bed82dc4ac34896e5b000cd046b91fd642e0f7e7 /t/pod-coverage.t | |
parent | 6e3747138b002e7e0a6478d3662b6160824171c2 (diff) | |
download | dpkg-d5f3d026b87c345f3158f8033e252df58899b515.tar.gz |
t: Add POD coverage support for public perl modules
Diffstat (limited to 't/pod-coverage.t')
-rw-r--r-- | t/pod-coverage.t | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/t/pod-coverage.t b/t/pod-coverage.t new file mode 100644 index 000000000..3281bea9b --- /dev/null +++ b/t/pod-coverage.t @@ -0,0 +1,60 @@ +#!/usr/bin/perl +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +use strict; +use warnings; + +use File::Find; + +use Test::More; +use Test::Dpkg qw(:needs); + +test_needs_author(); +test_needs_module('Test::Pod::Coverage'); +test_needs_srcdir_switch(); + +sub all_pod_modules +{ + my @modules; + my $scan_perl_modules = sub { + my $module = $File::Find::name; + + # Only chack modules, scripts are documented in man pages. + return unless $module =~ s/\.pm$//; + + # As a first step just check public modules (version > 0.xx). + return unless system('grep', '^our \$VERSION = \'[^0]\.', $File::Find::name) == 0; + + $module =~ s{^\Q$File::Find::topdir\E/}{}; + + push @modules, $module =~ s{/}{::}gr; + }; + + my %options = ( + wanted => $scan_perl_modules, + no_chdir => 1, + ); + find(\%options, Test::Dpkg::test_get_perl_dirs()); + + return @modules; +} + +my @modules = all_pod_modules(); + +plan tests => scalar @modules; + +for my $module (@modules) { + pod_coverage_ok($module); +} |