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