summaryrefslogtreecommitdiff
path: root/cpan/podlators/t/man/empty.t
blob: 9e243afc41839769856033832e68cc1fecc0e726 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/perl
#
# Test Pod::Man with a document that produces only errors.
#
# Copyright 2013, 2016, 2018-2019, 2022 Russ Allbery <rra@cpan.org>
#
# This program is free software; you may redistribute it and/or modify it
# under the same terms as Perl itself.
#
# SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl

use 5.008;
use strict;
use warnings;

use Test::More tests => 8;

# Load the module.
BEGIN {
    use_ok('Pod::Man');
}

# Set up Pod::Man to output to a string.
my $parser = Pod::Man->new;
isa_ok($parser, 'Pod::Man');
my $output;
$parser->output_string(\$output);

# Ensure there are no warnings by dying on a warning, forcing a test failure.
local $SIG{__WARN__} = sub { croak($_[0]) };

# Try a POD document where the only command is invalid.  Make sure it succeeds
# and doesn't throw an exception.
my $invalid_char = chr(utf8::unicode_to_native(0xa0));
ok(eval { $parser->parse_string_document("=$invalid_char") },
    'Parsed invalid document');
is($@, q{}, '...with no errors');

# With recent Pod::Simple, there will be a POD ERRORS section.  With older
# versions of Pod::Simple, we have to skip the test since it doesn't trigger
# this problem.
SKIP: {
    if ($output eq q{}) {
        skip('Pod::Simple does not produce errors for invalid commands', 1);
    }
    like(
        $output,
        qr{ [.]SH [ ] "POD [ ] ERRORS" }xms,
        '...and output contains a POD ERRORS section'
    );
}

# Try with a document containing only =cut.
ok(eval { $parser->parse_string_document('=cut') }, 'Parsed =cut document');
is($@, q{}, '...with no errors');

# Same check for a POD ERRORS section.
SKIP: {
    if ($output eq q{}) {
        skip('Pod::Simple does not produce errors for invalid commands', 1);
    }
    like(
        $output,
        qr{ [.]SH [ ] "POD [ ] ERRORS" }xms,
        '...and output contains a POD ERRORS section'
    );
}