xref: /openbsd-src/gnu/usr.bin/perl/cpan/podlators/t/man/heading.t (revision e068048151d29f2562a32185e21a8ba885482260)
1b8851fccSafresh1#!/usr/bin/perl
2b8851fccSafresh1#
3b8851fccSafresh1# Additional tests for Pod::Man heading generation.
4b8851fccSafresh1#
5*e0680481Safresh1# Copyright 2002, 2004, 2006, 2008-2009, 2012, 2015, 2018-2019, 2022
6b8851fccSafresh1#     Russ Allbery <rra@cpan.org>
7b8851fccSafresh1#
8b8851fccSafresh1# This program is free software; you may redistribute it and/or modify it
9b8851fccSafresh1# under the same terms as Perl itself.
10f3efcd01Safresh1#
11f3efcd01Safresh1# SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl
12b8851fccSafresh1
1356d68f1eSafresh1use 5.008;
14b8851fccSafresh1use strict;
15b8851fccSafresh1use warnings;
16b8851fccSafresh1
17b8851fccSafresh1use lib 't/lib';
18b8851fccSafresh1
19*e0680481Safresh1use Test::More tests => 11;
20b8851fccSafresh1use Test::Podlators qw(read_test_data);
21b8851fccSafresh1
22b8851fccSafresh1BEGIN {
23b8851fccSafresh1    use_ok('Pod::Man');
24b8851fccSafresh1}
25b8851fccSafresh1
26b8851fccSafresh1# Loop through all the test data, generate output, and compare it to the
27b8851fccSafresh1# desired output data.
28*e0680481Safresh1my $testnum = 1;
29b8851fccSafresh1while (defined(my $data = read_test_data(\*DATA, { options => 1 }))) {
30b8851fccSafresh1    my $parser = Pod::Man->new(%{ $data->{options} });
31b8851fccSafresh1    isa_ok($parser, 'Pod::Man', 'Parser object');
32b8851fccSafresh1
33b8851fccSafresh1    # Run the parser, storing the output into a Perl variable.
34b8851fccSafresh1    my $got;
35b8851fccSafresh1    $parser->output_string(\$got);
36b8851fccSafresh1    $parser->parse_string_document($data->{input});
37b8851fccSafresh1
38b8851fccSafresh1    # Extract just the heading line.
39b8851fccSafresh1    my ($heading) = ($got =~ m{^ ([.]TH [^\n]+ \n)}xms);
40b8851fccSafresh1
41b8851fccSafresh1    # Compare the results.
42*e0680481Safresh1    is($heading, $data->{output}, "Test $testnum");
43*e0680481Safresh1    $testnum++;
44b8851fccSafresh1}
45b8851fccSafresh1
46b8851fccSafresh1# Below the marker are sets of options, the input data, and the corresponding
47b8851fccSafresh1# expected .TH line from the man page.  The options and output are separated
48b8851fccSafresh1# by lines containing only ###.
49b8851fccSafresh1
50b8851fccSafresh1__DATA__
51b8851fccSafresh1
52b8851fccSafresh1###
53b8851fccSafresh1date 2009-01-17
54b8851fccSafresh1release 1.0
55b8851fccSafresh1###
56b8851fccSafresh1=head1 NAME
57b8851fccSafresh1
58b8851fccSafresh1test - Test man page
59b8851fccSafresh1###
60*e0680481Safresh1.TH STDIN 1 2009-01-17 1.0 "User Contributed Perl Documentation"
61b8851fccSafresh1###
62b8851fccSafresh1
63b8851fccSafresh1###
64b8851fccSafresh1date 2009-01-17
65b8851fccSafresh1name TEST
66b8851fccSafresh1section 8
67b8851fccSafresh1release 2.0-beta
68b8851fccSafresh1###
69b8851fccSafresh1=head1 NAME
70b8851fccSafresh1
71b8851fccSafresh1test - Test man page
72b8851fccSafresh1###
73*e0680481Safresh1.TH TEST 8 2009-01-17 2.0-beta "User Contributed Perl Documentation"
74b8851fccSafresh1###
75b8851fccSafresh1
76b8851fccSafresh1###
77b8851fccSafresh1date 2009-01-17
78b8851fccSafresh1release 1.0
79b8851fccSafresh1center Testing Documentation
80b8851fccSafresh1###
81b8851fccSafresh1=head1 NAME
82b8851fccSafresh1
83b8851fccSafresh1test - Test man page
84b8851fccSafresh1###
85*e0680481Safresh1.TH STDIN 1 2009-01-17 1.0 "Testing Documentation"
86b8851fccSafresh1###
87b8851fccSafresh1
88b8851fccSafresh1###
89b8851fccSafresh1date
90b8851fccSafresh1release
91b8851fccSafresh1center
92b8851fccSafresh1###
93b8851fccSafresh1=head1 NAME
94b8851fccSafresh1
95b8851fccSafresh1test - Test man page
96b8851fccSafresh1###
97b8851fccSafresh1.TH STDIN 1 "" "" ""
98b8851fccSafresh1###
99*e0680481Safresh1
100*e0680481Safresh1###
101*e0680481Safresh1date foo ""bar""
102*e0680481Safresh1release "quoted"
103*e0680481Safresh1section 4"
104*e0680481Safresh1name "BAR
105*e0680481Safresh1center Something
106*e0680481Safresh1###
107*e0680481Safresh1=head1 NAME
108*e0680481Safresh1
109*e0680481Safresh1test - Test man page
110*e0680481Safresh1###
111*e0680481Safresh1.TH """BAR" "4""" "foo """"bar""""" """quoted""" Something
112*e0680481Safresh1###
113