From 24caee20c4827615681f2e7953925e193d8b599b Mon Sep 17 00:00:00 2001 From: Spencer Wilson Date: Thu, 21 Nov 2024 17:16:47 -0500 Subject: [PATCH] Run test_speed.py for stateful signatures on a weekly basis only [extended tests] Signed-off-by: Spencer Wilson --- .github/workflows/extended.yml | 23 +++++++++++++++++++++++ .github/workflows/linux.yml | 12 ++++++------ .github/workflows/macos.yml | 2 +- .github/workflows/windows.yml | 2 +- 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/.github/workflows/extended.yml b/.github/workflows/extended.yml index 73bad5ba0..f2b424874 100644 --- a/.github/workflows/extended.yml +++ b/.github/workflows/extended.yml @@ -72,3 +72,26 @@ jobs: - name: Run tests timeout-minutes: 360 run: mkdir -p tmp && python3 -m pytest --verbose ${{ matrix.PYTEST_ARGS }} + + stfl-speed: + runs-on: [ubuntu-latest, oqs-arm64] + strategy: + fail-fast: false + matrix: + include: + - container: openquantumsafe/ci-ubuntu-latest:latest + CMAKE_ARGS: -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON + PYTEST_ARGS: --numprocesses=auto -k 'LMS or XMSS' test_speed.py + 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 }} diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index f41d1b718..d5a56c2c4 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -15,13 +15,13 @@ jobs: - name: arm64 runner: oqs-arm64 container: openquantumsafe/ci-ubuntu-latest:latest - PYTEST_ARGS: --maxprocesses=10 --ignore=tests/test_kat_all.py + PYTEST_ARGS: --maxprocesses=10 --ignore=tests/test_kat_all.py -k 'not (speed and (LMS or XMSS))' CMAKE_ARGS: -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON - name: alpine runner: ubuntu-latest container: openquantumsafe/ci-alpine-amd64:latest CMAKE_ARGS: -DOQS_STRICT_WARNINGS=ON -DOQS_USE_OPENSSL=ON -DBUILD_SHARED_LIBS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_ENABLE_SIG_STFL_LMS=ON - PYTEST_ARGS: --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py + PYTEST_ARGS: --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py -k 'not (speed and (LMS or XMSS))' - name: alpine-libjade runner: ubuntu-latest container: openquantumsafe/ci-alpine-amd64:latest @@ -36,12 +36,12 @@ jobs: runner: ubuntu-latest container: openquantumsafe/ci-alpine-amd64:latest CMAKE_ARGS: -DOQS_STRICT_WARNINGS=ON -DOQS_USE_OPENSSL=ON -DBUILD_SHARED_LIBS=ON -DOQS_USE_AES_OPENSSL=ON -DOQS_USE_SHA2_OPENSSL=ON -DOQS_USE_SHA3_OPENSSL=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_ENABLE_SIG_STFL_LMS=ON - PYTEST_ARGS: --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py + PYTEST_ARGS: --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py -k 'not (speed and (LMS or XMSS))' - name: alpine-noopenssl runner: ubuntu-latest container: openquantumsafe/ci-alpine-amd64:latest CMAKE_ARGS: -DOQS_STRICT_WARNINGS=ON -DOQS_USE_OPENSSL=OFF -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_ENABLE_SIG_STFL_LMS=ON - PYTEST_ARGS: --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py + PYTEST_ARGS: --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py -k 'not (speed and (LMS or XMSS))' - name: noble-nistr4-openssl runner: ubuntu-latest container: openquantumsafe/ci-ubuntu-latest:latest @@ -101,7 +101,7 @@ jobs: runner: ubuntu-latest container: openquantumsafe/ci-ubuntu-latest:latest CMAKE_ARGS: -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=Debug -DUSE_SANITIZER=Address -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_ENABLE_SIG_STFL_LMS=ON - PYTEST_ARGS: --ignore=tests/test_distbuild.py --ignore=tests/test_leaks.py --ignore=tests/test_kat_all.py --maxprocesses=10 + PYTEST_ARGS: --ignore=tests/test_distbuild.py --ignore=tests/test_leaks.py --ignore=tests/test_kat_all.py --maxprocesses=10 -k 'not (speed and (LMS or XMSS))' - name: address-sanitizer-no-stfl-key-sig-gen runner: ubuntu-latest container: openquantumsafe/ci-ubuntu-latest:latest @@ -150,7 +150,7 @@ jobs: - 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: --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py + PYTEST_ARGS: --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py -k 'not (speed and (LMS or XMSS))' - 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 diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 2ca2aa713..4d91864d2 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -53,5 +53,5 @@ jobs: run: ninja working-directory: build - name: Run tests - run: mkdir -p tmp && python3 -m pytest --verbose --ignore=tests/test_code_conventions.py --ignore=tests/test_kat_all.py + run: mkdir -p tmp && python3 -m pytest --verbose --ignore=tests/test_code_conventions.py --ignore=tests/test_kat_all.py -k 'not (speed and (LMS or XMSS))' timeout-minutes: 60 diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index e7dee4166..312ec5359 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -40,4 +40,4 @@ jobs: run: pip.exe install --require-hashes -r .github\workflows\requirements.txt - name: Run tests run: | - python -m pytest --numprocesses=auto -vv --maxfail=10 --ignore=tests/test_code_conventions.py --ignore=tests/test_kat_all.py --junitxml=build\test-results\pytest\test-results.xml + python -m pytest --numprocesses=auto -vv --maxfail=10 --ignore=tests/test_code_conventions.py --ignore=tests/test_kat_all.py --junitxml=build\test-results\pytest\test-results.xml -k 'not (speed and (LMS or XMSS))'