summaryrefslogtreecommitdiff
path: root/t/pod-coverage.t
diff options
context:
space:
mode:
authorGuillem Jover <guillem@debian.org>2016-07-23 14:18:38 +0200
committerGuillem Jover <guillem@debian.org>2016-07-31 16:10:39 +0200
commitd5f3d026b87c345f3158f8033e252df58899b515 (patch)
treebed82dc4ac34896e5b000cd046b91fd642e0f7e7 /t/pod-coverage.t
parent6e3747138b002e7e0a6478d3662b6160824171c2 (diff)
downloaddpkg-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.t60
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);
+}