diff options
Diffstat (limited to 't/dh_installman')
-rwxr-xr-x | t/dh_installman/01-basics.t | 71 | ||||
-rw-r--r-- | t/dh_installman/manpage-compressed.pod | 17 | ||||
-rw-r--r-- | t/dh_installman/manpage-uncompressed.pod | 17 |
3 files changed, 105 insertions, 0 deletions
diff --git a/t/dh_installman/01-basics.t b/t/dh_installman/01-basics.t new file mode 100755 index 0000000..6e90cc9 --- /dev/null +++ b/t/dh_installman/01-basics.t @@ -0,0 +1,71 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Test::More; + +use File::Basename qw(dirname); +use lib dirname(dirname(__FILE__)); +use Test::DH; +use File::Path qw(remove_tree make_path); +use Debian::Debhelper::Dh_Lib qw(!dirname); + +sub has_man_db_tool { + my ($tool) = @_; + open(my $old_stderr, '>&', *STDERR) or error("dup(STDERR, tmp_fd): $!"); + open(*STDERR, '>', '/dev/null') or error("re-open stderr as /dev/null: $!"); + + my $res = defined(`$tool --version`); + open(*STDERR, '>&', $old_stderr) or error("dup(tmp_fd, STDERR): $!"); + close($old_stderr); + return $res; +} + +if (has_man_db_tool('man') || has_man_db_tool('man-recode')) { + plan(tests => 2); +} else { + plan(skip_all => 'Test requires man or man-recode'); +} + +our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw( + manpage-uncompressed.pod + manpage-compressed.pod +)); + +each_compat_subtest { + my ($compat) = @_; + if (! -d 'generated-manpages') { + # Static data that can be reused. Generate only in the first test + make_path('generated-manpages'); + for my $basename (qw(manpage-uncompressed manpage-compressed)) { + doit('pod2man', '--utf8', '-c', 'Debhelper', '-r', '1.0', "${basename}.pod", + "generated-manpages/${basename}.1"); + } + doit('gzip', '-9n', 'generated-manpages/manpage-compressed.1'); + } + ok(run_dh_tool('dh_installman', 'generated-manpages/manpage-uncompressed.1', + 'generated-manpages/manpage-compressed.1.gz')); + ok(-e 'debian/debhelper/usr/share/man/man1/manpage-uncompressed.1'); + ok(-e 'debian/debhelper/usr/share/man/man1/manpage-compressed.1'); + remove_tree('debian/debhelper', 'debian/tmp', 'debian/.debhelper'); +}; + +each_compat_subtest { + my ($compat) = @_; + if (! -d 'generated-manpages') { + # Static data that can be reused. Generate only in the first test + make_path('generated-manpages'); + for my $basename (qw(manpage-uncompressed manpage-compressed)) { + doit('pod2man', '--utf8', '-c', 'Debhelper', '-r', '1.0', "${basename}.pod", + "generated-manpages/${basename}.1"); + } + doit('gzip', '-9n', 'generated-manpages/manpage-compressed.1'); + } + install_dir('debian/debhelper/usr/share/man/man1'); + install_file('generated-manpages/manpage-uncompressed.1', 'debian/debhelper/usr/share/man/man1/manpage-uncompressed.1'); + install_file('generated-manpages/manpage-compressed.1.gz', 'debian/debhelper/usr/share/man/man1/manpage-compressed.1.gz'); + ok(run_dh_tool('dh_installman')); + ok(-e 'debian/debhelper/usr/share/man/man1/manpage-uncompressed.1'); + ok(-e 'debian/debhelper/usr/share/man/man1/manpage-compressed.1'); + remove_tree('debian/debhelper', 'debian/tmp', 'debian/.debhelper'); +}; + diff --git a/t/dh_installman/manpage-compressed.pod b/t/dh_installman/manpage-compressed.pod new file mode 100644 index 0000000..d2c0596 --- /dev/null +++ b/t/dh_installman/manpage-compressed.pod @@ -0,0 +1,17 @@ +=head1 NAME + +manpage - Something very exciting + +=head1 SYNOPSIS + +This tool does not exist but would be awesome. + +=head1 SEE ALSO + +L<debhelper(7)> + +=head1 AUTHORS + +Niels Thykier <niels@thykier.net> + +=cut diff --git a/t/dh_installman/manpage-uncompressed.pod b/t/dh_installman/manpage-uncompressed.pod new file mode 100644 index 0000000..c95037c --- /dev/null +++ b/t/dh_installman/manpage-uncompressed.pod @@ -0,0 +1,17 @@ +=head1 NAME + +manpage-uncompressed - Something very exciting + +=head1 SYNOPSIS + +This tool does not exist but would be awesome. + +=head1 SEE ALSO + +L<debhelper(7)> + +=head1 AUTHORS + +Niels Thykier <niels@thykier.net> + +=cut |