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 66486691ee #22619
Follow-up to e669179681 #22616
Follow-up to 58cb1e2f1f #22618
Follow-up to d00000673d #22602

Closes #22617
This commit is contained in:
Viktor Szakats 2026-08-18 12:16:32 +02:00
parent 66486691ee
commit 79132a1daf
No known key found for this signature in database
4 changed files with 21 additions and 21 deletions

View file

@ -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

View file

@ -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'

View file

@ -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',

View file

@ -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/)