Files
openssl/test/lhash_test.c
Bob Beck 131c2a1adb
Some checks failed
GitHub CI / check_update (push) Has been cancelled
GitHub CI / check_docs (push) Has been cancelled
GitHub CI / check-c99 (push) Has been cancelled
GitHub CI / basic_gcc (push) Has been cancelled
GitHub CI / basic_clang (push) Has been cancelled
GitHub CI / linux-arm64 (push) Has been cancelled
GitHub CI / linux-x86 (push) Has been cancelled
GitHub CI / freebsd-x86_64 (push) Has been cancelled
GitHub CI / minimal (push) Has been cancelled
GitHub CI / no-deprecated (push) Has been cancelled
GitHub CI / no-shared-ubuntu (push) Has been cancelled
GitHub CI / no-shared-macos (push) Has been cancelled
GitHub CI / non-caching (push) Has been cancelled
GitHub CI / address_ub_sanitizer (push) Has been cancelled
GitHub CI / fuzz_tests (push) Has been cancelled
GitHub CI / memory_sanitizer (push) Has been cancelled
GitHub CI / threads_sanitizer (push) Has been cancelled
GitHub CI / enable_non-default_options (push) Has been cancelled
GitHub CI / full_featured (push) Has been cancelled
GitHub CI / no-legacy (push) Has been cancelled
GitHub CI / legacy (push) Has been cancelled
GitHub CI / out-of-readonly-source-and-install-ubuntu (push) Has been cancelled
GitHub CI / out-of-readonly-source-and-install-macos (push) Has been cancelled
GitHub CI / external-tests-misc (push) Has been cancelled
GitHub CI / external-tests-oqs-provider (push) Has been cancelled
GitHub CI / external-tests-pkcs11-provider (push) Has been cancelled
GitHub CI / external-tests-pyca (3.9) (push) Has been cancelled
Compiler Zoo CI / gcc (gcc-10) (push) Has been cancelled
Compiler Zoo CI / gcc (gcc-11) (push) Has been cancelled
Compiler Zoo CI / gcc (gcc-12) (push) Has been cancelled
Compiler Zoo CI / gcc (gcc-13) (push) Has been cancelled
Compiler Zoo CI / gcc (gcc-14) (push) Has been cancelled
Compiler Zoo CI / gcc (gcc-9) (push) Has been cancelled
Compiler Zoo CI / clang (clang-11) (push) Has been cancelled
Compiler Zoo CI / clang (clang-12) (push) Has been cancelled
Compiler Zoo CI / clang (clang-13) (push) Has been cancelled
Compiler Zoo CI / clang (clang-14) (push) Has been cancelled
Compiler Zoo CI / clang (clang-15) (push) Has been cancelled
Compiler Zoo CI / clang (clang-16) (push) Has been cancelled
Compiler Zoo CI / clang (clang-17) (push) Has been cancelled
Compiler Zoo CI / clang (clang-18) (push) Has been cancelled
Compiler Zoo CI / clang (clang-19) (push) Has been cancelled
Compiler Zoo CI / clang (clang-20) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:aarch64-linux-gnu fips:no libs:libc6-dev-arm64-cross target:linux-aarch64]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:alpha-linux-gnu fips:no libs:libc6.1-dev-alpha-cross target:linux-alpha-gcc]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:arm-linux-gnueabi fips:no libs:libc6-dev-armel-cross target:linux-armv4 tests:-test_includes -test_store -test_x509_store]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:arm-linux-gnueabihf fips:no libs:libc6-dev-armhf-cross target:linux-armv4 tests:-test_includes -test_store -test_x509_store]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:hppa-linux-gnu fips:no libs:libc6-dev-hppa-cross target:-static -O1 linux-generic32 tests:-test_includes -test_store -test_x509_store]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:hppa-linux-gnu libs:libc6-dev-hppa-cross target:linux-generic32 tests:none]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:i386-pc-msdosdjgpp libs:libc-djgpp-dev libwatt-djgpp-dev djgpp-utils ppa:jwt27/djgpp-toolchain target:no-threads 386 DJGPP tests:none]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:m68k-linux-gnu fips:no libs:libc6-dev-m68k-cross target:-static -m68040 linux-latomic -Wno-stringop-overflow tests:-test_includes -test_store -test_x509_store]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:m68k-linux-gnu libs:libc6-dev-m68k-cross target:-mcfv4e -mxgot linux-latomic -Wno-stringop-overflow no-quic tests:none]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:mips-linux-gnu fips:no libs:libc6-dev-mips-cross target:-static linux-mips32 tests:-test_includes -test_store -test_x509_store]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:mips-linux-gnu libs:libc6-dev-mips-cross target:linux-mips32 tests:none]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:mips64-linux-gnuabi64 fips:no libs:libc6-dev-mips64-cross target:-static linux64-mips64]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:mips64-linux-gnuabi64 libs:libc6-dev-mips64-cross target:linux64-mips64 tests:none]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:mipsel-linux-gnu fips:no libs:libc6-dev-mipsel-cross target:linux-mips32 tests:-test_includes -test_store -test_x509_store]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:powerpc64le-linux-gnu fips:no libs:libc6-dev-ppc64el-cross target:linux-ppc64le]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross target:linux64-riscv64]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:s390x-linux-gnu fips:no libs:libc6-dev-s390x-cross target:linux64-s390x]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:sh4-linux-gnu fips:no libs:libc6-dev-sh4-cross target:no-async linux-latomic tests:-test_includes -test_store -test_x509_store]) (push) Has been cancelled
Cross Compile / cross-compilation (map[arch:sparc64-linux-gnu libs:libc6-dev-sparc64-cross target:linux64-sparcv9 tests:none]) (push) Has been cancelled
Fuzz-checker CI / fuzz-checker (map[cc:afl-clang-fast config:enable-fuzz-afl no-module install:afl++ name:AFL]) (push) Has been cancelled
Fuzz-checker CI / fuzz-checker (map[cc:clang-18 config:enable-fuzz-libfuzzer enable-asan enable-ubsan -fno-sanitize=function -fsanitize-coverage=trace-cmp -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION extra:enable-fips enable-lms enable-ec_nistp_64_gcc_128 -fno-sanitize=al… (push) Has been cancelled
Fuzz-checker CI / fuzz-checker (map[cc:clang-18 config:enable-fuzz-libfuzzer enable-asan enable-ubsan -fno-sanitize=function install:libfuzzer-18-dev libs:--with-fuzzer-lib=/usr/lib/llvm-18/lib/libFuzzer.a --with-fuzzer-include=/usr/include/clang/18/include/fuzzer linke… (push) Has been cancelled
Perl-minimal-checker CI / perl-minimal-checker (push) Has been cancelled
Cross Compile for RISC-V Extensions / cross-compilation-riscv (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross opensslcaps:rv64gc_inlineasm opensslcapsname:riscvcap qemucpu:rv64,zbb=true,zbkb=true,zknh=true,zksh=true target:-march=rv64gc_zbb_zbkb_zknh_zksh linux64-riscv64]) (push) Has been cancelled
Cross Compile for RISC-V Extensions / cross-compilation-riscv (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross opensslcaps:rv64gc_v_zbb opensslcapsname:riscvcap qemucpu:rv64,v=true,vlen=128,zbb=true,zvbb=false,zvkb=false target:linux64-riscv64]) (push) Has been cancelled
Cross Compile for RISC-V Extensions / cross-compilation-riscv (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross opensslcaps:rv64gc_v_zvkb_zvbc opensslcapsname:riscvcap qemucpu:rv64,v=true,vlen=128,zvbb=true,zvbc=true,zvkg=false target:linux64-riscv64]) (push) Has been cancelled
Cross Compile for RISC-V Extensions / cross-compilation-riscv (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross opensslcaps:rv64gc_v_zvkg opensslcapsname:riscvcap qemucpu:rv64,v=true,vlen=128,zvkg=true,zvbb=false target:linux64-riscv64]) (push) Has been cancelled
Cross Compile for RISC-V Extensions / cross-compilation-riscv (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross opensslcaps:rv64gc_v_zvkned opensslcapsname:riscvcap qemucpu:rv64,v=true,vlen=128,zvkned=true,zvbb=false,zvkb=false,zvkg=false target:linux64-riscv64]) (push) Has been cancelled
Cross Compile for RISC-V Extensions / cross-compilation-riscv (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross opensslcaps:rv64gc_zba_zbb_zbc_zbs_zbkb_zbkc_zbkx_zknd_zkne_zknh_zksed_zksh_zkr_zkt_v_zvbb_zvbc_zvkb_zvkg_zvkned_zvknha_zvknhb_zvksed_zvksh opensslcapsname:riscvca… (push) Has been cancelled
Cross Compile for RISC-V Extensions / cross-compilation-riscv (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross opensslcaps:rv64gc_zbb_zbc_zbkb_zknd_zkne opensslcapsname:riscvcap qemucpu:rv64,zbb=true,zbc=true,zbkb=true,zknd=true,zkne=true target:linux64-riscv64]) (push) Has been cancelled
Cross Compile for RISC-V Extensions / cross-compilation-riscv (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross opensslcaps:rv64gc_zbc opensslcapsname:riscvcap qemucpu:rv64,zbc=true,zbb=false,zbkb=false target:linux64-riscv64]) (push) Has been cancelled
Cross Compile for RISC-V Extensions / cross-compilation-riscv (map[arch:riscv64-linux-gnu fips:no libs:libc6-dev-riscv64-cross opensslcaps:rv64gc_zbc_zbb opensslcapsname:riscvcap qemucpu:rv64,zbc=true,zbb=true,zbkb=false target:linux64-riscv64]) (push) Has been cancelled
Run-checker CI / run-checker (enable-trace enable-fips) (push) Has been cancelled
Run-checker CI / run-checker (no-cmp) (push) Has been cancelled
Run-checker CI / run-checker (no-cms) (push) Has been cancelled
Run-checker CI / run-checker (no-default-thread-pool) (push) Has been cancelled
Run-checker CI / run-checker (no-dgram) (push) Has been cancelled
Run-checker CI / run-checker (no-dh) (push) Has been cancelled
Run-checker CI / run-checker (no-dtls) (push) Has been cancelled
Run-checker CI / run-checker (no-ec) (push) Has been cancelled
Run-checker CI / run-checker (no-ecx) (push) Has been cancelled
Run-checker CI / run-checker (no-http) (push) Has been cancelled
Run-checker CI / run-checker (no-legacy) (push) Has been cancelled
Run-checker CI / run-checker (no-ml-dsa) (push) Has been cancelled
Run-checker CI / run-checker (no-ml-kem) (push) Has been cancelled
Run-checker CI / run-checker (no-quic) (push) Has been cancelled
Run-checker CI / run-checker (no-sm2) (push) Has been cancelled
Run-checker CI / run-checker (no-sock) (push) Has been cancelled
Run-checker CI / run-checker (no-stdio) (push) Has been cancelled
Run-checker CI / run-checker (no-thread-pool) (push) Has been cancelled
Run-checker CI / run-checker (no-threads) (push) Has been cancelled
Run-checker CI / run-checker (no-tls) (push) Has been cancelled
Run-checker CI / run-checker (no-tls1_2) (push) Has been cancelled
Run-checker CI / run-checker (no-tls1_3) (push) Has been cancelled
Run-checker CI / run-checker (no-ui) (push) Has been cancelled
Run-checker merge / run-checker (enable-asan enable-ubsan no-shared no-asm -DOPENSSL_SMALL_FOOTPRINT -fno-sanitize=function) (push) Has been cancelled
Run-checker merge / run-checker (enable-pie) (push) Has been cancelled
Run-checker merge / run-checker (enable-ubsan no-asm -DOPENSSL_SMALL_FOOTPRINT -fno-sanitize=function) (push) Has been cancelled
Run-checker merge / run-checker (enable-weak-ssl-ciphers) (push) Has been cancelled
Run-checker merge / run-checker (enable-zlib) (push) Has been cancelled
Run-checker merge / run-checker (no-dso) (push) Has been cancelled
Run-checker merge / run-checker (no-ec2m enable-fips) (push) Has been cancelled
Run-checker merge / run-checker (no-err) (push) Has been cancelled
Run-checker merge / run-checker (no-filenames) (push) Has been cancelled
Run-checker merge / run-checker (no-integrity-only-ciphers) (push) Has been cancelled
Run-checker merge / run-checker (no-module) (push) Has been cancelled
Run-checker merge / run-checker (no-ocsp) (push) Has been cancelled
Run-checker merge / run-checker (no-pinshared) (push) Has been cancelled
Run-checker merge / run-checker (no-shared) (push) Has been cancelled
Run-checker merge / run-checker (no-srp) (push) Has been cancelled
Run-checker merge / run-checker (no-srtp) (push) Has been cancelled
Run-checker merge / run-checker (no-ts) (push) Has been cancelled
Run-checker merge / jitter (push) Has been cancelled
Run-checker merge / threads_sanitizer_atomic_fallback (push) Has been cancelled
Windows GitHub CI / shared (map[arch:amd64 config:enable-lms enable-fips no-thread-pool no-quic os:windows-2025 vcvars:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat]) (push) Has been cancelled
Windows GitHub CI / shared (map[arch:amd64 config:enable-lms enable-fips os:windows-2022 vcvars:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat]) (push) Has been cancelled
Windows GitHub CI / shared (map[arch:x86 config:no-fips enable-lms os:windows-2022 vcvars:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat]) (push) Has been cancelled
Windows GitHub CI / plain (push) Has been cancelled
Windows GitHub CI / minimal (push) Has been cancelled
Windows GitHub CI / cygwin (windows-2022, map[arch:win64 config:-DCMAKE_C_COMPILER=gcc --strict-warnings enable-demos no-fips]) (push) Has been cancelled
Windows Compression GitHub CI / zstd (push) Has been cancelled
Windows Compression GitHub CI / brotli (push) Has been cancelled
Trigger docs.openssl.org deployment / trigger (push) Has been cancelled
CIFuzz / Fuzzing (push) Has been cancelled
Provider compatibility across versions / fips-releases (map[dir:openssl-3.0.0 tgz:openssl-3.0.0.tar.gz url:https://www.openssl.org/source/old/3.0/openssl-3.0.0.tar.gz]) (push) Has been cancelled
Provider compatibility across versions / fips-releases (map[dir:openssl-3.0.8 tgz:openssl-3.0.8.tar.gz url:https://www.openssl.org/source/openssl-3.0.8.tar.gz]) (push) Has been cancelled
Provider compatibility across versions / fips-releases (map[dir:openssl-3.0.9 tgz:openssl-3.0.9.tar.gz url:https://www.openssl.org/source/openssl-3.0.9.tar.gz]) (push) Has been cancelled
Provider compatibility across versions / fips-releases (map[dir:openssl-3.1.2 tgz:openssl-3.1.2.tar.gz url:https://www.openssl.org/source/openssl-3.1.2.tar.gz]) (push) Has been cancelled
Provider compatibility across versions / development-branches (map[dir:branch-3.0 extra_config: name:openssl-3.0 tgz:branch-3.0.tar.gz]) (push) Has been cancelled
Provider compatibility across versions / development-branches (map[dir:branch-3.3 extra_config: name:openssl-3.3 tgz:branch-3.3.tar.gz]) (push) Has been cancelled
Provider compatibility across versions / development-branches (map[dir:branch-3.4 extra_config: name:openssl-3.4 tgz:branch-3.4.tar.gz]) (push) Has been cancelled
Provider compatibility across versions / development-branches (map[dir:branch-3.5 extra_config: name:openssl-3.5 tgz:branch-3.5.tar.gz]) (push) Has been cancelled
Provider compatibility across versions / development-branches (map[dir:branch-3.6 extra_config:enable-lms name:openssl-3.6 tgz:branch-3.6.tar.gz]) (push) Has been cancelled
Provider compatibility across versions / development-branches (map[dir:branch-master extra_config:enable-lms name:master tgz:branch-master.tar.gz]) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.0, branch-3.0) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.0, branch-3.3) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.0, branch-3.4) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.0, branch-3.5) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.0, branch-3.6) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.0, branch-master) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.3, branch-3.0) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.3, branch-3.3) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.3, branch-3.4) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.3, branch-3.5) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.3, branch-3.6) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.3, branch-master) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.4, branch-3.0) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.4, branch-3.3) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.4, branch-3.4) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.4, branch-3.5) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.4, branch-3.6) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.4, branch-master) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.5, branch-3.0) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.5, branch-3.3) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.5, branch-3.4) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.5, branch-3.5) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.5, branch-3.6) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.5, branch-master) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.6, branch-3.0) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.6, branch-3.3) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.6, branch-3.4) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.6, branch-3.5) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.6, branch-3.6) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-3.6, branch-master) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-master, branch-3.0) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-master, branch-3.3) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-master, branch-3.4) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-master, branch-3.5) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-master, branch-3.6) (push) Has been cancelled
Provider compatibility across versions / cross-testing (branch-master, branch-master) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.0, branch-3.0) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.0, branch-3.3) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.0, branch-3.4) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.0, branch-3.5) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.0, branch-3.6) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.0, branch-master) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.8, branch-3.0) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.8, branch-3.3) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.8, branch-3.4) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.8, branch-3.5) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.8, branch-3.6) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.8, branch-master) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.9, branch-3.0) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.9, branch-3.3) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.9, branch-3.4) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.9, branch-3.5) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.9, branch-3.6) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.0.9, branch-master) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.1.2, branch-3.0) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.1.2, branch-3.3) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.1.2, branch-3.4) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.1.2, branch-3.5) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.1.2, branch-3.6) (push) Has been cancelled
Provider compatibility across versions / cross-testing (openssl-3.1.2, branch-master) (push) Has been cancelled
Coverage / define-matrix (push) Has been cancelled
Coverage / coverage (push) Has been cancelled
Static Analysis / coverity (push) Has been cancelled
Static Analysis On Prem / coverity-analysis (push) Has been cancelled
Run-checker daily / run-checker (-DOPENSSL_NO_BUILTIN_OVERFLOW_CHECKING) (push) Has been cancelled
Run-checker daily / run-checker (-DOPENSSL_PEDANTIC_ZEROIZATION enable-fips) (push) Has been cancelled
Run-checker daily / run-checker (-DOPENSSL_PEDANTIC_ZEROIZATION) (push) Has been cancelled
Run-checker daily / run-checker (-DOPENSSL_TLS_SECURITY_LEVEL=0) (push) Has been cancelled
Run-checker daily / run-checker (-DSSL3_ALIGN_PAYLOAD=4) (push) Has been cancelled
Run-checker daily / run-checker (386) (push) Has been cancelled
Run-checker daily / run-checker (enable-crypto-mdebug) (push) Has been cancelled
Run-checker daily / run-checker (enable-demos) (push) Has been cancelled
Run-checker daily / run-checker (enable-ec_nistp_64_gcc_128) (push) Has been cancelled
Run-checker daily / run-checker (enable-egd) (push) Has been cancelled
Run-checker daily / run-checker (enable-fips enable-acvp-tests) (push) Has been cancelled
Run-checker daily / run-checker (enable-fips no-des no-dsa no-ec2m) (push) Has been cancelled
Run-checker daily / run-checker (enable-fips no-tls1_3) (push) Has been cancelled
Run-checker daily / run-checker (enable-fips) (push) Has been cancelled
Run-checker daily / run-checker (enable-h3demo) (push) Has been cancelled
Run-checker daily / run-checker (enable-heartbeats) (push) Has been cancelled
Run-checker daily / run-checker (enable-hqinterop) (push) Has been cancelled
Run-checker daily / run-checker (enable-lms) (push) Has been cancelled
Run-checker daily / run-checker (enable-md2) (push) Has been cancelled
Run-checker daily / run-checker (enable-rc5) (push) Has been cancelled
Run-checker daily / run-checker (enable-ssl3) (push) Has been cancelled
Run-checker daily / run-checker (enable-ssl3-method) (push) Has been cancelled
Run-checker daily / run-checker (enable-sslkeylog) (push) Has been cancelled
Run-checker daily / run-checker (enable-tfo) (push) Has been cancelled
Run-checker daily / run-checker (enable-trace) (push) Has been cancelled
Run-checker daily / run-checker (enable-unit-test) (push) Has been cancelled
Run-checker daily / run-checker (enable-zlib-dynamic) (push) Has been cancelled
Run-checker daily / run-checker (no-apps) (push) Has been cancelled
Run-checker daily / run-checker (no-argon2) (push) Has been cancelled
Run-checker daily / run-checker (no-aria) (push) Has been cancelled
Run-checker daily / run-checker (no-asan) (push) Has been cancelled
Run-checker daily / run-checker (no-asm) (push) Has been cancelled
Run-checker daily / run-checker (no-async) (push) Has been cancelled
Run-checker daily / run-checker (no-atexit) (push) Has been cancelled
Run-checker daily / run-checker (no-autoalginit) (push) Has been cancelled
Run-checker daily / run-checker (no-autoerrinit) (push) Has been cancelled
Run-checker daily / run-checker (no-autoload-config) (push) Has been cancelled
Run-checker daily / run-checker (no-bf) (push) Has been cancelled
Run-checker daily / run-checker (no-blake2) (push) Has been cancelled
Run-checker daily / run-checker (no-buildtest-c++) (push) Has been cancelled
Run-checker daily / run-checker (no-bulk) (push) Has been cancelled
Run-checker daily / run-checker (no-cached-fetch) (push) Has been cancelled
Run-checker daily / run-checker (no-camellia) (push) Has been cancelled
Run-checker daily / run-checker (no-cast) (push) Has been cancelled
Run-checker daily / run-checker (no-chacha) (push) Has been cancelled
Run-checker daily / run-checker (no-cmac) (push) Has been cancelled
Run-checker daily / run-checker (no-comp) (push) Has been cancelled
Run-checker daily / run-checker (no-ct) (push) Has been cancelled
Run-checker daily / run-checker (no-deprecated) (push) Has been cancelled
Run-checker daily / run-checker (no-des) (push) Has been cancelled
Run-checker daily / run-checker (no-docs) (push) Has been cancelled
Run-checker daily / run-checker (no-dsa) (push) Has been cancelled
Run-checker daily / run-checker (no-dtls1) (push) Has been cancelled
Run-checker daily / run-checker (no-dtls1-method) (push) Has been cancelled
Run-checker daily / run-checker (no-dtls1_2) (push) Has been cancelled
Run-checker daily / run-checker (no-dtls1_2-method) (push) Has been cancelled
Run-checker daily / run-checker (no-ecdh) (push) Has been cancelled
Run-checker daily / run-checker (no-ecdsa) (push) Has been cancelled
Run-checker daily / run-checker (no-gost) (push) Has been cancelled
Run-checker daily / run-checker (no-hw) (push) Has been cancelled
Run-checker daily / run-checker (no-idea) (push) Has been cancelled
Run-checker daily / run-checker (no-makedepend) (push) Has been cancelled
Run-checker daily / run-checker (no-md4) (push) Has been cancelled
Run-checker daily / run-checker (no-mdc2) (push) Has been cancelled
Run-checker daily / run-checker (no-msan) (push) Has been cancelled
Run-checker daily / run-checker (no-multiblock) (push) Has been cancelled
Run-checker daily / run-checker (no-nextprotoneg) (push) Has been cancelled
Run-checker daily / run-checker (no-ocb) (push) Has been cancelled
Run-checker daily / run-checker (no-pic) (push) Has been cancelled
Run-checker daily / run-checker (no-poly1305) (push) Has been cancelled
Run-checker daily / run-checker (no-posix-io) (push) Has been cancelled
Run-checker daily / run-checker (no-psk) (push) Has been cancelled
Run-checker daily / run-checker (no-rc2) (push) Has been cancelled
Run-checker daily / run-checker (no-rdrand) (push) Has been cancelled
Run-checker daily / run-checker (no-rfc3779) (push) Has been cancelled
Run-checker daily / run-checker (no-ripemd) (push) Has been cancelled
Run-checker daily / run-checker (no-rmd160) (push) Has been cancelled
Run-checker daily / run-checker (no-scrypt) (push) Has been cancelled
Run-checker daily / run-checker (no-secure-memory) (push) Has been cancelled
Run-checker daily / run-checker (no-seed) (push) Has been cancelled
Run-checker daily / run-checker (no-shared) (push) Has been cancelled
Run-checker daily / run-checker (no-siphash) (push) Has been cancelled
Run-checker daily / run-checker (no-siv) (push) Has been cancelled
Run-checker daily / run-checker (no-sm2-precomp) (push) Has been cancelled
Run-checker daily / run-checker (no-sm3) (push) Has been cancelled
Run-checker daily / run-checker (no-sm4) (push) Has been cancelled
Run-checker daily / run-checker (no-sock) (push) Has been cancelled
Run-checker daily / run-checker (no-sse2) (push) Has been cancelled
Run-checker daily / run-checker (no-ssl) (push) Has been cancelled
Run-checker daily / run-checker (no-ssl-trace) (push) Has been cancelled
Run-checker daily / run-checker (no-tests) (push) Has been cancelled
Run-checker daily / run-checker (no-tls1) (push) Has been cancelled
Run-checker daily / run-checker (no-tls1-method) (push) Has been cancelled
Run-checker daily / run-checker (no-tls1_1) (push) Has been cancelled
Run-checker daily / run-checker (no-tls1_1-method) (push) Has been cancelled
Run-checker daily / run-checker (no-tls1_2-method) (push) Has been cancelled
Run-checker daily / run-checker (no-ubsan) (push) Has been cancelled
Run-checker daily / run-checker (no-ui-console) (push) Has been cancelled
Run-checker daily / run-checker (no-uplink) (push) Has been cancelled
Run-checker daily / run-checker (no-weak-ssl-ciphers) (push) Has been cancelled
Run-checker daily / run-checker (no-whirlpool) (push) Has been cancelled
Run-checker daily / run-checker-sctp (push) Has been cancelled
Run-checker daily / enable_brotli_dynamic (push) Has been cancelled
Run-checker daily / enable_zstd_dynamic (push) Has been cancelled
Run-checker daily / enable_brotli_and_zstd_dynamic (push) Has been cancelled
Run-checker daily / malloc_failure_testing (push) Has been cancelled
Run-checker daily / enable_brotli_and_asan_ubsan (push) Has been cancelled
Run-checker daily / enable_zstd_and_asan_ubsan (push) Has been cancelled
Run-checker daily / enable_tfo (macos-15) (push) Has been cancelled
Run-checker daily / enable_tfo (macos-15-intel) (push) Has been cancelled
Run-checker daily / enable_tfo (ubuntu-latest) (push) Has been cancelled
Run-checker daily / enable_buildtest (push) Has been cancelled
Run-checker daily / memory_sanitizer_slh_dsa (push) Has been cancelled
Run-checker daily / bn_debug (push) Has been cancelled
Run openssl quic interop testing / update_quay_container (push) Has been cancelled
Run openssl quic interop testing / update_msquic_quay_container (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (haproxy, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (haproxy, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (haproxy, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (haproxy, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (haproxy, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (haproxy, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (haproxy, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (haproxy, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic-openssl, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic-openssl, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic-openssl, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic-openssl, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic-openssl, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic-openssl, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (msquic-openssl, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (mvfst, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (mvfst, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (mvfst, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (mvfst, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (mvfst, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (mvfst, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (mvfst, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (mvfst, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (nginx, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (nginx, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (nginx, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (nginx, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (nginx, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (nginx, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (nginx, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (nginx, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (ngtcp2, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (ngtcp2, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (ngtcp2, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (ngtcp2, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (ngtcp2, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (ngtcp2, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (ngtcp2, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (ngtcp2, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quic-go, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quic-go, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quic-go, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quic-go, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quic-go, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quic-go, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quic-go, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quic-go, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quiche, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quiche, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quiche, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quiche, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quiche, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quiche, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quiche, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client (quiche, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (chrome, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (chrome, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (chrome, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (chrome, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (chrome, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (chrome, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (chrome, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (chrome, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic-openssl, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic-openssl, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic-openssl, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic-openssl, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic-openssl, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic-openssl, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic-openssl, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (msquic-openssl, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (mvfst, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (mvfst, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (mvfst, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (mvfst, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (mvfst, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (mvfst, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (mvfst, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (ngtcp2, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (ngtcp2, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (ngtcp2, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (ngtcp2, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (ngtcp2, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (ngtcp2, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (ngtcp2, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (ngtcp2, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (openssl, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (openssl, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (openssl, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (openssl, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (openssl, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (openssl, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (openssl, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (openssl, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quic-go, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quic-go, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quic-go, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quic-go, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quic-go, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quic-go, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quic-go, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quic-go, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quiche, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quiche, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quiche, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quiche, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quiche, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quiche, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quiche, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server (quiche, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (haproxy, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (haproxy, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (haproxy, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (haproxy, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (haproxy, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (haproxy, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (haproxy, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (haproxy, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic-openssl, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic-openssl, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic-openssl, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic-openssl, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic-openssl, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic-openssl, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (msquic-openssl, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (mvfst, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (mvfst, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (mvfst, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (mvfst, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (mvfst, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (mvfst, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (mvfst, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (mvfst, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (nginx, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (nginx, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (nginx, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (nginx, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (nginx, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (nginx, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (nginx, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (nginx, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (ngtcp2, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (ngtcp2, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (ngtcp2, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (ngtcp2, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (ngtcp2, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (ngtcp2, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (ngtcp2, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (ngtcp2, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quic-go, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quic-go, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quic-go, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quic-go, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quic-go, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quic-go, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quic-go, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quic-go, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quiche, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quiche, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quiche, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quiche, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quiche, multiplexing) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quiche, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quiche, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_client_only (quiche, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (chrome, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (chrome, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (chrome, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (chrome, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (chrome, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (chrome, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (chrome, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (chrome, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic-openssl, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic-openssl, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic-openssl, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic-openssl, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic-openssl, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic-openssl, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic-openssl, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (msquic-openssl, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (mvfst, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (mvfst, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (mvfst, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (mvfst, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (mvfst, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (mvfst, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (mvfst, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (ngtcp2, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (ngtcp2, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (ngtcp2, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (ngtcp2, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (ngtcp2, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (ngtcp2, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (ngtcp2, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (ngtcp2, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (openssl, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (openssl, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (openssl, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (openssl, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (openssl, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (openssl, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (openssl, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (openssl, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quic-go, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quic-go, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quic-go, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quic-go, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quic-go, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quic-go, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quic-go, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quic-go, transfer) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quiche, amplificationlimit) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quiche, chacha20) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quiche, handshake) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quiche, http3) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quiche, ipv6) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quiche, resumption) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quiche, retry) (push) Has been cancelled
Run openssl quic interop testing / run_quic_interop_openssl_server_only (quiche, transfer) (push) Has been cancelled
OS Zoo CI / alpine (clang, edge) (push) Has been cancelled
OS Zoo CI / alpine (clang, latest) (push) Has been cancelled
OS Zoo CI / alpine (gcc, edge) (push) Has been cancelled
OS Zoo CI / alpine (gcc, latest) (push) Has been cancelled
OS Zoo CI / linux (map[image:docker.io/library/centos:8 install:sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \ sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \ dnf install -y gcc make… (push) Has been cancelled
OS Zoo CI / linux (map[image:docker.io/library/debian:11 install:apt-get update && apt-get install -y gcc make perl]) (push) Has been cancelled
OS Zoo CI / linux (map[image:docker.io/library/debian:12 install:apt-get update && apt-get install -y gcc make perl]) (push) Has been cancelled
OS Zoo CI / linux (map[image:docker.io/library/debian:trixie install:apt-get update && apt-get install -y gcc make perl]) (push) Has been cancelled
OS Zoo CI / linux (map[image:docker.io/library/fedora:41 install:dnf install -y gcc make perl-core]) (push) Has been cancelled
OS Zoo CI / linux (map[image:docker.io/library/fedora:42 install:dnf install -y gcc make perl-core]) (push) Has been cancelled
OS Zoo CI / linux (map[image:docker.io/library/rockylinux:8 install:dnf install -y gcc make perl-core]) (push) Has been cancelled
OS Zoo CI / linux (map[image:docker.io/library/rockylinux:9 install:dnf install -y gcc make perl-core]) (push) Has been cancelled
OS Zoo CI / linux (map[image:docker.io/library/ubuntu:20.04 install:apt-get update && apt-get install -y gcc make perl]) (push) Has been cancelled
OS Zoo CI / linux (map[image:docker.io/library/ubuntu:22.04 install:apt-get update && apt-get install -y gcc make perl]) (push) Has been cancelled
OS Zoo CI / linux (map[image:docker.io/library/ubuntu:24.04 install:apt-get update && apt-get install -y gcc make perl]) (push) Has been cancelled
OS Zoo CI / macos (macos-14) (push) Has been cancelled
OS Zoo CI / macos (macos-15) (push) Has been cancelled
OS Zoo CI / macos (macos-15-intel) (push) Has been cancelled
OS Zoo CI / windows (map[os:windows-2022 vcvars:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat]) (push) Has been cancelled
OS Zoo CI / windows (map[os:windows-2025 vcvars:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat]) (push) Has been cancelled
OS Zoo CI / linux-arm64 (push) Has been cancelled
OS Zoo CI / linux-x86 (push) Has been cancelled
OS Zoo CI / linux-ppc64le (push) Has been cancelled
OS Zoo CI / linux-s390x (push) Has been cancelled
OS Zoo CI / linux-riscv64 (push) Has been cancelled
OS Zoo CI / freebsd-x86_64 (push) Has been cancelled
Interoperability tests with GnuTLS, NSS and OpenSSH / test (gnutls) (push) Has been cancelled
Interoperability tests with GnuTLS, NSS and OpenSSH / test (nss) (push) Has been cancelled
Interoperability tests with GnuTLS, NSS and OpenSSH / openssh interop openssl-3.0 (push) Has been cancelled
Interoperability tests with GnuTLS, NSS and OpenSSH / openssh interop openssl-3.2 (push) Has been cancelled
Interoperability tests with GnuTLS, NSS and OpenSSH / openssh interop openssl-3.3 (push) Has been cancelled
Interoperability tests with GnuTLS, NSS and OpenSSH / openssh interop openssl-3.4 (push) Has been cancelled
Interoperability tests with GnuTLS, NSS and OpenSSH / openssh interop openssl-3.5 (push) Has been cancelled
Interoperability tests with GnuTLS, NSS and OpenSSH / openssh interop openssl-3.6 (push) Has been cancelled
Interoperability tests with GnuTLS, NSS and OpenSSH / openssh interop master (push) Has been cancelled
Defang the lhash test
This is bascially eating my mac, as it now runs for 80 seconds
and eats all the CPU's exercising lock contention.

This dials it back to consume at most a quarter of the CPU's in
use by HARNESS_JOBS, unless LHASH_WORKERS is set to override it
in which case we use that.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
(Merged from https://github.com/openssl/openssl/pull/29406)
2025-12-17 08:45:38 -05:00

800 lines
21 KiB
C

/*
* Copyright 2017-2025 The OpenSSL Project Authors. All Rights Reserved.
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#include <stdio.h>
#include <string.h>
#include <openssl/opensslconf.h>
#include <openssl/lhash.h>
#include <openssl/err.h>
#include <openssl/rand.h>
#include <openssl/crypto.h>
#include <internal/hashtable.h>
#include "internal/nelem.h"
#include "threadstest.h"
#include "testutil.h"
/*
* The macros below generate unused functions which error out one of the clang
* builds. We disable this check here.
*/
#ifdef __clang__
#pragma clang diagnostic ignored "-Wunused-function"
#endif
DEFINE_LHASH_OF_EX(int);
static int int_tests[] = { 65537, 13, 1, 3, -5, 6, 7, 4, -10, -12, -14, 22, 9,
-17, 16, 17, -23, 35, 37, 173, 11 };
static const size_t n_int_tests = OSSL_NELEM(int_tests);
static short int_found[OSSL_NELEM(int_tests)];
static short int_not_found;
static unsigned long int int_hash(const int *p)
{
return 3 & *p; /* To force collisions */
}
static int int_cmp(const int *p, const int *q)
{
return *p != *q;
}
static int int_find(int n)
{
unsigned int i;
for (i = 0; i < n_int_tests; i++)
if (int_tests[i] == n)
return i;
return -1;
}
static void int_doall(int *v)
{
const int n = int_find(*v);
if (n < 0)
int_not_found++;
else
int_found[n]++;
}
static void int_doall_arg(int *p, short *f)
{
const int n = int_find(*p);
if (n < 0)
int_not_found++;
else
f[n]++;
}
IMPLEMENT_LHASH_DOALL_ARG(int, short);
static int test_int_lhash(void)
{
static struct {
int data;
int null;
} dels[] = {
{ 65537, 0 },
{ 173, 0 },
{ 999, 1 },
{ 37, 0 },
{ 1, 0 },
{ 34, 1 }
};
const unsigned int n_dels = OSSL_NELEM(dels);
LHASH_OF(int) *h = lh_int_new(&int_hash, &int_cmp);
unsigned int i;
int testresult = 0, j, *p;
if (!TEST_ptr(h))
goto end;
/* insert */
for (i = 0; i < n_int_tests; i++)
if (!TEST_ptr_null(lh_int_insert(h, int_tests + i))) {
TEST_info("int insert %d", i);
goto end;
}
/* num_items */
if (!TEST_size_t_eq((size_t)lh_int_num_items(h), n_int_tests))
goto end;
/* retrieve */
for (i = 0; i < n_int_tests; i++)
if (!TEST_int_eq(*lh_int_retrieve(h, int_tests + i), int_tests[i])) {
TEST_info("lhash int retrieve value %d", i);
goto end;
}
for (i = 0; i < n_int_tests; i++)
if (!TEST_ptr_eq(lh_int_retrieve(h, int_tests + i), int_tests + i)) {
TEST_info("lhash int retrieve address %d", i);
goto end;
}
j = 1;
if (!TEST_ptr_eq(lh_int_retrieve(h, &j), int_tests + 2))
goto end;
/* replace */
j = 13;
if (!TEST_ptr(p = lh_int_insert(h, &j)))
goto end;
if (!TEST_ptr_eq(p, int_tests + 1))
goto end;
if (!TEST_ptr_eq(lh_int_retrieve(h, int_tests + 1), &j))
goto end;
/* do_all */
memset(int_found, 0, sizeof(int_found));
int_not_found = 0;
lh_int_doall(h, &int_doall);
if (!TEST_int_eq(int_not_found, 0)) {
TEST_info("lhash int doall encountered a not found condition");
goto end;
}
for (i = 0; i < n_int_tests; i++)
if (!TEST_int_eq(int_found[i], 1)) {
TEST_info("lhash int doall %d", i);
goto end;
}
/* do_all_arg */
memset(int_found, 0, sizeof(int_found));
int_not_found = 0;
lh_int_doall_short(h, int_doall_arg, int_found);
if (!TEST_int_eq(int_not_found, 0)) {
TEST_info("lhash int doall arg encountered a not found condition");
goto end;
}
for (i = 0; i < n_int_tests; i++)
if (!TEST_int_eq(int_found[i], 1)) {
TEST_info("lhash int doall arg %d", i);
goto end;
}
/* delete */
for (i = 0; i < n_dels; i++) {
const int b = lh_int_delete(h, &dels[i].data) == NULL;
if (!TEST_int_eq(b ^ dels[i].null, 0)) {
TEST_info("lhash int delete %d", i);
goto end;
}
}
/* error */
if (!TEST_int_eq(lh_int_error(h), 0))
goto end;
testresult = 1;
end:
lh_int_free(h);
return testresult;
}
static int int_filter_all(HT_VALUE *v, void *arg)
{
return 1;
}
HT_START_KEY_DEFN(intkey)
HT_DEF_KEY_FIELD(mykey, int)
HT_END_KEY_DEFN(INTKEY)
IMPLEMENT_HT_VALUE_TYPE_FNS(int, test, static)
static int int_foreach(HT_VALUE *v, void *arg)
{
int *vd = ossl_ht_test_int_from_value(v);
const int n = int_find(*vd);
if (n < 0)
int_not_found++;
else
int_found[n]++;
return 1;
}
static uint64_t hashtable_hash(HT_KEY *key)
{
return (uint64_t)(*(uint32_t *)key->keybuf);
}
static int test_int_hashtable(int idx)
{
static struct {
int data;
int should_del;
} dels[] = {
{ 65537, 1 },
{ 173, 1 },
{ 999, 0 },
{ 37, 1 },
{ 1, 1 },
{ 34, 0 }
};
const size_t n_dels = OSSL_NELEM(dels);
HT_CONFIG hash_conf = {
.collision_check = 1,
.no_rcu = idx,
};
INTKEY key;
int rc = 0;
size_t i;
HT *ht = NULL;
int todel;
HT_VALUE_LIST *list = NULL;
ht = ossl_ht_new(&hash_conf);
if (ht == NULL)
return 0;
/* insert */
HT_INIT_KEY(&key);
for (i = 0; i < n_int_tests; i++) {
HT_SET_KEY_FIELD(&key, mykey, int_tests[i]);
if (!TEST_int_eq(ossl_ht_test_int_insert(ht, TO_HT_KEY(&key),
&int_tests[i], NULL),
1)) {
TEST_info("int insert %zu", i);
goto end;
}
}
/* num_items */
if (!TEST_size_t_eq(ossl_ht_count(ht), n_int_tests))
goto end;
/* foreach, no arg */
memset(int_found, 0, sizeof(int_found));
int_not_found = 0;
ossl_ht_foreach_until(ht, int_foreach, NULL);
if (!TEST_int_eq(int_not_found, 0)) {
TEST_info("hashtable int foreach encountered a not found condition");
goto end;
}
for (i = 0; i < n_int_tests; i++)
if (!TEST_int_eq(int_found[i], 1)) {
TEST_info("hashtable int foreach %zu", i);
goto end;
}
/* filter */
list = ossl_ht_filter(ht, 64, int_filter_all, NULL);
if (!TEST_size_t_eq(list->list_len, n_int_tests))
goto end;
ossl_ht_value_list_free(list);
/* delete */
for (i = 0; i < n_dels; i++) {
HT_SET_KEY_FIELD(&key, mykey, dels[i].data);
todel = ossl_ht_delete(ht, TO_HT_KEY(&key));
if (dels[i].should_del) {
if (!TEST_int_eq(todel, 1)) {
TEST_info("hashtable couldn't find entry %d to delete\n",
dels[i].data);
goto end;
}
} else {
if (!TEST_int_eq(todel, 0)) {
TEST_info("%d found an entry that shouldn't be there\n", dels[i].data);
goto end;
}
}
}
rc = 1;
end:
ossl_ht_free(ht);
return rc;
}
static unsigned long int stress_hash(const int *p)
{
return *p;
}
#ifdef MEASURE_HASH_PERFORMANCE
static int
timeval_subtract(struct timeval *result, struct timeval *x, struct timeval *y)
{
/* Perform the carry for the later subtraction by updating y. */
if (x->tv_usec < y->tv_usec) {
int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1;
y->tv_usec -= 1000000 * nsec;
y->tv_sec += nsec;
}
if (x->tv_usec - y->tv_usec > 1000000) {
int nsec = (x->tv_usec - y->tv_usec) / 1000000;
y->tv_usec += 1000000 * nsec;
y->tv_sec -= nsec;
}
/*
* Compute the time remaining to wait.
* tv_usec is certainly positive.
*/
result->tv_sec = x->tv_sec - y->tv_sec;
result->tv_usec = x->tv_usec - y->tv_usec;
/* Return 1 if result is negative. */
return x->tv_sec < y->tv_sec;
}
#endif
static int test_stress(void)
{
LHASH_OF(int) *h = lh_int_new(&stress_hash, &int_cmp);
const unsigned int n = 2500000;
unsigned int i;
int testresult = 0, *p;
#ifdef MEASURE_HASH_PERFORMANCE
struct timeval start, end, delta;
#endif
if (!TEST_ptr(h))
goto end;
#ifdef MEASURE_HASH_PERFORMANCE
gettimeofday(&start, NULL);
#endif
/* insert */
for (i = 0; i < n; i++) {
p = OPENSSL_malloc(sizeof(i));
if (!TEST_ptr(p)) {
TEST_info("lhash stress out of memory %d", i);
goto end;
}
*p = 3 * i + 1;
lh_int_insert(h, p);
}
/* num_items */
if (!TEST_int_eq(lh_int_num_items(h), n))
goto end;
/* delete in a different order */
for (i = 0; i < n; i++) {
const int j = (7 * i + 4) % n * 3 + 1;
if (!TEST_ptr(p = lh_int_delete(h, &j))) {
TEST_info("lhash stress delete %d\n", i);
goto end;
}
if (!TEST_int_eq(*p, j)) {
TEST_info("lhash stress bad value %d", i);
goto end;
}
OPENSSL_free(p);
}
testresult = 1;
end:
#ifdef MEASURE_HASH_PERFORMANCE
gettimeofday(&end, NULL);
timeval_subtract(&delta, &end, &start);
TEST_info("lhash stress runs in %ld.%ld seconds", delta.tv_sec, delta.tv_usec);
#endif
lh_int_free(h);
return testresult;
}
static void hashtable_intfree(HT_VALUE *v)
{
OPENSSL_free(v->value);
}
static int test_hashtable_stress(int idx)
{
const unsigned int n = 2500000;
unsigned int i;
int testresult = 0, *p;
HT_CONFIG hash_conf = {
.ht_free_fn = hashtable_intfree,
.ht_hash_fn = hashtable_hash,
.init_neighborhoods = 625000,
.collision_check = 1,
.lockless_reads = idx % 2,
.no_rcu = idx / 2,
};
HT *h;
INTKEY key;
HT_VALUE *v;
#ifdef MEASURE_HASH_PERFORMANCE
struct timeval start, end, delta;
#endif
h = ossl_ht_new(&hash_conf);
if (h == NULL
&& hash_conf.no_rcu
&& hash_conf.lockless_reads)
return 1;
if (!TEST_ptr(h))
goto end;
#ifdef MEASURE_HASH_PERFORMANCE
gettimeofday(&start, NULL);
#endif
HT_INIT_KEY(&key);
/* insert */
for (i = 0; i < n; i++) {
p = OPENSSL_malloc(sizeof(i));
if (!TEST_ptr(p)) {
TEST_info("hashtable stress out of memory %d", i);
goto end;
}
*p = 3 * i + 1;
HT_SET_KEY_FIELD(&key, mykey, *p);
if (!TEST_int_eq(ossl_ht_test_int_insert(h, TO_HT_KEY(&key),
p, NULL),
1)) {
TEST_info("hashtable unable to insert element %d\n", *p);
goto end;
}
}
/* make sure we stored everything */
if (!TEST_size_t_eq(ossl_ht_count(h), n))
goto end;
/* delete or get in a different order */
for (i = 0; i < n; i++) {
const int j = (7 * i + 4) % n * 3 + 1;
HT_SET_KEY_FIELD(&key, mykey, j);
switch (idx % 2) {
case 0:
if (!TEST_int_eq((ossl_ht_delete(h, TO_HT_KEY(&key))), 1)) {
TEST_info("hashtable didn't delete key %d\n", j);
goto end;
}
break;
case 1:
if (!TEST_ptr(p = ossl_ht_test_int_get(h, TO_HT_KEY(&key), &v))
|| !TEST_int_eq(*p, j)) {
TEST_info("hashtable didn't get key %d\n", j);
goto end;
}
break;
}
}
testresult = 1;
end:
#ifdef MEASURE_HASH_PERFORMANCE
gettimeofday(&end, NULL);
timeval_subtract(&delta, &end, &start);
TEST_info("hashtable stress runs in %ld.%ld seconds", delta.tv_sec, delta.tv_usec);
#endif
ossl_ht_free(h);
return testresult;
}
typedef struct test_mt_entry {
int in_table;
int pending_delete;
} TEST_MT_ENTRY;
static HT *m_ht = NULL;
#define TEST_MT_POOL_SZ 256
#define TEST_THREAD_ITERATIONS 1000000
#define NUM_WORKERS 16
static struct test_mt_entry test_mt_entries[TEST_MT_POOL_SZ];
static char **worker_exits;
static thread_t *workers;
static int num_workers = NUM_WORKERS;
static int setup_num_workers(void)
{
char *harness_jobs = getenv("HARNESS_JOBS");
char *lhash_workers = getenv("LHASH_WORKERS");
/* If we have HARNESS_JOBS set, don't eat more than a quarter */
if (harness_jobs != NULL) {
int jobs = atoi(harness_jobs);
if (jobs > 0)
num_workers = jobs / 4;
}
/* But if we have explicitly set LHASH_WORKERS use that */
if (lhash_workers != NULL) {
int jobs = atoi(lhash_workers);
if (jobs > 0)
num_workers = jobs;
}
TEST_info("using %d workers\n", num_workers);
free(worker_exits);
free(workers);
worker_exits = calloc(num_workers, sizeof(*worker_exits));
workers = calloc(num_workers, sizeof(*workers));
return worker_exits != NULL && workers != NULL;
}
HT_START_KEY_DEFN(mtkey)
HT_DEF_KEY_FIELD(index, uint32_t)
HT_END_KEY_DEFN(MTKEY)
IMPLEMENT_HT_VALUE_TYPE_FNS(TEST_MT_ENTRY, mt, static)
struct ht_internal_st {
HT_CONFIG config;
};
static int worker_num = 0;
static CRYPTO_RWLOCK *worker_lock;
static CRYPTO_RWLOCK *testrand_lock;
static CRYPTO_RWLOCK *no_rcu_lock;
static int free_failure = 0;
static int shutting_down = 0;
static int global_iteration = 0;
static void hashtable_mt_free(HT_VALUE *v)
{
TEST_MT_ENTRY *m = ossl_ht_mt_TEST_MT_ENTRY_from_value(v);
int pending_delete;
int ret;
CRYPTO_atomic_load_int(&m->pending_delete, &pending_delete, worker_lock);
if (shutting_down == 1)
return;
if (pending_delete == 0) {
TEST_info("Freeing element which was not scheduled for free");
free_failure = 1;
} else {
CRYPTO_atomic_add(&m->pending_delete, -1,
&ret, worker_lock);
}
}
#define DO_LOOKUP 0
#define DO_INSERT 1
#define DO_REPLACE 2
#define DO_DELETE 3
#define NUM_BEHAVIORS (DO_DELETE + 1)
static void do_mt_hash_work(void)
{
MTKEY key;
uint32_t index;
int num;
TEST_MT_ENTRY *m;
TEST_MT_ENTRY *expected_m = NULL;
HT_VALUE *v = NULL;
TEST_MT_ENTRY **r = NULL;
int expected_rc;
int ret;
char behavior;
size_t iter = 0;
int giter;
CRYPTO_atomic_add(&worker_num, 1, &num, worker_lock);
num--; /* atomic_add is an add/fetch operation */
HT_INIT_KEY(&key);
for (iter = 0; iter < TEST_THREAD_ITERATIONS; iter++) {
if (!TEST_true(CRYPTO_THREAD_write_lock(testrand_lock)))
return;
index = test_random() % TEST_MT_POOL_SZ;
behavior = (char)(test_random() % NUM_BEHAVIORS);
CRYPTO_THREAD_unlock(testrand_lock);
expected_m = &test_mt_entries[index];
HT_KEY_RESET(&key);
HT_SET_KEY_FIELD(&key, index, index);
if (!CRYPTO_atomic_add(&global_iteration, 1, &giter, worker_lock)) {
worker_exits[num] = "Unable to increment global iterator";
return;
}
switch (behavior) {
case DO_LOOKUP:
if (!m_ht->config.no_rcu) {
if (!ossl_ht_read_lock(m_ht))
break;
} else {
if (!TEST_true(CRYPTO_THREAD_read_lock(no_rcu_lock)))
break;
}
m = ossl_ht_mt_TEST_MT_ENTRY_get(m_ht, TO_HT_KEY(&key), &v);
if (m != NULL && m != expected_m) {
worker_exits[num] = "Read unexpected value from hashtable";
TEST_info("Iteration %d Read unexpected value %p when %p expected",
giter, (void *)m, (void *)expected_m);
}
if (!m_ht->config.no_rcu) {
ossl_ht_read_unlock(m_ht);
} else {
if (!TEST_true(CRYPTO_THREAD_unlock(no_rcu_lock)))
break;
}
if (worker_exits[num] != NULL)
return;
break;
case DO_INSERT:
case DO_REPLACE:
if (!m_ht->config.no_rcu) {
ossl_ht_write_lock(m_ht);
} else {
if (!TEST_true(CRYPTO_THREAD_write_lock(no_rcu_lock)))
break;
}
if (behavior == DO_REPLACE) {
expected_rc = 1;
r = &m;
} else {
expected_rc = !expected_m->in_table;
r = NULL;
}
if (expected_rc != ossl_ht_mt_TEST_MT_ENTRY_insert(m_ht, TO_HT_KEY(&key), expected_m, r)) {
TEST_info("Iteration %d Expected rc %d on %s of element %u which is %s\n",
giter, expected_rc, behavior == DO_REPLACE ? "replace" : "insert",
(unsigned int)index,
expected_m->in_table ? "in table" : "not in table");
worker_exits[num] = "Failure on insert";
}
if (expected_rc == 1)
expected_m->in_table = 1;
if (!m_ht->config.no_rcu) {
ossl_ht_write_unlock(m_ht);
} else {
if (!TEST_true(CRYPTO_THREAD_unlock(no_rcu_lock)))
break;
}
if (worker_exits[num] != NULL)
return;
break;
case DO_DELETE:
if (!m_ht->config.no_rcu) {
ossl_ht_write_lock(m_ht);
} else {
if (!TEST_true(CRYPTO_THREAD_write_lock(no_rcu_lock)))
break;
}
expected_rc = expected_m->in_table;
if (expected_rc == 1) {
/*
* We must set pending_delete before the actual deletion
* as another inserting or deleting thread can pick up
* the delete callback before the ossl_ht_write_unlock() call.
* This can happen only if no read locks are pending and
* only on Windows where we do not use the write mutex
* to get the callback list.
*/
expected_m->in_table = 0;
CRYPTO_atomic_add(&expected_m->pending_delete, 1, &ret, worker_lock);
}
if (expected_rc != ossl_ht_delete(m_ht, TO_HT_KEY(&key))) {
TEST_info("Iteration %d Expected rc %d on delete of element %u which is %s\n",
giter, expected_rc, (unsigned int)index,
expected_m->in_table ? "in table" : "not in table");
worker_exits[num] = "Failure on delete";
}
if (!m_ht->config.no_rcu) {
ossl_ht_write_unlock(m_ht);
} else {
if (!TEST_true(CRYPTO_THREAD_unlock(no_rcu_lock)))
break;
}
if (worker_exits[num] != NULL)
return;
break;
default:
worker_exits[num] = "Undefined behavior specified";
return;
}
}
}
static int test_hashtable_multithread(int idx)
{
HT_CONFIG hash_conf = {
.ht_free_fn = hashtable_mt_free,
.init_neighborhoods = 0,
.collision_check = 1,
.no_rcu = idx,
};
int ret = 0;
int i;
#ifdef MEASURE_HASH_PERFORMANCE
struct timeval start, end, delta;
#endif
if (!TEST_true(setup_num_workers()))
goto end;
memset(test_mt_entries, 0, sizeof(TEST_MT_ENTRY) * TEST_MT_POOL_SZ);
m_ht = ossl_ht_new(&hash_conf);
if (!TEST_ptr(m_ht))
goto end;
if (!TEST_ptr(worker_lock = CRYPTO_THREAD_lock_new()))
goto end_free;
if (!TEST_ptr(testrand_lock = CRYPTO_THREAD_lock_new()))
goto end_free;
if (!TEST_ptr(no_rcu_lock = CRYPTO_THREAD_lock_new()))
goto end_free;
#ifdef MEASURE_HASH_PERFORMANCE
gettimeofday(&start, NULL);
#endif
for (i = 0; i < num_workers; i++) {
if (!run_thread(&workers[i], do_mt_hash_work))
goto shutdown;
}
shutdown:
for (i = 0; i < num_workers; i++) {
wait_for_thread(workers[i]);
}
/*
* Now that the workers are done, check for any error
* conditions
*/
ret = 1;
for (i = 0; i < num_workers; i++) {
if (worker_exits[i] != NULL) {
TEST_info("Worker %d failed: %s\n", i, worker_exits[i]);
ret = 0;
}
}
if (free_failure == 1) {
TEST_info("Encountered a free failure");
ret = 0;
}
#ifdef MEASURE_HASH_PERFORMANCE
gettimeofday(&end, NULL);
timeval_subtract(&delta, &end, &start);
TEST_info("multithread stress runs 40000 ops in %ld.%ld seconds", delta.tv_sec, delta.tv_usec);
#endif
worker_num = 0;
free_failure = 0;
global_iteration = 0;
end_free:
shutting_down = 1;
ossl_ht_free(m_ht);
CRYPTO_THREAD_lock_free(worker_lock);
CRYPTO_THREAD_lock_free(testrand_lock);
CRYPTO_THREAD_lock_free(no_rcu_lock);
free(workers);
workers = NULL;
free(worker_exits);
worker_exits = NULL;
end:
return ret;
}
int setup_tests(void)
{
ADD_TEST(test_int_lhash);
ADD_TEST(test_stress);
ADD_ALL_TESTS(test_int_hashtable, 2);
ADD_ALL_TESTS(test_hashtable_stress, 4);
ADD_ALL_TESTS(test_hashtable_multithread, 2);
return 1;
}