]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tests/data: mark non-XML-compliant files as such, xmllint the rest in CI
authorViktor Szakats <commit@vsz.me>
Tue, 18 Nov 2025 18:10:53 +0000 (19:10 +0100)
committerViktor Szakats <commit@vsz.me>
Tue, 18 Nov 2025 23:02:45 +0000 (00:02 +0100)
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 de49cc89abc917cb4f273ebea8c6fb584d097de2 #19470
Follow-up to f3095f0dbd7e842d4a72c0300ba4817a755c74f5 #19528
Follow-up to 87ba80a6df1dfd7ceaaa52352c9f23afff0ed513

Closes #19595

64 files changed:
.github/scripts/pyspelling.words
.github/workflows/checksrc.yml
docs/tests/FILEFORMAT.md
tests/data/test1011
tests/data/test1012
tests/data/test1015
tests/data/test1034
tests/data/test1076
tests/data/test1105
tests/data/test1138
tests/data/test1158
tests/data/test1160
tests/data/test1186
tests/data/test1189
tests/data/test1221
tests/data/test1332
tests/data/test1400
tests/data/test1401
tests/data/test1402
tests/data/test1403
tests/data/test1404
tests/data/test1405
tests/data/test1406
tests/data/test1407
tests/data/test1420
tests/data/test1445
tests/data/test1446
tests/data/test1461
tests/data/test1463
tests/data/test1464
tests/data/test1465
tests/data/test1481
tests/data/test1506
tests/data/test1510
tests/data/test1512
tests/data/test1524
tests/data/test1542
tests/data/test1598
tests/data/test163
tests/data/test1683
tests/data/test1705
tests/data/test1706
tests/data/test1977
tests/data/test199
tests/data/test2402
tests/data/test2404
tests/data/test2502
tests/data/test3
tests/data/test32
tests/data/test320
tests/data/test39
tests/data/test40
tests/data/test439
tests/data/test446
tests/data/test45
tests/data/test48
tests/data/test568
tests/data/test646
tests/data/test733
tests/data/test734
tests/data/test735
tests/data/test739
tests/data/test787
tests/data/test96

index f6a5405999e79dff6c2e9ced55cb5bc62895fdd1..5c96701cd09bcb977691ab9f89a8ac7dd2ce2c9e 100644 (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
index 9ed049c13fd554431de000154d7a5e898b466149..607661735679f99b799fd72dfd91aeec212df038 100644 (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'
index c5c1bcfe90a7cc968f7d1410297ac4d20b2e80e9..7851e08e2597ca55ad88e382a68d6254c20124b7 100644 (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"]>`
index f4de4df6a20ad32e9c9501f2f09c53bfd6a3ffb5..4f5111dea23b313fc0279daa26d3651be159634a 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP POST
 followlocation
+notxml
 </keywords>
 </info>
 #
index d15e10f28e198aec16afec9409be6dbbb7a8f3db..ef2d679bfc4cc337011556195bea879de9ac878b 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP POST
 followlocation
+notxml
 </keywords>
 </info>
 #
index 9f2a53d49a873614c409238660f8074a885cc607..4fe79c7b99021be01f48dec7267fff9f0b70b47f 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP POST
 --data-urlencode
+notxml
 </keywords>
 </info>
 
index f503d97700fc3f801806f564e4058ab09d465edc..db0528a78950ea1020185ee2b7603fd299b6768f 100644 (file)
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="US-ASCII"?>
 <testcase>
 <info>
 <keywords>
index 8613a9a922293170397ac2f03efc4765ae9b5e91..08eba396c5970ee3f50a1cf52df1de13b0ce558f 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP POST
 followlocation
+notxml
 </keywords>
 </info>
 #
index d23b92f560f564b043886de676b759a3f42ced72..ea42efb6a9c0c8c43dbb217f485d89da95d1e27c 100644 (file)
@@ -5,6 +5,7 @@ HTTP
 HTTP POST
 cookies
 cookiejar
+notxml
 </keywords>
 </info>
 
index 7579fcd21dd2f90d50017dcdb1e2687ab04a1068..a3e65d0e0fb71216d6e038c7a6b657db91ae20d5 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP GET
 followlocation
+notxml
 </keywords>
 </info>
 #
index c2a7330fe6efeb6a3105405bc2523e7197f255d6..a791c6fd4ccf39462800c9312d31f36e983f86bc 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 HTTP
 HTTP FORMPOST
+notxml
 </keywords>
 </info>
 # Server-side
index 6b7c904cebcad30700d7c0eb85f2f53de17a9aa0..9eca524c658f51364f910fecc3f09f3a8cc79848 100644 (file)
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="US-ASCII"?>
 <testcase>
 <info>
 <keywords>
index f9edac8f361d8cef034e09ee033cc35c65bea7e0..7a8b69486b7dd022b51b85e4b87682b8143da029 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 HTTP
 HTTP FORMPOST
+notxml
 </keywords>
 </info>
 # Server-side
index 0fb354a88eae6db46d4a616d5c7e656af231fe39..b5574cef507dac9df7cd76f7d9790561788ec3be 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 HTTP
 HTTP FORMPOST
+notxml
 </keywords>
 </info>
 # Server-side
index 1bfc61bdee3e07deec4c3710db704544b37b7603..12a82be1ee746e2647dbc563ab86d9cf9038f3ad 100644 (file)
@@ -5,6 +5,7 @@ HTTP
 HTTP POST
 --data-urlencode
 --url-query
+notxml
 </keywords>
 </info>
 
index c852d84b5d6ff73b6d435fe6fa9e262455713df0..f1b596e310164be69f97d302499e93b57436bd14 100644 (file)
@@ -5,6 +5,7 @@
 HTTP
 HTTP POST
 followlocation
+notxml
 </keywords>
 </info>
 #
index 5ed32360d99559b7ef590ba67d0a5379d804df01..1d2ece68e4ad7a23f5437fdf754273b9d65406cf 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP GET
 --libcurl
+notxml
 </keywords>
 </info>
 
index a24c81cb94d38b25104d2a56f1deea61ae6de5ea..31259e079f1dae3594b931ceb5421940540ad416 100644 (file)
@@ -7,6 +7,7 @@ HTTP Basic auth
 HTTP set cookie
 cookies
 --libcurl
+notxml
 </keywords>
 </info>
 
index 9c0330532db41068380eea737e08b0a52d568304..c256611b0d1ebad4abef4c668a4a14960f8ef590 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP POST
 --libcurl
+notxml
 </keywords>
 </info>
 
index 96328168940c97fd51165f0495787243aae5db3c..2a2f3617cd868d3e37636f90c89640b8631de6ea 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP GET
 --libcurl
+notxml
 </keywords>
 </info>
 
index 7ae7d8b5019c849ae3a0bd3d0ad1aa07bcb2d6e9..732c2678a6935fe9137801e8b79a55e171bf760b 100644 (file)
@@ -6,6 +6,7 @@ HTTP
 HTTP FORMPOST
 HTTP file upload
 --libcurl
+notxml
 </keywords>
 </info>
 
index 1860f408c8e7e26b08d2bd2904534bf432d5ea29..a71a522cfaec14589e68f52142cd739ad35c6cea 100644 (file)
@@ -6,6 +6,7 @@ FTP
 post-quote
 pre-quote
 --libcurl
+notxml
 </keywords>
 </info>
 # Server-side
index 492b5b8b31d1853e78b682a127026b372c7b6082..5f935d2d075a3737e40dbd2e836873c434f3a0e9 100644 (file)
@@ -5,6 +5,7 @@
 <keywords>
 SMTP
 --libcurl
+notxml
 </keywords>
 </info>
 
index fad62abd062cecfec593a831a1288572c6bee6e1..9ab40cef40e39a9c3f45ad285375beab1ea4bec7 100644 (file)
@@ -6,6 +6,7 @@ POP3
 Clear Text
 LIST
 --libcurl
+notxml
 </keywords>
 </info>
 
index dbd671b1aa67f3c9edca7b24ede2df1a0954f75f..4a6be824376e8228ae67fce25129b0338c538619 100644 (file)
@@ -6,6 +6,7 @@ IMAP
 Clear Text
 FETCH
 --libcurl
+notxml
 </keywords>
 </info>
 
index f52be8f7254a105adbe86b52074c3f3afe95bc9b..705162be2d37a3381090d6c471172297235bf558 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 FILE
 --remote-time
+notxml
 </keywords>
 </info>
 
index 8babaea5d51881174c95fdd6ae04575d56a6f492..448eefbc1f5a560f498a6c7a5537e74358545d9d 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 SFTP
 --remote-time
+notxml
 </keywords>
 </info>
 
index 4ee109a12299de8694c5d74006ef353fcc455b24..f45d0dcd1229d789594182703c7dd3b9867d5082 100644 (file)
@@ -2,6 +2,7 @@
 <info>
 <keywords>
 --help
+notxml
 </keywords>
 </info>
 
index 55174be5081684c33abf0221b1aba9ae42165549..e67bdfdae45256c3aa06570be792dc5eae61aa40 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 FILE
 --help
+notxml
 </keywords>
 </info>
 
index c005b5afca0de11e97a4041f133a282e37925743..4a4f6b3633c9f69b5178f211f255518c9d409edf 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 FILE
 --help
+notxml
 </keywords>
 </info>
 
index bef59be3c004cb8eaab3d72567c9623530c234d3..686c28b0bac43d914183d0c28b9db9d2a2a060d9 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP POST
 --libcurl
+notxml
 </keywords>
 </info>
 
index 3121ae536978b83f703504177e2ac202e3c403d0..209c3f87e0a74a8632d24404ffe0959593f757cf 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP GET
 --libcurl
+notxml
 </keywords>
 </info>
 
index 98af4b19fe32bafe777a4c4199590b0c8278e169..cd7654a0d8bcd628461e66bcbb7210957120faec 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 multi
 verbose logs
+notxml
 </keywords>
 </info>
 
index c4fca7251afa95cb16035812bd1bb44b02d5cc31..febe7d76ea3078616995af623328b85535f41788 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 verbose logs
 flaky
+notxml
 </keywords>
 </info>
 
index cb1d8f72f1c91aba18a27687dea49658a6344f46..3798d7325b4c4db7c2447f54ef23120b9127a0db 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 HTTP
 GLOBAL DNS CACHE
+notxml
 </keywords>
 </info>
 
index 05433d47c2749c448e5f318ce6d94b9ac31ba264..fcfd9f4c00010e7f038d05374cc5e1bc2f4ce1f1 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP PUT
 followlocation
+notxml
 </keywords>
 </info>
 #
index dad66aff3d45b67b9580f0a93531c07c9feca5eb..044fe518a467881847b2cea98faa5b1580ffb885 100644 (file)
@@ -6,6 +6,7 @@ connection reuse
 persistent connection
 CURLOPT_MAXLIFETIME_CONN
 verbose logs
+notxml
 </keywords>
 </info>
 
index a85c1246922be8e49e117f8064c103500a811847..f3143432edd08f6d756972fe5535da78d05088c7 100644 (file)
@@ -5,6 +5,7 @@ HTTP
 HTTP POST
 CURLOPT_HTTPTRAILER_FUNCTION
 CURLOPT_HTTPTRAILER_DATA
+notxml
 </keywords>
 </info>
 
index 14332c16c72e9555a86cd177225cb8bc6820f8ef..7a7406c13656179db8fd4566755e414401904030 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 HTTP
 HTTP POST
+notxml
 </keywords>
 </info>
 
index 66f41cea55c94b139f79b2f08c55895d063d5fd0..47d280cd14a1a929257764528b5e9f30c2b7d206 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP GET
 --no-clobber
+notxml
 </keywords>
 </info>
 
index c85886b96a8276886eba1d62ca045fe4dc2bcf53..dc21207860542c131d285e539311e4f235edf2f6 100644 (file)
@@ -4,6 +4,7 @@
 script
 documentation
 managen
+notxml
 </keywords>
 </info>
 
index f821618d277a71e56d860dc89bcbf46b6b643e6d..dd24365d056bc5440e823c5787a263ae5ebc4c1e 100644 (file)
@@ -4,6 +4,7 @@
 script
 documentation
 managen
+notxml
 </keywords>
 </info>
 
index b8e2bb4f2b54bd98feec389e4c86f6dec3bf52dd..d62ed337e61a11259dbd1175c32f2356ebabce10 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 CURLOPT_CURLU
 CURLINFO_EFFECTIVE_URL
+notxml
 </keywords>
 </info>
 
index 763e7bf49ed83c487888f6fe68c25127f2b04c23..fc8a8e96a0dcf53ca7a8509bde110fda7a3af915 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP GET
 globbing
+notxml
 </keywords>
 </info>
 #
index 1903534dc81a15826bdd9a015a86e8a9fd7df94d..ba3fcc85b4513e1649e644579394142a23968581 100644 (file)
@@ -5,6 +5,7 @@ HTTP
 HTTP/2
 multi
 verbose logs
+notxml
 </keywords>
 </info>
 
index 1ed03968dbac4ba9b53ec1ab4f585c6e93621287..5034a15c3ca6ac8be68f30ac3a9b9ad765767542 100644 (file)
@@ -5,6 +5,7 @@ HTTP
 HTTP/2
 multi
 verbose logs
+notxml
 </keywords>
 </info>
 
index ab460c29d534e843daba5a51a30f29ea94133d85..627cfdccad8ea79f8eaa9d6f7cf07b4594992598 100644 (file)
@@ -5,6 +5,7 @@ HTTP
 HTTP/3
 multi
 verbose logs
+notxml
 </keywords>
 </info>
 
index 3f4b4ee9e2c03407c09d28ed3b485db86f937ab1..50fdfeea48c37a3ef4375205728db1b3427b4640 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP POST
 HTTP Basic auth
+notxml
 </keywords>
 </info>
 #
index d02a541ae3d249fe7c50646c386919e6b8128996..94b9531ca5ed4eb3e45ed2d70fd1f494926427d7 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP GET
 -G
+notxml
 </keywords>
 </info>
 #
index 00615e5d71e3f2ac9f99a880482f278ea7682e2c..0967823d388b29672bc0e78e6e2bbd9bb1374ef1 100644 (file)
@@ -4,6 +4,7 @@
 HTTPS
 HTTP GET
 TLS-SRP
+notxml
 </keywords>
 </info>
 
index 02a4659e0947a15ba3f37c4b1e7be0664a29f605..b0062543378c37b30a0b90beebd1b99615a94e5f 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 HTTP
 HTTP FORMPOST
+notxml
 </keywords>
 </info>
 # Server-side
index 959a7505dc080dd34e75058e7bfebb3894dbd3b1..04efdbbc70b4601c23db382994d9d951a1f7b10c 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP GET
 followlocation
+notxml
 </keywords>
 </info>
 #
index 2659f139e97165fde60dde83b875a13194cef71e..8529797242b97fc948efdf252249da4a9f002155 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 HTTP
 aws-sigv4
+notxml
 </keywords>
 </info>
 
index ceae26b7e77a6f53fcc2d78151f4818bda24dfc5..eeb9366bb5cd2cf9a90b94f0bd0ef79a4e04c143 100644 (file)
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="US-ASCII"?>
 <testcase>
 <info>
 <keywords>
index 54c41dec92bd0bda87d386500abddd12f86a3b2f..3d4df02f13320060d1a06a3bb13dc109c8628b5e 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP GET
 followlocation
+notxml
 </keywords>
 </info>
 # Server-side
index 564e8f3a7419e0027281fe9ae98bcc67f1412c25..c161ba5dca9128e02743295e593015ecb7c535b4 100644 (file)
@@ -4,6 +4,7 @@
 HTTP
 HTTP HEAD
 -G
+notxml
 </keywords>
 </info>
 #
index caadd95d12790c1db84d7a06fd9369df565dd037..a2438916d46e19a602c259d9cda9bf0f2c5a5b49 100644 (file)
@@ -5,6 +5,7 @@
 <keywords>
 RTSP
 ANNOUNCE
+notxml
 </keywords>
 </info>
 
index 1ef0c9f21ba3074f6c46c33ed41753a72a28a888..39fafa573ce5e1fd36286cee38cb07386293ba9d 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 SMTP
 MULTIPART
+notxml
 </keywords>
 </info>
 
index ffe058bf348697d1ca81adf1bd553c48337083a6..0bf953cca21071f2ed2d49611cc06eb7296df58c 100644 (file)
@@ -2,6 +2,7 @@
 <info>
 <keywords>
 IPFS
+notxml
 </keywords>
 </info>
 
index e8d40141a3d7e3c4d27688a8ff9f117fa5958e36..01107fbf6b3dfe09798bd253e1cc42dfc9950f8f 100644 (file)
@@ -2,6 +2,7 @@
 <info>
 <keywords>
 IPFS
+notxml
 </keywords>
 </info>
 
index d78c3cc996429765009e69884736245960ca4a40..574d8bd492ba5cb35ec04258bbb21d807dc475d6 100644 (file)
@@ -2,6 +2,7 @@
 <info>
 <keywords>
 IPFS
+notxml
 </keywords>
 </info>
 
index 41f3599e4d3de9e0aad639c79fa2ec21fc81d2a8..3e712f513e3907d5566cf2e030254efca145be99 100644 (file)
@@ -2,6 +2,7 @@
 <info>
 <keywords>
 IPFS
+notxml
 </keywords>
 </info>
 
index 798d2d368f38b9efc0b6c85fcd04c10ba3ed11c9..e95a18d17bd82b6b42ee3c0c007dbe22b19bee83 100644 (file)
@@ -3,6 +3,7 @@
 <keywords>
 HTTP
 --variable
+notxml
 </keywords>
 </info>
 
index a96b617623ec1986988d70d0497897365ae42c17..de4b7c18ad3f6a863b6d047ad442d16cbff511e3 100644 (file)
@@ -2,6 +2,7 @@
 <info>
 <keywords>
 TrackMemory
+notxml
 </keywords>
 </info>