xref: /openbsd-src/gnu/usr.bin/perl/cpan/Pod-Checker/t/pod/poderrs.t (revision 256a93a44f36679bee503f12e49566c2183f6181)
191f110e0Safresh1BEGIN {
291f110e0Safresh1   use File::Basename;
391f110e0Safresh1   my $THISDIR = dirname $0;
491f110e0Safresh1   unshift @INC, $THISDIR;
591f110e0Safresh1   require "testpchk.pl";
691f110e0Safresh1   import TestPodChecker;
791f110e0Safresh1}
891f110e0Safresh1
991f110e0Safresh1my %options = map { $_ => 1 } @ARGV;  ## convert cmdline to options-hash
1091f110e0Safresh1my $passed  = testpodchecker \%options, $0;
1191f110e0Safresh1exit( ($passed == 1) ? 0 : -1 )  unless $ENV{HARNESS_ACTIVE};
1291f110e0Safresh1
1391f110e0Safresh1### Deliberately throw in some blank but non-empty lines
1491f110e0Safresh1
1591f110e0Safresh1### The above line should contain spaces
1691f110e0Safresh1
175759b3d2Safresh1#line 18
1891f110e0Safresh1__END__
1991f110e0Safresh1
2091f110e0Safresh1=head2 This should cause a warning
2191f110e0Safresh1
2291f110e0Safresh1=head1 NAME
2391f110e0Safresh1
2491f110e0Safresh1poderrors.t - test Pod::Checker on some pod syntax errors
2591f110e0Safresh1
265759b3d2Safresh1    GASP! A verbatim paragraph in NAME
275759b3d2Safresh1
2891f110e0Safresh1=unknown1 this is an unknown command with two N<unknownA>
2991f110e0Safresh1and D<unknownB> interior sequences.
3091f110e0Safresh1
3191f110e0Safresh1This is some paragraph text with some unknown interior sequences,
3291f110e0Safresh1such as Q<unknown2>,
3391f110e0Safresh1A<unknown3>,
3491f110e0Safresh1and Y<unknown4 V<unknown5>>.
3591f110e0Safresh1
3691f110e0Safresh1Now try some unterminated sequences like
3791f110e0Safresh1I<hello mudda!
3891f110e0Safresh1B<hello fadda!
3991f110e0Safresh1
4091f110e0Safresh1Here I am at C<camp granada!
4191f110e0Safresh1
4291f110e0Safresh1Camps is very,
4391f110e0Safresh1entertaining.
4491f110e0Safresh1And they say we'll have some fun if it stops raining!
4591f110e0Safresh1
4691f110e0Safresh1Okay, now use a non-empty blank line to terminate a paragraph and make
4791f110e0Safresh1sure we get a warning.
4891f110e0Safresh1
4991f110e0Safresh1The above blank line contains tabs and spaces only
5091f110e0Safresh1
515759b3d2Safresh1F<Many B<fcodes B<inside C<other I<fcodes F<inside I<many S<many C<more X<fcodes. S<This is X<ridiculous.>>>>>>>>>>>>
525759b3d2Safresh1
535759b3d2Safresh1A L<link|perlvar/$/> to L<perlvar/$E<sol>>
545759b3d2Safresh1
5591f110e0Safresh1=head1 Additional tests
5691f110e0Safresh1
5791f110e0Safresh1=head2 item without over
5891f110e0Safresh1
5991f110e0Safresh1=item oops
6091f110e0Safresh1
6191f110e0Safresh1=head2 back without over
6291f110e0Safresh1
6391f110e0Safresh1=back
6491f110e0Safresh1
6591f110e0Safresh1=head2 over without back
6691f110e0Safresh1
6791f110e0Safresh1=over 4
6891f110e0Safresh1
6991f110e0Safresh1=item aaps
7091f110e0Safresh1
7191f110e0Safresh1=head2 end without begin
7291f110e0Safresh1
7391f110e0Safresh1=end
7491f110e0Safresh1
755759b3d2Safresh1=end something
765759b3d2Safresh1
7791f110e0Safresh1=head2 begin and begin
7891f110e0Safresh1
7991f110e0Safresh1=begin html
8091f110e0Safresh1
8191f110e0Safresh1=begin text
8291f110e0Safresh1
835759b3d2Safresh1=end text
8491f110e0Safresh1
855759b3d2Safresh1=end html
8691f110e0Safresh1
8791f110e0Safresh1=head2 begin w/o formatter
8891f110e0Safresh1
8991f110e0Safresh1=begin
9091f110e0Safresh1
9191f110e0Safresh1=end
9291f110e0Safresh1
9391f110e0Safresh1=head2 for w/o formatter
9491f110e0Safresh1
9591f110e0Safresh1=for
9691f110e0Safresh1
9791f110e0Safresh1something...
9891f110e0Safresh1
9991f110e0Safresh1=head2 Nested sequences of the same type
10091f110e0Safresh1
10191f110e0Safresh1C<code I<italic C<code again!>>>
10291f110e0Safresh1
10391f110e0Safresh1=head2 Garbled entities
10491f110e0Safresh1
10591f110e0Safresh1E<alea iacta est>
10691f110e0Safresh1E<C<auml>>
10791f110e0Safresh1E<abcI<bla>>
10891f110e0Safresh1E<0x100>
10991f110e0Safresh1E<07777>
11091f110e0Safresh1E<300>
1115759b3d2Safresh1E<unknown_entity>
11291f110e0Safresh1
11391f110e0Safresh1=head2 Unresolved internal links
11491f110e0Safresh1
11591f110e0Safresh1L</"begin or begin">
11691f110e0Safresh1L<"end with begin">
11791f110e0Safresh1L</OoPs>
11891f110e0Safresh1
11991f110e0Safresh1=head2 Some links with problems
12091f110e0Safresh1
12191f110e0Safresh1L<abc
12291f110e0Safresh1def>
12391f110e0Safresh1L<>
124*256a93a4Safresh1L</>
125*256a93a4Safresh1L<wheeee|/>
12691f110e0Safresh1L<   aha>
12791f110e0Safresh1L<oho   >
1285759b3d2Safresh1L<  weehee  >
12991f110e0Safresh1L<"Warnings"> this one is ok
13091f110e0Safresh1L</unescaped> ok too, this POD has an X of the same name
1315759b3d2Safresh1
1325759b3d2Safresh1L<<  lead >>
1335759b3d2Safresh1L<< trail  >>
1345759b3d2Safresh1L<< neither >>
1355759b3d2Safresh1L<<<  both  >>>
1365759b3d2Safresh1
1375759b3d2Safresh1L<<<<>>>>
1385759b3d2Safresh1
1395759b3d2Safresh1L<<<< >>>>
1405759b3d2Safresh1
1415759b3d2Safresh1L<<<<  >>>>
14291f110e0Safresh1
14391f110e0Safresh1=head2 Warnings
14491f110e0Safresh1
14591f110e0Safresh1L<passwd(5)>
14691f110e0Safresh1L<some text with / in it|perlvar/$|> should give warnings as hell
14791f110e0Safresh1
14891f110e0Safresh1=over 4
14991f110e0Safresh1
15091f110e0Safresh1=item bla
15191f110e0Safresh1
15291f110e0Safresh1=back 200
15391f110e0Safresh1
15491f110e0Safresh1the 200 is evil
15591f110e0Safresh1
15691f110e0Safresh1X<unescaped>see these unescaped < and > in the text?
15791f110e0Safresh1
15891f110e0Safresh1=head2 Misc
15991f110e0Safresh1
16091f110e0Safresh1Z<ddd> should be empty
16191f110e0Safresh1
16291f110e0Safresh1X<> should not be empty
16391f110e0Safresh1
1645759b3d2Safresh1X<0> should not generate a warning about being empty
1655759b3d2Safresh1
1665759b3d2Safresh1E<> should not be empty
1675759b3d2Safresh1
16891f110e0Safresh1=over four
16991f110e0Safresh1
17091f110e0Safresh1This paragrapgh is misplaced - it ought to be an item.
17191f110e0Safresh1
17291f110e0Safresh1=item four should be numeric!
17391f110e0Safresh1
1745759b3d2Safresh1=back
1755759b3d2Safresh1
1765759b3d2Safresh1=over 4
1775759b3d2Safresh1
17891f110e0Safresh1=item
17991f110e0Safresh1
18091f110e0Safresh1=item blah
18191f110e0Safresh1
18291f110e0Safresh1=item previous is all empty!!!
18391f110e0Safresh1
18491f110e0Safresh1=back
18591f110e0Safresh1
1865759b3d2Safresh1=over
1875759b3d2Safresh1
1885759b3d2Safresh1    This verbatim paragraph should not be here. Spaces are on the line below this
1895759b3d2Safresh1
1905759b3d2Safresh1=item *
1915759b3d2Safresh1
1925759b3d2Safresh1bullet
1935759b3d2Safresh1
1945759b3d2Safresh1=item 1
1955759b3d2Safresh1
1965759b3d2Safresh1number, uh oh
1975759b3d2Safresh1
1985759b3d2Safresh1=back
1995759b3d2Safresh1
2005759b3d2Safresh1=over
2015759b3d2Safresh1
2025759b3d2Safresh1=item *
2035759b3d2Safresh1
2045759b3d2Safresh1first bullet
2055759b3d2Safresh1
2065759b3d2Safresh1=item 1
2075759b3d2Safresh1
2085759b3d2Safresh1then number
2095759b3d2Safresh1
2105759b3d2Safresh1=item finally definition
2115759b3d2Safresh1
2125759b3d2Safresh1=back
2135759b3d2Safresh1
2145759b3d2Safresh1=over
2155759b3d2Safresh1
2165759b3d2Safresh1=item 1
2175759b3d2Safresh1
2185759b3d2Safresh1first number
2195759b3d2Safresh1
2205759b3d2Safresh1=item 3
2215759b3d2Safresh1
2225759b3d2Safresh1bad numbering
2235759b3d2Safresh1
2245759b3d2Safresh1=item then definition
2255759b3d2Safresh1
2265759b3d2Safresh1=item *
2275759b3d2Safresh1
2285759b3d2Safresh1finally bullet
2295759b3d2Safresh1
2305759b3d2Safresh1=back
2315759b3d2Safresh1
2325759b3d2Safresh1=over
2335759b3d2Safresh1
2345759b3d2Safresh1=item first defintion
2355759b3d2Safresh1
2365759b3d2Safresh1=item *
2375759b3d2Safresh1
2385759b3d2Safresh1then bullet
2395759b3d2Safresh1
2405759b3d2Safresh1=item 1
2415759b3d2Safresh1
2425759b3d2Safresh1finally number
2435759b3d2Safresh1
2445759b3d2Safresh1=item second definition
2455759b3d2Safresh1
2465759b3d2Safresh1    This should not generate an empty =item warning,
2475759b3d2Safresh1    because it has verbatim text.
2485759b3d2Safresh1
2495759b3d2Safresh1=back
2505759b3d2Safresh1
2515759b3d2Safresh1Empty over/back:
25291f110e0Safresh1
25391f110e0Safresh1=over 4
25491f110e0Safresh1
2555759b3d2Safresh1=over 2
2565759b3d2Safresh1
2575759b3d2Safresh1=back
2585759b3d2Safresh1
25991f110e0Safresh1=back
26091f110e0Safresh1
26191f110e0Safresh1item w/o name
26291f110e0Safresh1
26391f110e0Safresh1=cut
26491f110e0Safresh1
26591f110e0Safresh1=pod bla
26691f110e0Safresh1
26791f110e0Safresh1bla is evil
26891f110e0Safresh1
26991f110e0Safresh1=cut blub
27091f110e0Safresh1
27191f110e0Safresh1blub is evil
27291f110e0Safresh1
27391f110e0Safresh1=head2 reoccurence
27491f110e0Safresh1
27591f110e0Safresh1=over 4
27691f110e0Safresh1
27791f110e0Safresh1=item Misc
27891f110e0Safresh1
27991f110e0Safresh1we already have a head Misc
28091f110e0Safresh1
28191f110e0Safresh1=back
28291f110e0Safresh1
28391f110e0Safresh1=head2 some heading
28491f110e0Safresh1
28591f110e0Safresh1=head2 another one
28691f110e0Safresh1
28791f110e0Safresh1previous section is empty!
28891f110e0Safresh1
28991f110e0Safresh1=head1 LINK TESTS
29091f110e0Safresh1
29191f110e0Safresh1
2925759b3d2Safresh1
2935759b3d2Safresh1
2945759b3d2Safresh1
2955759b3d2Safresh1
2965759b3d2Safresh1
2975759b3d2Safresh1
2985759b3d2Safresh1
2995759b3d2Safresh1
30091f110e0Safresh1L<perlop/"I/O Operators">
3015759b3d2Safresh1don't trigger a warning because node is quoted
3025759b3d2Safresh1
3035759b3d2Safresh1L<"I/O Operators">
3045759b3d2Safresh1incorrectly interpreted as 'O Operators in I', but this is deprecated syntax, as per perlpodspec.
3055759b3d2Safresh1no warning due to quotes
3065759b3d2Safresh1
3075759b3d2Safresh1=head1
3085759b3d2Safresh1
3095759b3d2Safresh1Empty head above and unclosed over/begins below
3105759b3d2Safresh1
3115759b3d2Safresh1=head3 test X<stuff> I<test>
3125759b3d2Safresh1
3135759b3d2Safresh1=over
3145759b3d2Safresh1
3155759b3d2Safresh1=begin html
3165759b3d2Safresh1
3175759b3d2Safresh1What?
3185759b3d2Safresh1
3195759b3d2Safresh1=begin :xml
3205759b3d2Safresh1
3215759b3d2Safresh1L<This pod's NAME in a link means it is internal|poderrors.t/link_to_nowhere>,
3225759b3d2Safresh1so should generate a warning
32391f110e0Safresh1
32491f110e0Safresh1=cut
32591f110e0Safresh1
32691f110e0Safresh1
327