tests: add codeset-utf8 as a feature

To avoid having to use <precheck> for tests that require UTF-8 support.

Closes #15039
This commit is contained in:
Daniel Stenberg 2024-09-25 14:25:55 +02:00
parent 5fb1b64fdd
commit 0b70b23ef4
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
22 changed files with 24 additions and 61 deletions

View File

@ -432,6 +432,7 @@ Features testable here are:
- `brotli` - `brotli`
- `c-ares` - `c-ares`
- `CharConv` - `CharConv`
- `codeset-utf8`. If the running codeset is UTF-8 capable.
- `cookies` - `cookies`
- `crypto` - `crypto`
- `Debug` - `Debug`

View File

@ -26,14 +26,12 @@ none
IDN IDN
http http
proxy proxy
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL= LC_ALL=
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
HTTP over proxy with malformatted IDN host name HTTP over proxy with malformatted IDN host name
</name> </name>

View File

@ -24,19 +24,17 @@ none
IDN IDN
http http
proxy proxy
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL= LC_ALL=
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
HTTP over proxy with too long IDN host name HTTP over proxy with too long IDN host name
</name> </name>
<command> <command>
http://too-long-IDN-name-cürl-rüles-la-la-la-dee-da-flooby-nooby.local/page/%TESTNUMBER -x %HOSTIP:%NOLISTENPORT http://too-long-IDN-name-cürl-rüles-la-la-la-dee-da-flooby-nooby.local/page/%TESTNUMBER -x %HOSTIP:%NOLISTENPORT
</command> </command>
</client> </client>

View File

@ -40,14 +40,12 @@ http
</server> </server>
<features> <features>
IDN IDN
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
Redirect following to UTF-8 IDN host name Redirect following to UTF-8 IDN host name
</name> </name>

View File

@ -30,14 +30,12 @@ http
<features> <features>
IDN IDN
proxy proxy
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
HTTP over proxy with IDN host name HTTP over proxy with IDN host name
</name> </name>

View File

@ -40,14 +40,12 @@ http
</server> </server>
<features> <features>
IDN IDN
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
Connection reuse with IDN host name Connection reuse with IDN host name
</name> </name>

View File

@ -41,14 +41,12 @@ http
<features> <features>
IDN IDN
proxy proxy
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
Connection reuse with IDN host name over HTTP proxy Connection reuse with IDN host name over HTTP proxy
</name> </name>

View File

@ -21,14 +21,12 @@ smtp
</server> </server>
<features> <features>
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP without SMTPUTF8 support - UTF-8 based sender (local part only) SMTP without SMTPUTF8 support - UTF-8 based sender (local part only)
</name> </name>

View File

@ -18,14 +18,12 @@ smtp
</server> </server>
<features> <features>
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP without SMTPUTF8 support - UTF-8 based recipient (local part only) SMTP without SMTPUTF8 support - UTF-8 based recipient (local part only)
</name> </name>

View File

@ -19,14 +19,12 @@ smtp
</server> </server>
<features> <features>
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP VRFY without SMTPUTF8 support - UTF-8 based recipient (local part only) SMTP VRFY without SMTPUTF8 support - UTF-8 based recipient (local part only)
</name> </name>

View File

@ -19,14 +19,12 @@ smtp
</server> </server>
<features> <features>
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP external VRFY without SMTPUTF8 support - UTF-8 based recipient (local part only) SMTP external VRFY without SMTPUTF8 support - UTF-8 based recipient (local part only)
</name> </name>

View File

@ -22,14 +22,12 @@ smtp
<features> <features>
!IDN !IDN
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP without SMTPUTF8 support - UTF-8 based sender (host part only) SMTP without SMTPUTF8 support - UTF-8 based sender (host part only)
</name> </name>

View File

@ -19,14 +19,12 @@ smtp
<features> <features>
!IDN !IDN
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP without SMTPUTF8 support - UTF-8 based recipient (host part only) SMTP without SMTPUTF8 support - UTF-8 based recipient (host part only)
</name> </name>

View File

@ -20,14 +20,12 @@ smtp
<features> <features>
!IDN !IDN
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP external VRFY without SMTPUTF8 support - UTF-8 based recipient (host part only) SMTP external VRFY without SMTPUTF8 support - UTF-8 based recipient (host part only)
</name> </name>

View File

@ -20,14 +20,12 @@ smtp
<features> <features>
IDN IDN
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP without SMTPUTF8 support - UTF-8 based sender (host part only) SMTP without SMTPUTF8 support - UTF-8 based sender (host part only)
</name> </name>

View File

@ -20,14 +20,12 @@ smtp
<features> <features>
IDN IDN
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP without SMTPUTF8 support (IDN Enabled) - UTF-8 based recipient (host part only) SMTP without SMTPUTF8 support (IDN Enabled) - UTF-8 based recipient (host part only)
</name> </name>

View File

@ -21,14 +21,12 @@ smtp
<features> <features>
IDN IDN
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP external VRFY without SMTPUTF8 support (IDN Enabled) - UTF-8 based recipient (host part only) SMTP external VRFY without SMTPUTF8 support (IDN Enabled) - UTF-8 based recipient (host part only)
</name> </name>

View File

@ -23,14 +23,12 @@ smtp
<features> <features>
IDN IDN
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP with SMTPUTF8 support - UTF-8 based sender SMTP with SMTPUTF8 support - UTF-8 based sender
</name> </name>

View File

@ -23,14 +23,12 @@ smtp
<features> <features>
IDN IDN
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP with SMTPUTF8 support - UTF-8 based recipient SMTP with SMTPUTF8 support - UTF-8 based recipient
</name> </name>

View File

@ -27,14 +27,12 @@ smtp
<features> <features>
IDN IDN
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP external VRFY with SMTPUTF8 support SMTP external VRFY with SMTPUTF8 support
</name> </name>

View File

@ -24,14 +24,12 @@ smtp
<features> <features>
IDN IDN
!win32 !win32
codeset-utf8
</features> </features>
<setenv> <setenv>
LC_ALL=en_US.UTF-8 LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
</setenv> </setenv>
<precheck>
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
</precheck>
<name> <name>
SMTP VRFY with SMTPUTF8 support SMTP VRFY with SMTPUTF8 support
</name> </name>

View File

@ -83,6 +83,7 @@ BEGIN {
use Digest::MD5 qw(md5); use Digest::MD5 qw(md5);
use List::Util 'sum'; use List::Util 'sum';
use I18N::Langinfo qw(langinfo CODESET);
use pathhelp qw( use pathhelp qw(
exe_ext exe_ext
@ -825,6 +826,7 @@ sub checksystemfeatures {
$feature{"large-time"} = 1; $feature{"large-time"} = 1;
$feature{"sha512-256"} = 1; $feature{"sha512-256"} = 1;
$feature{"local-http"} = servers::localhttp(); $feature{"local-http"} = servers::localhttp();
$feature{"codeset-utf8"} = lc(langinfo(CODESET())) eq "utf-8";
# make each protocol an enabled "feature" # make each protocol an enabled "feature"
for my $p (@protocols) { for my $p (@protocols) {