[Reproducible-commits] [dpkg] 26/33: t: Add POD coverage support for public perl modules

Mattia Rizzolo mattia at debian.org
Mon Aug 1 10:26:00 UTC 2016


This is an automated email from the git hooks/post-receive script.

mattia pushed a commit to branch master
in repository dpkg.

commit d5f3d026b87c345f3158f8033e252df58899b515
Author: Guillem Jover <guillem at debian.org>
Date:   Sat Jul 23 14:18:38 2016 +0200

    t: Add POD coverage support for public perl modules
---
 Makefile.am      |  1 +
 debian/changelog |  2 ++
 t/pod-coverage.t | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 63 insertions(+)

diff --git a/Makefile.am b/Makefile.am
index 5f96cee..4911b61 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -146,6 +146,7 @@ endif
 test_scripts = \
 	t/pod.t \
 	t/pod-spell.t \
+	t/pod-coverage.t \
 	t/synopsis.t \
 	t/minimum-version.t \
 	t/syntax.t \
diff --git a/debian/changelog b/debian/changelog
index 3914c58..b8dd4d5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -17,6 +17,8 @@ dpkg (1.18.10) UNRELEASED; urgency=medium
     - Rename various private methods and functions with an underscore prefix
       and unified names.
     - Refactor perl modules directory list into a new function in Test::Dpkg.
+  * Test suite:
+    - Add new POD coverage author test for public perl modules.
   * Documentation:
     - Document Testsuite-Triggers in dsc(5).
     - Fix deb-changes(5) description to talk about .changes instead of .dsc.
diff --git a/t/pod-coverage.t b/t/pod-coverage.t
new file mode 100644
index 0000000..3281bea
--- /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);
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/dpkg.git



More information about the Reproducible-commits mailing list