From c221c0ee5935497168c52686a9d8cc87b45bbca9 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 15 Jul 2025 21:37:51 +0200 Subject: [PATCH] test1560: set locale/codeset with `LC_ALL` (was: `LANG`), test in CI To fix running test 1560 when `LC_ALL` is set to something unexpected (e.g. `C`). Also syncing it with the rest of tests. Also: - GHA/linux: enable `libidn2` in more jobs. Also to enable test 1560 reproducing this issue in more jobs. - GHA/linux: run tests with `LC_ALL=C` in one of the jobs. - GHA/linux: switch to the non-deprecated package name for libidn2. - GHA/macos: run tests with non-default locale settings in one job. - GHA/macos: enable AppleIDN in that job. Ref: https://github.com/curl/curl/pull/17933#issuecomment-3074582840 Follow-up to f27262b17965aefa7c6bf41bd40b01b4f97407bd #10196 Closes #17938 --- .github/workflows/linux.yml | 15 ++++++++------- .github/workflows/macos.yml | 9 +++++++-- tests/data/test1560 | 2 +- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index c1f0a13bd0..dbb4d5d2d3 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -78,8 +78,8 @@ jobs: matrix: build: - name: 'libressl heimdal' - install_packages: zlib1g-dev libnghttp2-dev libldap-dev heimdal-dev - install_steps: libressl pytest + install_packages: zlib1g-dev libidn2-dev libnghttp2-dev libldap-dev heimdal-dev + install_steps: libressl pytest codeset-test configure: LDFLAGS=-Wl,-rpath,/home/runner/libressl/lib --with-openssl=/home/runner/libressl --with-gssapi --enable-debug - name: 'libressl heimdal valgrind' @@ -103,7 +103,7 @@ jobs: configure: LDFLAGS=-Wl,-rpath,/home/runner/wolfssl-opensslextra/lib --with-wolfssl=/home/runner/wolfssl-opensslextra --with-wolfssh=/home/runner/wolfssh --enable-ech --enable-debug - name: 'mbedtls valgrind' - install_packages: libnghttp2-dev libldap-dev valgrind + install_packages: libnghttp2-dev libidn2-dev libldap-dev valgrind install_steps: mbedtls configure: LDFLAGS=-Wl,-rpath,/home/runner/mbedtls/lib --with-mbedtls=/home/runner/mbedtls --enable-debug @@ -145,7 +145,7 @@ jobs: configure: LDFLAGS=-Wl,-rpath,/home/runner/awslc/lib --with-openssl=/home/runner/awslc --enable-ech - name: 'awslc' - install_packages: zlib1g-dev + install_packages: zlib1g-dev libidn2-dev install_steps: awslc generate: -DOPENSSL_ROOT_DIR=/home/runner/awslc -DUSE_ECH=ON -DCMAKE_UNITY_BUILD=OFF @@ -154,7 +154,7 @@ jobs: configure: --with-openssl --enable-debug --disable-unity - name: 'openssl libssh2 sync-resolver valgrind' - install_packages: zlib1g-dev libssh2-1-dev libnghttp2-dev libldap-dev valgrind + install_packages: zlib1g-dev libidn2-dev libssh2-1-dev libnghttp2-dev libldap-dev valgrind configure: --with-openssl --enable-debug --disable-threaded-resolver --with-libssh2 - name: 'openssl' @@ -174,7 +174,7 @@ jobs: - name: 'openssl clang krb5 openldap static' install_steps: openldap-static - install_packages: zlib1g-dev libkrb5-dev clang libssl-dev + install_packages: zlib1g-dev libidn2-dev libkrb5-dev clang libssl-dev configure: CC=clang --disable-shared --with-openssl --with-gssapi --enable-debug --disable-docs --disable-manual --with-ldap=/home/runner/openldap-static --with-ldap-lib=ldap --with-lber-lib=lber - name: 'openssl clang krb5 LTO' @@ -207,7 +207,7 @@ jobs: torture: true - name: 'openssl i686' - install_packages: gcc-14-i686-linux-gnu libssl-dev:i386 librtmp-dev:i386 libssh2-1-dev:i386 libidn2-0-dev:i386 libc-ares-dev:i386 zlib1g-dev:i386 + install_packages: gcc-14-i686-linux-gnu libssl-dev:i386 librtmp-dev:i386 libssh2-1-dev:i386 libidn2-dev:i386 libc-ares-dev:i386 zlib1g-dev:i386 configure: >- PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig CC=i686-linux-gnu-gcc-14 @@ -685,6 +685,7 @@ jobs: fi fi [ -x ~/venv/bin/activate ] && source ~/venv/bin/activate + [[ "${MATRIX_INSTALL_STEPS}" = *'codeset-test'* ]] && export LC_ALL=C if [ "${MATRIX_BUILD}" = 'cmake' ]; then cmake --build bld --verbose --target "${TEST_TARGET}" else diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 180ae1c577..bb1b376b27 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -296,10 +296,11 @@ jobs: install: brotli wolfssl zstd install_steps: pytest generate: -DCURL_USE_WOLFSSL=ON -DCURL_DISABLE_LDAP=ON -DUSE_ECH=ON - - name: 'mbedTLS !ldap brotli zstd MultiSSL' + - name: 'mbedTLS !ldap brotli zstd MultiSSL AppleIDN' compiler: llvm@18 install: brotli mbedtls zstd - generate: -DCURL_USE_MBEDTLS=ON -DCURL_DISABLE_LDAP=ON -DCURL_DEFAULT_SSL_BACKEND=mbedtls -DCURL_USE_OPENSSL=ON + install_steps: codeset-test + generate: -DCURL_USE_MBEDTLS=ON -DCURL_DISABLE_LDAP=ON -DCURL_DEFAULT_SSL_BACKEND=mbedtls -DCURL_USE_OPENSSL=ON -DUSE_APPLE_IDN=ON - name: 'GnuTLS !ldap krb5' install: gnutls nettle krb5 generate: -DENABLE_DEBUG=ON -DCURL_USE_GNUTLS=ON -DCURL_USE_OPENSSL=OFF -DCURL_USE_GSSAPI=ON -DGSS_ROOT_DIR=/opt/homebrew/opt/krb5 -DCURL_DISABLE_LDAP=ON -DUSE_SSLS_EXPORT=ON @@ -479,6 +480,10 @@ jobs: run: | TFLAGS="-j20 ${TFLAGS}" source ~/venv/bin/activate + if [[ "${MATRIX_INSTALL_STEPS}" = *'codeset-test'* ]]; then + export LC_CTYPE=C + export LC_NUMERIC=fr_FR.UTF-8 + fi rm -f ~/.curlrc if [ "${MATRIX_BUILD}" = 'cmake' ]; then cmake --build bld --verbose --target "${TEST_TARGET}" diff --git a/tests/data/test1560 b/tests/data/test1560 index 381faaa93a..976cc98ec2 100644 --- a/tests/data/test1560 +++ b/tests/data/test1560 @@ -13,7 +13,7 @@ urlapi none -LANG=en_US.UTF-8 +LC_ALL=en_US.UTF-8 file -- 2.47.2