@@ -230,6 +230,7 @@ mod syntax {
230230 err ! ( unclosed5( "<\t " ) => SyntaxError :: UnclosedTag ) ;
231231 err ! ( unclosed6( "<\r " ) => SyntaxError :: UnclosedTag ) ;
232232 err ! ( unclosed7( "<\n " ) => SyntaxError :: UnclosedTag ) ;
233+ err ! ( unclosed8( "< \t \r \n x" ) => SyntaxError :: UnclosedTag ) ;
233234
234235 /// Closed tags can be tested only in pair with open tags, because otherwise
235236 /// `IllFormedError::UnmatchedEndTag` will be raised
@@ -278,20 +279,25 @@ mod syntax {
278279 }
279280 }
280281
281- err ! ( unclosed_bang1( "<!" ) => SyntaxError :: InvalidBangMarkup ) ;
282- err ! ( unclosed_bang2( "<!>" ) => SyntaxError :: InvalidBangMarkup ) ;
282+ err ! ( unclosed_bang1( "<!" ) => SyntaxError :: InvalidBangMarkup ) ;
283+ err ! ( unclosed_bang2( "<!>" ) => SyntaxError :: InvalidBangMarkup ) ;
284+ err ! ( unclosed_bang3( "<!a" ) => SyntaxError :: InvalidBangMarkup ) ;
285+ err ! ( unclosed_bang4( "<!a>" ) => SyntaxError :: InvalidBangMarkup ) ;
283286
284287 /// https://www.w3.org/TR/xml11/#NT-Comment
285288 mod comment {
286289 use super :: * ;
287290
288- err ! ( unclosed1( "<!-" ) => SyntaxError :: UnclosedComment ) ;
289- err ! ( unclosed2( "<!--" ) => SyntaxError :: UnclosedComment ) ;
290- err ! ( unclosed3( "<!->" ) => SyntaxError :: UnclosedComment ) ;
291- err ! ( unclosed4( "<!---" ) => SyntaxError :: UnclosedComment ) ;
292- err ! ( unclosed5( "<!-->" ) => SyntaxError :: UnclosedComment ) ;
293- err ! ( unclosed6( "<!----" ) => SyntaxError :: UnclosedComment ) ;
294- err ! ( unclosed7( "<!--->" ) => SyntaxError :: UnclosedComment ) ;
291+ err ! ( unclosed01( "<!-" ) => SyntaxError :: UnclosedComment ) ;
292+ err ! ( unclosed02( "<!--" ) => SyntaxError :: UnclosedComment ) ;
293+ err ! ( unclosed03( "<!->" ) => SyntaxError :: UnclosedComment ) ;
294+ err ! ( unclosed04( "<!-a" ) => SyntaxError :: UnclosedComment ) ;
295+ err ! ( unclosed05( "<!---" ) => SyntaxError :: UnclosedComment ) ;
296+ err ! ( unclosed06( "<!-->" ) => SyntaxError :: UnclosedComment ) ;
297+ err ! ( unclosed07( "<!--b" ) => SyntaxError :: UnclosedComment ) ;
298+ err ! ( unclosed08( "<!----" ) => SyntaxError :: UnclosedComment ) ;
299+ err ! ( unclosed09( "<!--->" ) => SyntaxError :: UnclosedComment ) ;
300+ err ! ( unclosed10( "<!---c" ) => SyntaxError :: UnclosedComment ) ;
295301
296302 ok ! ( normal( "<!---->" ) => Event :: Comment ( BytesText :: new( "" ) ) ) ;
297303 }
@@ -300,15 +306,31 @@ mod syntax {
300306 mod cdata {
301307 use super :: * ;
302308
303- err ! ( unclosed1( "<![" ) => SyntaxError :: UnclosedCData ) ;
304- err ! ( unclosed2( "<![C" ) => SyntaxError :: UnclosedCData ) ;
305- err ! ( unclosed3( "<![CD" ) => SyntaxError :: UnclosedCData ) ;
306- err ! ( unclosed4( "<![CDA" ) => SyntaxError :: UnclosedCData ) ;
307- err ! ( unclosed5( "<![CDAT" ) => SyntaxError :: UnclosedCData ) ;
308- err ! ( unclosed6( "<![CDATA" ) => SyntaxError :: UnclosedCData ) ;
309- err ! ( unclosed7( "<![CDATA[" ) => SyntaxError :: UnclosedCData ) ;
310- err ! ( unclosed8( "<![CDATA[]" ) => SyntaxError :: UnclosedCData ) ;
311- err ! ( unclosed9( "<![CDATA[]]" ) => SyntaxError :: UnclosedCData ) ;
309+ err ! ( unclosed01( "<![" ) => SyntaxError :: UnclosedCData ) ;
310+ err ! ( unclosed02( "<![C" ) => SyntaxError :: UnclosedCData ) ;
311+ err ! ( unclosed03( "<![a" ) => SyntaxError :: UnclosedCData ) ;
312+ err ! ( unclosed04( "<![>" ) => SyntaxError :: UnclosedCData ) ;
313+ err ! ( unclosed05( "<![CD" ) => SyntaxError :: UnclosedCData ) ;
314+ err ! ( unclosed06( "<![Cb" ) => SyntaxError :: UnclosedCData ) ;
315+ err ! ( unclosed07( "<![C>" ) => SyntaxError :: UnclosedCData ) ;
316+ err ! ( unclosed08( "<![CDA" ) => SyntaxError :: UnclosedCData ) ;
317+ err ! ( unclosed09( "<![CDc" ) => SyntaxError :: UnclosedCData ) ;
318+ err ! ( unclosed10( "<![CD>" ) => SyntaxError :: UnclosedCData ) ;
319+ err ! ( unclosed11( "<![CDAT" ) => SyntaxError :: UnclosedCData ) ;
320+ err ! ( unclosed12( "<![CDAd" ) => SyntaxError :: UnclosedCData ) ;
321+ err ! ( unclosed13( "<![CDA>" ) => SyntaxError :: UnclosedCData ) ;
322+ err ! ( unclosed14( "<![CDATA" ) => SyntaxError :: UnclosedCData ) ;
323+ err ! ( unclosed15( "<![CDATe" ) => SyntaxError :: UnclosedCData ) ;
324+ err ! ( unclosed16( "<![CDAT>" ) => SyntaxError :: UnclosedCData ) ;
325+ err ! ( unclosed17( "<![CDATA[" ) => SyntaxError :: UnclosedCData ) ;
326+ err ! ( unclosed18( "<![CDATAf" ) => SyntaxError :: UnclosedCData ) ;
327+ err ! ( unclosed19( "<![CDATA>" ) => SyntaxError :: UnclosedCData ) ;
328+ err ! ( unclosed20( "<![CDATA[]" ) => SyntaxError :: UnclosedCData ) ;
329+ err ! ( unclosed21( "<![CDATA[g" ) => SyntaxError :: UnclosedCData ) ;
330+ err ! ( unclosed22( "<![CDATA[>" ) => SyntaxError :: UnclosedCData ) ;
331+ err ! ( unclosed23( "<![CDATA[]]" ) => SyntaxError :: UnclosedCData ) ;
332+ err ! ( unclosed24( "<![CDATA[]h" ) => SyntaxError :: UnclosedCData ) ;
333+ err ! ( unclosed25( "<![CDATA[]>" ) => SyntaxError :: UnclosedCData ) ;
312334
313335 ok ! ( normal( "<![CDATA[]]>" ) => Event :: CData ( BytesCData :: new( "" ) ) ) ;
314336 }
@@ -319,15 +341,29 @@ mod syntax {
319341 mod doctype {
320342 use super :: * ;
321343
322- err ! ( unclosed1( "<!D" ) => SyntaxError :: UnclosedDoctype ) ;
323- err ! ( unclosed2( "<!DO" ) => SyntaxError :: UnclosedDoctype ) ;
324- err ! ( unclosed3( "<!DOC" ) => SyntaxError :: UnclosedDoctype ) ;
325- err ! ( unclosed4( "<!DOCT" ) => SyntaxError :: UnclosedDoctype ) ;
326- err ! ( unclosed5( "<!DOCTY" ) => SyntaxError :: UnclosedDoctype ) ;
327- err ! ( unclosed6( "<!DOCTYP" ) => SyntaxError :: UnclosedDoctype ) ;
328- err ! ( unclosed7( "<!DOCTYPE" ) => SyntaxError :: UnclosedDoctype ) ;
329- err ! ( unclosed8( "<!DOCTYPE " ) => SyntaxError :: UnclosedDoctype ) ;
330- err ! ( unclosed9( "<!DOCTYPE e" ) => SyntaxError :: UnclosedDoctype ) ;
344+ err ! ( unclosed01( "<!D" ) => SyntaxError :: UnclosedDoctype ) ;
345+ err ! ( unclosed02( "<!DO" ) => SyntaxError :: UnclosedDoctype ) ;
346+ err ! ( unclosed03( "<!Da" ) => SyntaxError :: UnclosedDoctype ) ;
347+ err ! ( unclosed04( "<!D>" ) => SyntaxError :: UnclosedDoctype ) ;
348+ err ! ( unclosed05( "<!DOC" ) => SyntaxError :: UnclosedDoctype ) ;
349+ err ! ( unclosed06( "<!DOb" ) => SyntaxError :: UnclosedDoctype ) ;
350+ err ! ( unclosed07( "<!DO>" ) => SyntaxError :: UnclosedDoctype ) ;
351+ err ! ( unclosed08( "<!DOCT" ) => SyntaxError :: UnclosedDoctype ) ;
352+ err ! ( unclosed09( "<!DOCc" ) => SyntaxError :: UnclosedDoctype ) ;
353+ err ! ( unclosed10( "<!DOC>" ) => SyntaxError :: UnclosedDoctype ) ;
354+ err ! ( unclosed11( "<!DOCTY" ) => SyntaxError :: UnclosedDoctype ) ;
355+ err ! ( unclosed12( "<!DOCTd" ) => SyntaxError :: UnclosedDoctype ) ;
356+ err ! ( unclosed13( "<!DOCT>" ) => SyntaxError :: UnclosedDoctype ) ;
357+ err ! ( unclosed14( "<!DOCTYP" ) => SyntaxError :: UnclosedDoctype ) ;
358+ err ! ( unclosed15( "<!DOCTYe" ) => SyntaxError :: UnclosedDoctype ) ;
359+ err ! ( unclosed16( "<!DOCTY>" ) => SyntaxError :: UnclosedDoctype ) ;
360+ err ! ( unclosed17( "<!DOCTYPE" ) => SyntaxError :: UnclosedDoctype ) ;
361+ err ! ( unclosed18( "<!DOCTYPf" ) => SyntaxError :: UnclosedDoctype ) ;
362+ err ! ( unclosed19( "<!DOCTYP>" ) => SyntaxError :: UnclosedDoctype ) ;
363+ err ! ( unclosed20( "<!DOCTYPE " ) => SyntaxError :: UnclosedDoctype ) ;
364+ err ! ( unclosed21( "<!DOCTYPEg" ) => SyntaxError :: UnclosedDoctype ) ;
365+ // <!DOCTYPE> results in IllFormed(MissingDoctypeName), checked below
366+ err ! ( unclosed22( "<!DOCTYPE e" ) => SyntaxError :: UnclosedDoctype ) ;
331367
332368 // According to the grammar, XML declaration MUST contain at least one space
333369 // and an element name, but we do not consider this as a _syntax_ error.
0 commit comments