From 79132a1daf8f3b2b6db101be386fa9e8cb3f73f5 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 18 Aug 2026 12:16:32 +0200 Subject: [PATCH] GHA: use `--subset` runtests option, run random subset in riscv64 job Also: - drop most hand-tuned `--min` options, in favor of defaults. - enable tests on emulated riscv64. Suggested-by: Dan Fandrich Ref: https://github.com/curl/curl/pull/22590#issuecomment-5303238102 - drop building examples on emulated riscv64. Adding around 3.5 minutes to the riscv64 job: 0.5 Perl install, 2 minutes to build tests, 1 minute to run 100 tests. Follow-up to 66486691ee1c5c768c74e402b8b95902b88d90fb #22619 Follow-up to e669179681044514099ca726dbaa55653528f4fb #22616 Follow-up to 58cb1e2f1fa8d8f1c71596918707e566c6353cb2 #22618 Follow-up to d00000673d05fdf6ceee8941ccd63ad2906257e4 #22602 Closes #22617 --- .github/workflows/linux.yml | 28 ++++++++++++++-------------- .github/workflows/macos.yml | 6 +++--- .github/workflows/non-native.yml | 4 ++-- .github/workflows/windows.yml | 4 ++-- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index ae0c6924c5..c7d0d0506a 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -98,14 +98,14 @@ jobs: image: ubuntu-24.04-arm install_packages: libnghttp2-dev libldap-dev libkrb5-dev valgrind install_steps: libressl-c-arm - tflags: '--min=870 1 to 950' + tflags: '--subset=0/2' generate: -DOPENSSL_ROOT_DIR=/home/runner/libressl -DCURL_USE_GSSAPI=ON -DENABLE_DEBUG=ON -DCURL_LIBCURL_VERSIONED_SYMBOLS=ON -DCURL_ENABLE_NTLM=ON - name: 'libressl krb5 valgrind 2' image: ubuntu-24.04-arm install_packages: libnghttp2-dev libldap-dev libkrb5-dev valgrind install_steps: libressl-c-arm - tflags: '--min=900 951 to 9999' + tflags: '--subset=1/2' generate: -DOPENSSL_ROOT_DIR=/home/runner/libressl -DCURL_USE_GSSAPI=ON -DENABLE_DEBUG=ON -DCURL_LIBCURL_VERSIONED_SYMBOLS=ON -DCURL_ENABLE_NTLM=ON - name: 'libressl clang' @@ -132,7 +132,7 @@ jobs: image: ubuntu-24.04-arm install_packages: libnghttp2-dev libidn2-dev libldap-dev libgss-dev valgrind install_steps: mbedtls-latest-arm - tflags: '--min=850 1 to 1000' + tflags: '--subset=0/2' LDFLAGS: -Wl,-rpath,/home/runner/mbedtls/lib PKG_CONFIG_PATH: /home/runner/mbedtls/lib/pkgconfig generate: -DCURL_USE_MBEDTLS=ON -DENABLE_DEBUG=ON -DCURL_USE_GSSAPI=ON -DCURL_DROP_UNUSED=ON @@ -141,7 +141,7 @@ jobs: image: ubuntu-24.04-arm install_packages: libnghttp2-dev libidn2-dev libldap-dev libgss-dev valgrind install_steps: mbedtls-latest-arm - tflags: '--min=900 1001 to 9999' + tflags: '--subset=1/2' LDFLAGS: -Wl,-rpath,/home/runner/mbedtls/lib PKG_CONFIG_PATH: /home/runner/mbedtls/lib/pkgconfig generate: -DCURL_USE_MBEDTLS=ON -DENABLE_DEBUG=ON -DCURL_USE_GSSAPI=ON @@ -175,13 +175,13 @@ jobs: - name: 'rustls valgrind 1' install_packages: libnghttp2-dev libldap-dev valgrind install_steps: rust rustls - tflags: '--min=820 1 to 1000' + tflags: '--subset=0/2' generate: -DCURL_USE_RUSTLS=ON -DUSE_ECH=ON -DENABLE_DEBUG=ON - name: 'rustls valgrind 2' install_packages: libnghttp2-dev libldap-dev valgrind install_steps: rust rustls - tflags: '--min=830 1001 to 9999' + tflags: '--subset=1/2' generate: -DCURL_USE_RUSTLS=ON -DUSE_ECH=ON -DENABLE_DEBUG=ON - name: 'rustls' @@ -199,7 +199,7 @@ jobs: image: ubuntu-26.04-arm install_packages: valgrind install_steps: wolfssl-opensslextra-arm - tflags: '--min=815 1 to 1000' + tflags: '--subset=0/2' LDFLAGS: -Wl,-rpath,/home/runner/wolfssl-opensslextra/lib configure: --with-wolfssl=/home/runner/wolfssl-opensslextra --enable-ech --enable-debug --enable-httpsig @@ -207,7 +207,7 @@ jobs: image: ubuntu-26.04-arm install_packages: valgrind install_steps: wolfssl-opensslextra-arm - tflags: '--min=835 1001 to 9999' + tflags: '--subset=1/2' LDFLAGS: -Wl,-rpath,/home/runner/wolfssl-opensslextra/lib configure: --with-wolfssl=/home/runner/wolfssl-opensslextra --enable-ech --enable-debug --enable-httpsig @@ -219,14 +219,14 @@ jobs: image: ubuntu-26.04-arm install_packages: gcc-16 libidn2-dev libssh2-1-dev libnghttp2-dev libldap-dev valgrind CC: gcc-16 - tflags: '--min=965 1 to 1000' + tflags: '--subset=0/2' generate: -DENABLE_DEBUG=ON -DENABLE_THREADED_RESOLVER=OFF -DCURL_GCC_ANALYZER=ON -DCURL_ENABLE_NTLM=ON - name: 'openssl libssh2 sync-resolver valgrind 2' image: ubuntu-26.04-arm install_packages: gcc-16 libidn2-dev libssh2-1-dev libnghttp2-dev libldap-dev valgrind CC: gcc-16 - tflags: '--min=920 1001 to 9999' + tflags: '--subset=1/2' generate: -DENABLE_DEBUG=ON -DENABLE_THREADED_RESOLVER=OFF -DCURL_ENABLE_NTLM=ON - name: 'openssl intel C89' @@ -243,13 +243,13 @@ jobs: - name: 'openssl -O3 libssh valgrind 1' install_packages: libssh-dev valgrind CFLAGS: -O3 - tflags: '--min=950 1 to 1000' + tflags: '--subset=0/2' generate: -DENABLE_DEBUG=ON -DCURL_USE_LIBSSH=ON -DCMAKE_UNITY_BUILD_BATCH_SIZE=50 -DCURL_ENABLE_NTLM=ON - name: 'openssl -O3 libssh valgrind 2' install_packages: libssh-dev valgrind CFLAGS: -O3 - tflags: '--min=900 1001 to 9999' + tflags: '--subset=1/2' generate: -DENABLE_DEBUG=ON -DCURL_USE_LIBSSH=ON -DCMAKE_UNITY_BUILD_BATCH_SIZE=50 -DCURL_ENABLE_NTLM=ON - name: 'openssl clang krb5 openldap static' @@ -294,13 +294,13 @@ jobs: - name: 'openssl torture 1' install_packages: libnghttp2-dev libssh2-1-dev libc-ares-dev - tflags: '-t --shallow=25 --min=960 1 to 1000' + tflags: '-t --shallow=25 --subset=0/2' torture: true generate: -DCURL_USE_OPENSSL=ON -DENABLE_DEBUG=ON -DENABLE_ARES=ON -DCURL_ENABLE_NTLM=ON -DCURL_DISABLE_HTTPSIG=OFF - name: 'openssl torture 2' install_packages: libnghttp2-dev libssh2-1-dev libc-ares-dev - tflags: '-t --shallow=25 --min=915 1001 to 9999' + tflags: '-t --shallow=25 --subset=1/2' torture: true generate: -DCURL_USE_OPENSSL=ON -DENABLE_DEBUG=ON -DENABLE_ARES=ON -DCURL_ENABLE_NTLM=ON -DCURL_DISABLE_HTTPSIG=OFF diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 0033dc0290..41d21a5305 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -391,21 +391,21 @@ jobs: install: openssl@4 install_steps: torture generate: -DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DENABLE_THREADED_RESOLVER=OFF -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl@4 -DUSE_ECH=ON -DCURL_ENABLE_NTLM=ON - tflags: '-t --shallow=25 --min=480 1 to 500' + tflags: '-t --shallow=25 --subset=0/3' - name: 'OpenSSL torture 2' compiler: clang install: openssl@4 install_steps: torture generate: -DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DENABLE_THREADED_RESOLVER=OFF -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl@4 -DUSE_ECH=ON -DCURL_ENABLE_NTLM=ON - tflags: '-t --shallow=25 --min=730 501 to 1250' + tflags: '-t --shallow=25 --subset=1/3' - name: 'OpenSSL torture 3' compiler: clang install: openssl@4 install_steps: torture generate: -DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DENABLE_THREADED_RESOLVER=OFF -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl@4 -DUSE_ECH=ON -DCURL_ENABLE_NTLM=ON - tflags: '-t --shallow=25 --min=628 1251 to 9999' + tflags: '-t --shallow=25 --subset=2/3' steps: - name: 'brew unlink openssl' diff --git a/.github/workflows/non-native.yml b/.github/workflows/non-native.yml index ca42ba7507..b08949062d 100644 --- a/.github/workflows/non-native.yml +++ b/.github/workflows/non-native.yml @@ -73,8 +73,8 @@ jobs: install: 'cmake-core ninja perl5 krb5-devel openldap26-client libidn2', options: '-DCURL_USE_GSSAPI=ON -DCMAKE_UNITY_BUILD=OFF' } - - { os: 'freebsd' , version: '15.1', build: 'cmake' , arch: 'riscv64', cc: 'clang', desc: 'openssl', tflags: 'skipall', - install: 'cmake-core ninja', + - { os: 'freebsd' , version: '15.1', build: 'cmake' , arch: 'riscv64', cc: 'clang', desc: 'openssl !examples', tflags: 'HTTP --min=0 --subset=0/10 -R --seed', + install: 'cmake-core ninja perl5', options: '-D_CURL_PREFILL=ON -DBUILD_LIBCURL_DOCS=OFF -DBUILD_MISC_DOCS=OFF -DENABLE_CURL_MANUAL=OFF -DCURL_DISABLE_HTTPSIG=OFF -DCURL_DISABLE_TYPECHECK=ON' } - { os: 'freebsd' , version: '14.3', build: 'autotools', arch: 'arm64' , cc: 'clang', desc: 'openssl !examples', tflags: 'skipall', diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 00e088d00b..f47de59b0a 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -287,11 +287,11 @@ jobs: install: 'mingw-w64-x86_64-c-ares mingw-w64-x86_64-libssh2' } # MinGW torture - { name: 'schannel U torture 1', type: 'Debug', - build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: '-t --shallow=13 --min=820 1 to 950', + build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: '-t --shallow=13 --subset=0/2', config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_ARES=ON', install: 'mingw-w64-ucrt-x86_64-c-ares mingw-w64-ucrt-x86_64-libssh2' } - { name: 'schannel U torture 2', type: 'Debug', - build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: '-t --shallow=13 --min=820 951 to 9999', + build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: '-t --shallow=13 --subset=1/2 --min=885', config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_ARES=ON', install: 'mingw-w64-ucrt-x86_64-c-ares mingw-w64-ucrt-x86_64-libssh2' } # WARNING: libssh uses hard-coded world-writable paths (C:ProgramData/, /etc/..., ~/.ssh/)