tests: ensure libcurl.def contains all exports

Add `test1279` to verify that `libcurl.def` lists all exported API
functions found in libcurl headers.

Also:

- extend test suite XML `stdout` tag with the `loadfile` attribute.

- fix `tests/extern-scan.pl` and `test1135` to include websocket API.

- use all headers (sorted) in `test1135` instead of a manual list.

- add options `--sort`, `--heading=` to `tests/extern-scan.pl`.

- add `libcurl.def` to the auto-labeler GHA task.

Follow-up to 2ebc74c36a

Closes #11570
This commit is contained in:
Viktor Szakats 2023-08-01 22:02:43 +00:00
parent d135d040df
commit db70846e2e
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
7 changed files with 187 additions and 109 deletions

View file

@ -161,6 +161,7 @@ test1247 test1248 test1249 test1250 test1251 test1252 test1253 test1254 \
test1255 test1256 test1257 test1258 test1259 test1260 test1261 test1262 \
test1263 test1264 test1265 test1266 test1267 test1268 test1269 test1270 \
test1271 test1272 test1273 test1274 test1275 test1276 test1277 test1278 \
test1279 \
\
test1280 test1281 test1282 test1283 test1284 test1285 test1286 test1287 \
test1288 test1289 test1290 test1291 test1292 test1293 test1294 test1295 \

View file

@ -28,94 +28,97 @@ Verify CURL_EXTERN order
<verify>
<stdout>
CURL_EXTERN int curl_strequal
CURL_EXTERN int curl_strnequal
CURL_EXTERN curl_mime *curl_mime_init
CURL_EXTERN void curl_mime_free
CURL_EXTERN curl_mimepart *curl_mime_addpart
CURL_EXTERN CURLcode curl_mime_name
CURL_EXTERN CURLcode curl_mime_filename
CURL_EXTERN CURLcode curl_mime_type
CURL_EXTERN CURLcode curl_mime_encoder
CURL_EXTERN CURLcode curl_mime_data
CURL_EXTERN CURLcode curl_mime_filedata
CURL_EXTERN CURLcode curl_mime_data_cb
CURL_EXTERN CURLcode curl_mime_subparts
CURL_EXTERN CURLcode curl_mime_headers
CURL_EXTERN CURLFORMcode curl_formadd
CURL_EXTERN int curl_formget
CURL_EXTERN void curl_formfree
CURL_EXTERN char *curl_getenv
CURL_EXTERN char *curl_version
CURL_EXTERN char *curl_easy_escape
CURL_EXTERN char *curl_escape
CURL_EXTERN char *curl_easy_unescape
CURL_EXTERN char *curl_unescape
CURL_EXTERN void curl_free
CURL_EXTERN CURLcode curl_global_init
CURL_EXTERN CURLcode curl_global_init_mem
CURL_EXTERN void curl_global_cleanup
CURL_EXTERN CURLsslset curl_global_sslset
CURL_EXTERN struct curl_slist *curl_slist_append
CURL_EXTERN void curl_slist_free_all
CURL_EXTERN time_t curl_getdate
CURL_EXTERN CURLSH *curl_share_init
CURL_EXTERN CURLSHcode curl_share_setopt
CURL_EXTERN CURLSHcode curl_share_cleanup
CURL_EXTERN curl_version_info_data *curl_version_info
CURL_EXTERN const char *curl_easy_strerror
CURL_EXTERN const char *curl_share_strerror
CURL_EXTERN CURLcode curl_easy_pause
CURL_EXTERN CURL *curl_easy_init
CURL_EXTERN CURLcode curl_easy_setopt
CURL_EXTERN CURLcode curl_easy_perform
CURL_EXTERN void curl_easy_cleanup
CURL_EXTERN CURLcode curl_easy_getinfo
CURL_EXTERN CURL *curl_easy_duphandle
CURL_EXTERN void curl_easy_reset
CURL_EXTERN CURLcode curl_easy_recv
CURL_EXTERN CURLcode curl_easy_send
CURL_EXTERN CURLcode curl_easy_upkeep
CURL_EXTERN int curl_mprintf
CURL_EXTERN int curl_mfprintf
CURL_EXTERN int curl_msprintf
CURL_EXTERN int curl_msnprintf
CURL_EXTERN int curl_mvprintf
CURL_EXTERN int curl_mvfprintf
CURL_EXTERN int curl_mvsprintf
CURL_EXTERN int curl_mvsnprintf
CURL_EXTERN char *curl_maprintf
CURL_EXTERN char *curl_mvaprintf
CURL_EXTERN CURLM *curl_multi_init
CURL_EXTERN CURLMcode curl_multi_add_handle
CURL_EXTERN CURLMcode curl_multi_remove_handle
CURL_EXTERN CURLMcode curl_multi_fdset
CURL_EXTERN CURLMcode curl_multi_wait
CURL_EXTERN CURLMcode curl_multi_poll
CURL_EXTERN CURLMcode curl_multi_wakeup
CURL_EXTERN CURLMcode curl_multi_perform
CURL_EXTERN CURLMcode curl_multi_cleanup
CURL_EXTERN CURLMsg *curl_multi_info_read
CURL_EXTERN const char *curl_multi_strerror
CURL_EXTERN CURLMcode curl_multi_socket
CURL_EXTERN CURLMcode curl_multi_socket_action
CURL_EXTERN CURLMcode curl_multi_socket_all
CURL_EXTERN CURLMcode curl_multi_timeout
CURL_EXTERN CURLMcode curl_multi_setopt
CURL_EXTERN CURLMcode curl_multi_assign
CURL_EXTERN char *curl_pushheader_bynum
CURL_EXTERN char *curl_pushheader_byname
CURL_EXTERN CURLU *curl_url
CURL_EXTERN void curl_url_cleanup
CURL_EXTERN CURLU *curl_url_dup
CURL_EXTERN CURLUcode curl_url_get
CURL_EXTERN CURLUcode curl_url_set
CURL_EXTERN const char *curl_url_strerror
CURL_EXTERN const struct curl_easyoption *curl_easy_option_by_name
CURL_EXTERN const struct curl_easyoption *curl_easy_option_by_id
CURL_EXTERN const struct curl_easyoption *curl_easy_option_next
CURL_EXTERN CURLHcode curl_easy_header
CURL_EXTERN struct curl_header *curl_easy_nextheader
curl_strequal
curl_strnequal
curl_mime_init
curl_mime_free
curl_mime_addpart
curl_mime_name
curl_mime_filename
curl_mime_type
curl_mime_encoder
curl_mime_data
curl_mime_filedata
curl_mime_data_cb
curl_mime_subparts
curl_mime_headers
curl_formadd
curl_formget
curl_formfree
curl_getenv
curl_version
curl_easy_escape
curl_escape
curl_easy_unescape
curl_unescape
curl_free
curl_global_init
curl_global_init_mem
curl_global_cleanup
curl_global_sslset
curl_slist_append
curl_slist_free_all
curl_getdate
curl_share_init
curl_share_setopt
curl_share_cleanup
curl_version_info
curl_easy_strerror
curl_share_strerror
curl_easy_pause
curl_easy_init
curl_easy_setopt
curl_easy_perform
curl_easy_cleanup
curl_easy_getinfo
curl_easy_duphandle
curl_easy_reset
curl_easy_recv
curl_easy_send
curl_easy_upkeep
curl_easy_header
curl_easy_nextheader
curl_mprintf
curl_mfprintf
curl_msprintf
curl_msnprintf
curl_mvprintf
curl_mvfprintf
curl_mvsprintf
curl_mvsnprintf
curl_maprintf
curl_mvaprintf
curl_multi_init
curl_multi_add_handle
curl_multi_remove_handle
curl_multi_fdset
curl_multi_wait
curl_multi_poll
curl_multi_wakeup
curl_multi_perform
curl_multi_cleanup
curl_multi_info_read
curl_multi_strerror
curl_multi_socket
curl_multi_socket_action
curl_multi_socket_all
curl_multi_timeout
curl_multi_setopt
curl_multi_assign
curl_pushheader_bynum
curl_pushheader_byname
curl_easy_option_by_name
curl_easy_option_by_id
curl_easy_option_next
curl_url
curl_url_cleanup
curl_url_dup
curl_url_get
curl_url_set
curl_url_strerror
curl_ws_recv
curl_ws_send
curl_ws_meta
</stdout>
</verify>

31
tests/data/test1279 Normal file
View file

@ -0,0 +1,31 @@
<testcase>
<info>
<keywords>
source analysis
CURL_EXTERN
libcurl.def
</keywords>
</info>
#
# Client-side
<client>
<server>
none
</server>
<name>
Verify libcurl.def against CURL_EXTERN declarations
</name>
<command type="perl">
%SRCDIR/extern-scan.pl --heading=EXPORTS --sort %SRCDIR/..
</command>
</client>
<verify>
<stdout loadfile="%SRCDIR/../libcurl.def">
</stdout>
</verify>
</testcase>