name: Extended tests permissions: contents: read on: [workflow_call, workflow_dispatch] jobs: constant-time-x64: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - name: generic container: openquantumsafe/ci-ubuntu-latest:latest CMAKE_ARGS: -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=generic -DCMAKE_BUILD_TYPE=Debug -DOQS_ENABLE_TEST_CONSTANT_TIME=ON PYTEST_ARGS: --numprocesses=auto -k 'test_constant_time' SKIP_ALGS: 'SPHINCS\+-SHA(.)*s-simple,SPHINCS\+-SHAKE-(.)*,SLH_DSA_(SHA2|SHA3|SHAKE_128)(.)*' - name: extensions container: openquantumsafe/ci-ubuntu-latest:latest CMAKE_ARGS: -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=haswell -DCMAKE_BUILD_TYPE=Debug -DOQS_ENABLE_TEST_CONSTANT_TIME=ON PYTEST_ARGS: --numprocesses=auto -k 'test_constant_time' SKIP_ALGS: 'SPHINCS\+-SHA(.)*s-simple,SPHINCS\+-SHAKE-(.)*,SLH_DSA_(SHA2|SHA3|SHAKE_128)(.)*' container: image: ${{ matrix.container }} steps: - name: Checkout code uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # pin@v2 - name: Configure run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA -N .. - name: Build run: ninja working-directory: build - name: Run tests timeout-minutes: 360 run: mkdir -p tmp && SKIP_ALGS='${{ matrix.SKIP_ALGS }}' python3 -m pytest --verbose ${{ matrix.PYTEST_ARGS }} nistkat-x64: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - name: generic container: openquantumsafe/ci-ubuntu-latest:latest CMAKE_ARGS: -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=generic PYTEST_ARGS: --numprocesses=auto -k 'test_kat_all' - name: generic-libjade container: openquantumsafe/ci-ubuntu-latest:latest CMAKE_ARGS: -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=generic -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD="${{ vars.LIBJADE_ALG_LIST }}" PYTEST_ARGS: --numprocesses=auto -k 'test_kat_all' - name: extensions container: openquantumsafe/ci-ubuntu-latest:latest CMAKE_ARGS: -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=auto PYTEST_ARGS: --numprocesses=auto -k 'test_kat_all' - name: extensions-libjade container: openquantumsafe/ci-ubuntu-latest:latest CMAKE_ARGS: -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=auto -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD="${{ vars.LIBJADE_ALG_LIST}}" PYTEST_ARGS: --numprocesses=auto -k 'test_kat_all' container: image: ${{ matrix.container }} steps: - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 - name: Configure run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA -N .. - name: Build run: ninja working-directory: build - name: Run tests timeout-minutes: 360 run: mkdir -p tmp && python3 -m pytest --verbose ${{ matrix.PYTEST_ARGS }} regression: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - name: GHSA-qq3m-rq9v-jfgm container: openquantumsafe/ci-ubuntu-latest:latest CMAKE_ARGS: -DCMAKE_BUILD_TYPE=Debug -DOQS_ENABLE_TEST_CONSTANT_TIME=ON -DOQS_ENABLE_TEST_CONSTANT_TIME_OPTIMIZED=ON -DOQS_ENABLE_KEM_HQC=ON -DCMAKE_C_COMPILER=clang-18 PYTEST_ARGS: --numprocesses=auto -k 'hqc and constant_time' container: image: ${{ matrix.container }} steps: - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 - name: Configure run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA -N .. - name: Build run: ninja working-directory: build - name: Run tests timeout-minutes: 360 run: mkdir -p tmp && python3 -m pytest --verbose ${{ matrix.PYTEST_ARGS }} linux_arm_emulated: runs-on: ubuntu-latest timeout-minutes: 120 # max + 3*std over the last thousands of successful runs strategy: fail-fast: false matrix: include: - name: armhf ARCH: armhf CMAKE_ARGS: -DOQS_ENABLE_SIG_SPHINCS=OFF -DOQS_USE_OPENSSL=OFF -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=generic -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_ENABLE_SIG_STFL_LMS=ON PYTEST_ARGS: --numprocesses=auto --maxprocesses=10 --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py SKIP_ALGS: 'SLH_DSA_(SHA2|SHA3|SHAKE)(.)*' - name: armhf-no-stfl-key-sig-gen ARCH: armhf CMAKE_ARGS: -DOQS_ENABLE_SIG_SPHINCS=OFF -DOQS_USE_OPENSSL=OFF -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=generic -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=OFF -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_ENABLE_SIG_STFL_LMS=ON PYTEST_ARGS: --numprocesses=auto --maxprocesses=10 --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py SKIP_ALGS: 'SLH_DSA_(SHA2|SHA3|SHAKE)(.)*' steps: - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 - name: Install the emulation handlers run: docker run --rm --privileged multiarch/qemu-user-static:register --reset - name: Build in an x86_64 container run: | docker run --rm \ -v `pwd`:`pwd` \ -w `pwd` \ openquantumsafe/ci-debian-buster-amd64:latest /bin/bash \ -c "mkdir build && \ (cd build && \ cmake .. -GNinja ${{ matrix.CMAKE_ARGS }} \ -DCMAKE_TOOLCHAIN_FILE=../.CMake/toolchain_${{ matrix.ARCH }}.cmake && \ cmake -LA -N .. && \ ninja)" - name: Run the tests in an ${{ matrix.ARCH }} container run: | docker run --rm -e SKIP_TESTS=style,mem_kem,mem_sig \ -v `pwd`:`pwd` \ -w `pwd` \ openquantumsafe/ci-debian-buster-${{ matrix.ARCH }}:latest /bin/bash \ -c "mkdir -p tmp && \ SKIP_ALGS='${{ matrix.SKIP_ALGS }}' \ python3 -m pytest --verbose \ --numprocesses=auto \ --ignore=tests/test_code_conventions.py ${{ matrix.PYTEST_ARGS }}" slhdsa-leak-tests: strategy: fail-fast: false matrix: include: - name: arm64-slhdsa runner: ubuntu-24.04-arm container: openquantumsafe/ci-ubuntu-latest:latest PYTEST_ARGS: --maxprocesses=10 --ignore=tests/test_kat_all.py CMAKE_ARGS: -DOQS_MINIMAL_BUILD=SIG_slh_dsa - name: alpine-slhdsa runner: ubuntu-latest container: openquantumsafe/ci-alpine-amd64:latest CMAKE_ARGS: -DOQS_STRICT_WARNINGS=ON -DOQS_USE_OPENSSL=ON -DBUILD_SHARED_LIBS=ON -DOQS_MINIMAL_BUILD=SIG_slh_dsa PYTEST_ARGS: --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py runs-on: ${{ matrix.runner }} container: image: ${{ matrix.container }} steps: - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 - name: Configure run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA -N .. - name: Build run: ninja working-directory: build - name: Run tests timeout-minutes: 90 run: mkdir -p tmp && SLH_DSA_LEAK_TEST=1 python3 -m pytest --verbose --numprocesses=auto tests/test_leaks.py::test_slhdsa_leak ${{ matrix.PYTEST_ARGS }} address-sanitizer-slhdsa: strategy: fail-fast: false runs-on: ubuntu-latest container: image: openquantumsafe/ci-ubuntu-latest:latest steps: - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 - name: Configure run: mkdir build && cd build && cmake -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=Debug -DUSE_SANITIZER=Address -DOQS_MINIMAL_BUILD=SIG_slh_dsa .. && cmake -LA -N .. - name: Build run: ninja working-directory: build - name: Run tests timeout-minutes: 90 run: mkdir -p tmp && python3 -m pytest --verbose --ignore=tests/test_code_conventions.py --numprocesses=auto --ignore=tests/test_distbuild.py --ignore=tests/test_leaks.py --ignore=tests/test_kat_all.py --maxprocesses=10