mirror of
https://github.com/open-quantum-safe/liboqs.git
synced 2025-10-03 00:02:36 -04:00
193 lines
8.8 KiB
YAML
193 lines
8.8 KiB
YAML
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
|