From 23f761efb5a49ba3b5b6bc556a71a204093d1524 Mon Sep 17 00:00:00 2001 From: Thom Wiggers Date: Thu, 17 Oct 2019 12:14:23 +0200 Subject: [PATCH] Run ARM64 tests on REAL HARDWARE :tada: --- .circleci/config.yml | 79 ++----------------------------------- .travis.yml | 93 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+), 75 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a5108ea1..a248d631 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -52,18 +52,6 @@ version: 2.1 jobs: # First the KEM jobs - arm64-gcc-kem: - <<: *defaultjob - environment: - CC: gcc - ARCH: arm64 - PQCLEAN_ONLY_TYPES: kem - arm64-clang-kem: - <<: *defaultjob - environment: - CC: clang - ARCH: arm64 - PQCLEAN_ONLY_TYPES: kem arm32-gcc-kem: <<: *defaultjob environment: @@ -113,20 +101,6 @@ jobs: ARCH: i386 PQCLEAN_ONLY_TYPES: kem # These are for the scheduled builds - arm64-gcc-slow-kem: - <<: *defaultjob - environment: - CC: gcc - ARCH: arm64 - PQCLEAN_ONLY_TYPES: kem - RUN_SLOW: 1 - arm64-clang-slow-kem: - <<: *defaultjob - environment: - CC: clang - ARCH: arm64 - PQCLEAN_ONLY_TYPES: kem - RUN_SLOW: 1 arm32-gcc-slow-kem: <<: *defaultjob environment: @@ -184,18 +158,6 @@ jobs: RUN_SLOW: 1 PQCLEAN_ONLY_TYPES: kem # the Sign jobs - arm64-gcc-sign: - <<: *defaultjob - environment: - CC: gcc - ARCH: arm64 - PQCLEAN_ONLY_TYPES: sign - arm64-clang-sign: - <<: *defaultjob - environment: - CC: clang - ARCH: arm64 - PQCLEAN_ONLY_TYPES: sign arm32-gcc-sign: <<: *defaultjob environment: @@ -245,20 +207,6 @@ jobs: ARCH: i386 PQCLEAN_ONLY_TYPES: sign # These are for the scheduled builds - arm64-gcc-slow-sign: - <<: *defaultjob - environment: - CC: gcc - ARCH: arm64 - PQCLEAN_ONLY_TYPES: sign - RUN_SLOW: 1 - arm64-clang-slow-sign: - <<: *defaultjob - environment: - CC: clang - ARCH: arm64 - PQCLEAN_ONLY_TYPES: sign - RUN_SLOW: 1 arm32-gcc-slow-sign: <<: *defaultjob environment: @@ -338,26 +286,13 @@ workflows: <<: *i386 - i386-clang-sign: <<: *i386 - # ARMv8 - - arm64-gcc-kem: &arm64 - requires: - - i386-gcc-kem - - i386-gcc-sign - - i386-clang-sign - - i386-clang-kem - - arm64-gcc-sign: - <<: *arm64 - - arm64-clang-kem: - <<: *arm64 - - arm64-clang-sign: - <<: *arm64 # ARM 32 bit - arm32-gcc-kem: &arm32 requires: - - arm64-gcc-kem - - arm64-gcc-sign - - arm64-clang-kem - - arm64-clang-sign + - i386-gcc-kem + - i386-gcc-sign + - i386-clang-kem + - i386-clang-sign - arm32-clang-kem: <<: *arm32 - arm32-gcc-sign: @@ -393,12 +328,6 @@ workflows: - arm32-clang-slow-sign - arm32-gcc-slow-kem - arm32-gcc-slow-sign - - arm64-clang-slow-kem - - arm64-clang-slow-sign - - arm64-gcc-slow-kem - - arm64-gcc-slow-kem - - arm64-gcc-slow-sign - - arm64-gcc-slow-sign - i386-clang-slow-kem - i386-clang-slow-sign - i386-gcc-slow-kem diff --git a/.travis.yml b/.travis.yml index 1715d6e4..e061e843 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,99 @@ language: c matrix: include: + # Arm64 builds + - name: "KEMs: ARM64 + GCC" + os: linux + arch: arm64 + compiler: gcc + before_script: + - export COMMIT=$(git rev-parse HEAD) + - git config --replace-all remote.origin.fetch +refs/heads/*:refs/remotes/origin/* + - git fetch --unshallow + - git checkout $TRAVIS_BRANCH + - git reset --hard $COMMIT + script: + - travis_wait 60 docker run -e CI=true -e PQCLEAN_ONLY_TYPES -e PQCLEAN_ONLY_DIFF --rm -v `pwd`:`pwd` -w `pwd` "pqclean/ci-container:arm64" /bin/bash -c " + uname -a && + export CC=${CC} && + pip3 install -r requirements.txt && + mkdir test-results && + cd test && python3 -m pytest --verbose --junitxml=test-results/pytest/results.xml --numprocesses=auto" + env: + PQCLEAN_ONLY_TYPES: kem + PQCLEAN_ONLY_DIFF: 1 + services: + - docker + - name: "KEMs: ARM64 + Clang" + os: linux + arch: arm64 + compiler: clang + before_script: + - export COMMIT=$(git rev-parse HEAD) + - git config --replace-all remote.origin.fetch +refs/heads/*:refs/remotes/origin/* + - git fetch --unshallow + - git checkout $TRAVIS_BRANCH + - git reset --hard $COMMIT + script: + - travis_wait 60 docker run -e CI=true -e PQCLEAN_ONLY_TYPES -e PQCLEAN_ONLY_DIFF --rm -v `pwd`:`pwd` -w `pwd` "pqclean/ci-container:arm64" /bin/bash -c " + uname -a && + export CC=${CC} && + pip3 install -r requirements.txt && + mkdir test-results && + cd test && python3 -m pytest --verbose --junitxml=test-results/pytest/results.xml --numprocesses=auto" + env: + PQCLEAN_ONLY_TYPES: kem + PQCLEAN_ONLY_DIFF: 1 + services: + - docker + - name: "Signs: ARM64 + GCC" + os: linux + arch: arm64 + compiler: gcc + before_script: + - export COMMIT=$(git rev-parse HEAD) + - git config --replace-all remote.origin.fetch +refs/heads/*:refs/remotes/origin/* + - git fetch --unshallow + - git checkout $TRAVIS_BRANCH + - git reset --hard $COMMIT + script: + - travis_wait 60 docker run -e CI=true -e PQCLEAN_ONLY_TYPES -e PQCLEAN_ONLY_DIFF -e PQCLEAN_SKIP_SCHEMES --rm -v `pwd`:`pwd` -w `pwd` "pqclean/ci-container:arm64" /bin/bash -c " + uname -a && + export CC=${CC} && + pip3 install -r requirements.txt && + mkdir test-results && + cd test && python3 -m pytest --verbose --junitxml=test-results/pytest/results.xml --numprocesses=auto" + env: + PQCLEAN_ONLY_TYPES: sign + PQCLEAN_ONLY_DIFF: 1 + PQCLEAN_SKIP_SCHEMES: sphincs-haraka-128f-robust,sphincs-haraka-192s-robust,sphincs-sha256-128f-robust,sphincs-sha256-192s-robust,sphincs-shake256-128f-robust,sphincs-shake256-192s-robust,sphincs-haraka-128f-simple,sphincs-haraka-192s-simple,sphincs-sha256-128f-simple,sphincs-sha256-192s-simple,sphincs-shake256-128f-simple,sphincs-shake256-192s-simple,sphincs-haraka-128s-robust,sphincs-haraka-256f-robust,sphincs-sha256-128s-robust,sphincs-sha256-256f-robust,sphincs-shake256-128s-robust,sphincs-shake256-256f-robust,sphincs-haraka-128s-simple,sphincs-haraka-256f-simple,sphincs-sha256-128s-simple,sphincs-sha256-256f-simple,sphincs-shake256-128s-simple,sphincs-shake256-256f-simple,sphincs-haraka-192f-robust,sphincs-haraka-256s-robust,sphincs-sha256-192f-robust,sphincs-sha256-256s-robust,sphincs-shake256-192f-robust,sphincs-shake256-256s-robust,sphincs-haraka-192f-simple,sphincs-haraka-256s-simple,sphincs-sha256-192f-simple,sphincs-sha256-256s-simple,sphincs-shake256-192f-simple,sphincs-shake256-256s-simple + services: + - docker + - name: "signs: ARM64 + Clang" + os: linux + arch: arm64 + compiler: clang + before_script: + - export COMMIT=$(git rev-parse HEAD) + - git config --replace-all remote.origin.fetch +refs/heads/*:refs/remotes/origin/* + - git fetch --unshallow + - git checkout $TRAVIS_BRANCH + - git reset --hard $COMMIT + script: + - travis_wait 60 docker run -e CI=true -e PQCLEAN_ONLY_TYPES -e PQCLEAN_ONLY_DIFF=1 -e PQCLEAN_SKIP_SCHEMES --rm -v `pwd`:`pwd` -w `pwd` "pqclean/ci-container:arm64" /bin/bash -c " + uname -a && + export CC=${CC} && + pip3 install -r requirements.txt && + mkdir test-results && + cd test && python3 -m pytest --verbose --junitxml=test-results/pytest/results.xml --numprocesses=auto" + env: + PQCLEAN_ONLY_TYPES: sign + PQCLEAN_ONLY_DIFF: 1 + PQCLEAN_SKIP_SCHEMES: sphincs-haraka-128f-robust,sphincs-haraka-192s-robust,sphincs-sha256-128f-robust,sphincs-sha256-192s-robust,sphincs-shake256-128f-robust,sphincs-shake256-192s-robust,sphincs-haraka-128f-simple,sphincs-haraka-192s-simple,sphincs-sha256-128f-simple,sphincs-sha256-192s-simple,sphincs-shake256-128f-simple,sphincs-shake256-192s-simple,sphincs-haraka-128s-robust,sphincs-haraka-256f-robust,sphincs-sha256-128s-robust,sphincs-sha256-256f-robust,sphincs-shake256-128s-robust,sphincs-shake256-256f-robust,sphincs-haraka-128s-simple,sphincs-haraka-256f-simple,sphincs-sha256-128s-simple,sphincs-sha256-256f-simple,sphincs-shake256-128s-simple,sphincs-shake256-256f-simple,sphincs-haraka-192f-robust,sphincs-haraka-256s-robust,sphincs-sha256-192f-robust,sphincs-sha256-256s-robust,sphincs-shake256-192f-robust,sphincs-shake256-256s-robust,sphincs-haraka-192f-simple,sphincs-haraka-256s-simple,sphincs-sha256-192f-simple,sphincs-sha256-256s-simple,sphincs-shake256-192f-simple,sphincs-shake256-256s-simple + services: + - docker + + # MacOS builds - name: "KEMs: MacOS + Clang" os: osx osx_image: xcode11.2