The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
BEGIN {
   use File::Basename;
   my $THISDIR = dirname $0;
   unshift @INC, $THISDIR;
   require "testpchk.pl";
   import TestPodChecker;
}

my %options = map { $_ => 1 } @ARGV;  ## convert cmdline to options-hash
my $passed  = testpodchecker \%options, $0;
exit( ($passed == 1) ? 0 : -1 )  unless $ENV{HARNESS_ACTIVE};

### Deliberately throw in some blank but non-empty lines
                                        
### The above line should contain spaces

#line 18
__END__

=head2 This should cause a warning

=head1 NAME

poderrors.t - test Pod::Checker on some pod syntax errors

    GASP! A verbatim paragraph in NAME

=unknown1 this is an unknown command with two N<unknownA>
and D<unknownB> interior sequences.

This is some paragraph text with some unknown interior sequences,
such as Q<unknown2>,
A<unknown3>,
and Y<unknown4 V<unknown5>>.

Now try some unterminated sequences like
I<hello mudda!
B<hello fadda!

Here I am at C<camp granada!

Camps is very,
entertaining.
And they say we'll have some fun if it stops raining!

Okay, now use a non-empty blank line to terminate a paragraph and make
sure we get a warning.
	                                     	
The above blank line contains tabs and spaces only

F<Many B<fcodes B<inside C<other I<fcodes F<inside I<many S<many C<more X<fcodes. S<This is X<ridiculous.>>>>>>>>>>>>

A L<link|perlvar/$/> to L<perlvar/$E<sol>>

=head1 Additional tests

=head2 item without over

=item oops

=head2 back without over

=back

=head2 over without back

=over 4

=item aaps

=head2 end without begin

=end

=end something

=head2 begin and begin

=begin html

=begin text

=end text

=end html

=head2 begin w/o formatter

=begin

=end

=head2 for w/o formatter

=for

something...

=head2 Nested sequences of the same type

C<code I<italic C<code again!>>>

=head2 Garbled entities

E<alea iacta est>
E<C<auml>>
E<abcI<bla>>
E<0x100>
E<07777>
E<300>
E<unknown_entity>

=head2 Unresolved internal links

L</"begin or begin">
L<"end with begin">
L</OoPs>

=head2 Some links with problems

L<abc
def>
L<>
L<   aha>
L<oho   >
L<  weehee  >
L<"Warnings"> this one is ok
L</unescaped> ok too, this POD has an X of the same name

L<<  lead >>
L<< trail  >>
L<< neither >>
L<<<  both  >>>

L<<<<>>>>

L<<<< >>>>

L<<<<  >>>>

=head2 Warnings

L<passwd(5)>
L<some text with / in it|perlvar/$|> should give warnings as hell

=over 4

=item bla

=back 200

the 200 is evil

X<unescaped>see these unescaped < and > in the text?

=head2 Misc

Z<ddd> should be empty

X<> should not be empty

X<0> should not generate a warning about being empty

E<> should not be empty

=over four

This paragrapgh is misplaced - it ought to be an item.

=item four should be numeric!

=back

=over 4

=item

=item blah

=item previous is all empty!!!

=back

=over

    This verbatim paragraph should not be here. Spaces are on the line below this
    
=item *

bullet

=item 1

number, uh oh

=back

=over

=item *

first bullet

=item 1

then number

=item finally definition

=back

=over

=item 1

first number

=item 3

bad numbering

=item then definition

=item *

finally bullet

=back

=over

=item first defintion

=item *

then bullet

=item 1

finally number

=item second definition

    This should not generate an empty =item warning,
    because it has verbatim text.

=back

Empty over/back:

=over 4

=over 2

=back

=back

item w/o name

=cut

=pod bla

bla is evil

=cut blub

blub is evil

=head2 reoccurence

=over 4

=item Misc

we already have a head Misc

=back

=head2 some heading

=head2 another one

previous section is empty!

=head1 LINK TESTS










L<perlop/"I/O Operators">
don't trigger a warning because node is quoted

L<"I/O Operators">
incorrectly interpreted as 'O Operators in I', but this is deprecated syntax, as per perlpodspec.
no warning due to quotes

=head1

Empty head above and unclosed over/begins below

=head3 test X<stuff> I<test>

=over

=begin html

What?

=begin :xml

L<This pod's NAME in a link means it is internal|poderrors.t/link_to_nowhere>,
so should generate a warning

=cut