tests/data: mark non-XML-compliant files as such, xmllint the rest in CI

There are 58 non-compliant files. Mark them with the `notxml` keyword.
Also include the compliant ones in the GHA/checksrc xmllint CI job.

Also:
- delete XML prolog from the 3 test data files that had them.
- FILEFORMAT.md: document the `notxml` keyword.
- FILEFORMAT.md: fix a typo.

Follow-up to de49cc89ab #19470
Follow-up to f3095f0dbd #19528
Follow-up to 87ba80a6df

Closes #19595
This commit is contained in:
Viktor Szakats 2025-11-18 19:10:53 +01:00
parent 36d0f12881
commit 7f3731ce14
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
64 changed files with 71 additions and 5 deletions

View file

@ -463,6 +463,7 @@ libWebSocket
libz
libzstd
LineageOS
linter
linux
lldb
ln
@ -981,6 +982,7 @@ Xbox
XDG
xdigit
Xilinx
xmllint
XP
Xtensa
XYZ

View file

@ -128,7 +128,11 @@ jobs:
persist-credentials: false
- name: 'check'
run: git grep -z -i -l -E '^<\?xml' | xargs -0 -r xmllint >/dev/null
run: |
{
git grep -z -i -l -E '^<\?xml' || true
git grep -z -L -F 'notxml' 'tests/data/test*' || true
} | xargs -0 -r xmllint >/dev/null
miscchecks:
name: 'misc checks'

View file

@ -239,7 +239,7 @@ When running a unit test and the keywords include `unittest`, the `<tool>`
section can be left empty to use the standard unit test tool name `unitN` where
`N` is the test number.
The `text-ci` make target automatically skips test with the `flaky` keyword.
The `test-ci` make target automatically skips test with the `flaky` keyword.
Tests that have strict timing dependencies have the `timing-dependent` keyword.
These are intended to eventually be treated specially on CI builds which are
@ -248,6 +248,11 @@ often run on overloaded machines with unpredictable timing.
Tests using non-7-bit-ASCII characters must provide them with `%hex[]` or
similar.
In most cases test files comply with the XML format, and pass xmllint cleanly.
If the data file uses the `&` character, or has other, non-compliant content,
and making it XML-compliant is not possible or unpractical, use the `notxml`
keyword to exclude it from linter checks.
## `<reply>`
### `<data [nocheck="yes"] [sendzero="yes"] [hex="yes"] [nonewline="yes"] [crlf="yes|headers"]>`

View file

@ -4,6 +4,7 @@
HTTP
HTTP POST
followlocation
notxml
</keywords>
</info>
#

View file

@ -4,6 +4,7 @@
HTTP
HTTP POST
followlocation
notxml
</keywords>
</info>
#

View file

@ -4,6 +4,7 @@
HTTP
HTTP POST
--data-urlencode
notxml
</keywords>
</info>

View file

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="US-ASCII"?>
<testcase>
<info>
<keywords>

View file

@ -4,6 +4,7 @@
HTTP
HTTP POST
followlocation
notxml
</keywords>
</info>
#

View file

@ -5,6 +5,7 @@ HTTP
HTTP POST
cookies
cookiejar
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
HTTP
HTTP GET
followlocation
notxml
</keywords>
</info>
#

View file

@ -3,6 +3,7 @@
<keywords>
HTTP
HTTP FORMPOST
notxml
</keywords>
</info>
# Server-side

View file

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="US-ASCII"?>
<testcase>
<info>
<keywords>

View file

@ -3,6 +3,7 @@
<keywords>
HTTP
HTTP FORMPOST
notxml
</keywords>
</info>
# Server-side

View file

@ -3,6 +3,7 @@
<keywords>
HTTP
HTTP FORMPOST
notxml
</keywords>
</info>
# Server-side

View file

@ -5,6 +5,7 @@ HTTP
HTTP POST
--data-urlencode
--url-query
notxml
</keywords>
</info>

View file

@ -5,6 +5,7 @@
HTTP
HTTP POST
followlocation
notxml
</keywords>
</info>
#

View file

@ -4,6 +4,7 @@
HTTP
HTTP GET
--libcurl
notxml
</keywords>
</info>

View file

@ -7,6 +7,7 @@ HTTP Basic auth
HTTP set cookie
cookies
--libcurl
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
HTTP
HTTP POST
--libcurl
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
HTTP
HTTP GET
--libcurl
notxml
</keywords>
</info>

View file

@ -6,6 +6,7 @@ HTTP
HTTP FORMPOST
HTTP file upload
--libcurl
notxml
</keywords>
</info>

View file

@ -6,6 +6,7 @@ FTP
post-quote
pre-quote
--libcurl
notxml
</keywords>
</info>
# Server-side

View file

@ -5,6 +5,7 @@
<keywords>
SMTP
--libcurl
notxml
</keywords>
</info>

View file

@ -6,6 +6,7 @@ POP3
Clear Text
LIST
--libcurl
notxml
</keywords>
</info>

View file

@ -6,6 +6,7 @@ IMAP
Clear Text
FETCH
--libcurl
notxml
</keywords>
</info>

View file

@ -3,6 +3,7 @@
<keywords>
FILE
--remote-time
notxml
</keywords>
</info>

View file

@ -3,6 +3,7 @@
<keywords>
SFTP
--remote-time
notxml
</keywords>
</info>

View file

@ -2,6 +2,7 @@
<info>
<keywords>
--help
notxml
</keywords>
</info>

View file

@ -3,6 +3,7 @@
<keywords>
FILE
--help
notxml
</keywords>
</info>

View file

@ -3,6 +3,7 @@
<keywords>
FILE
--help
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
HTTP
HTTP POST
--libcurl
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
HTTP
HTTP GET
--libcurl
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
HTTP
multi
verbose logs
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
HTTP
verbose logs
flaky
notxml
</keywords>
</info>

View file

@ -3,6 +3,7 @@
<keywords>
HTTP
GLOBAL DNS CACHE
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
HTTP
HTTP PUT
followlocation
notxml
</keywords>
</info>
#

View file

@ -6,6 +6,7 @@ connection reuse
persistent connection
CURLOPT_MAXLIFETIME_CONN
verbose logs
notxml
</keywords>
</info>

View file

@ -5,6 +5,7 @@ HTTP
HTTP POST
CURLOPT_HTTPTRAILER_FUNCTION
CURLOPT_HTTPTRAILER_DATA
notxml
</keywords>
</info>

View file

@ -3,6 +3,7 @@
<keywords>
HTTP
HTTP POST
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
HTTP
HTTP GET
--no-clobber
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
script
documentation
managen
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
script
documentation
managen
notxml
</keywords>
</info>

View file

@ -3,6 +3,7 @@
<keywords>
CURLOPT_CURLU
CURLINFO_EFFECTIVE_URL
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
HTTP
HTTP GET
globbing
notxml
</keywords>
</info>
#

View file

@ -5,6 +5,7 @@ HTTP
HTTP/2
multi
verbose logs
notxml
</keywords>
</info>

View file

@ -5,6 +5,7 @@ HTTP
HTTP/2
multi
verbose logs
notxml
</keywords>
</info>

View file

@ -5,6 +5,7 @@ HTTP
HTTP/3
multi
verbose logs
notxml
</keywords>
</info>

View file

@ -4,6 +4,7 @@
HTTP
HTTP POST
HTTP Basic auth
notxml
</keywords>
</info>
#

View file

@ -4,6 +4,7 @@
HTTP
HTTP GET
-G
notxml
</keywords>
</info>
#

View file

@ -4,6 +4,7 @@
HTTPS
HTTP GET
TLS-SRP
notxml
</keywords>
</info>

View file

@ -3,6 +3,7 @@
<keywords>
HTTP
HTTP FORMPOST
notxml
</keywords>
</info>
# Server-side

View file

@ -4,6 +4,7 @@
HTTP
HTTP GET
followlocation
notxml
</keywords>
</info>
#

View file

@ -3,6 +3,7 @@
<keywords>
HTTP
aws-sigv4
notxml
</keywords>
</info>

View file

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="US-ASCII"?>
<testcase>
<info>
<keywords>

View file

@ -4,6 +4,7 @@
HTTP
HTTP GET
followlocation
notxml
</keywords>
</info>
# Server-side

View file

@ -4,6 +4,7 @@
HTTP
HTTP HEAD
-G
notxml
</keywords>
</info>
#

View file

@ -5,6 +5,7 @@
<keywords>
RTSP
ANNOUNCE
notxml
</keywords>
</info>

View file

@ -3,6 +3,7 @@
<keywords>
SMTP
MULTIPART
notxml
</keywords>
</info>

View file

@ -2,6 +2,7 @@
<info>
<keywords>
IPFS
notxml
</keywords>
</info>

View file

@ -2,6 +2,7 @@
<info>
<keywords>
IPFS
notxml
</keywords>
</info>

View file

@ -2,6 +2,7 @@
<info>
<keywords>
IPFS
notxml
</keywords>
</info>

View file

@ -2,6 +2,7 @@
<info>
<keywords>
IPFS
notxml
</keywords>
</info>

View file

@ -3,6 +3,7 @@
<keywords>
HTTP
--variable
notxml
</keywords>
</info>

View file

@ -2,6 +2,7 @@
<info>
<keywords>
TrackMemory
notxml
</keywords>
</info>