Merge pull request #258 from danielinux/docker-test-2022.12

Github workflows: new test scripts
pull/260/head
David Garske 2022-12-13 11:10:31 -08:00 committed by GitHub
commit 95d5ed6c01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 134 additions and 1012 deletions

View File

@ -7,7 +7,7 @@ on:
branches: [master]
jobs:
build_and_test:
footprint_test:
runs-on: ubuntu-latest
steps:

View File

@ -7,7 +7,7 @@ on:
branches: [master]
jobs:
build_and_test:
renode_automated_multi_memory:
runs-on: ubuntu-20.04
steps:
@ -15,195 +15,51 @@ jobs:
with:
submodules: true
# Get the arm-non-eabi-gcc toolchain
- name: Install arm-none-eabi-gcc
uses: fiam/arm-none-eabi-gcc@v1
with:
# The arm-none-eabi-gcc release to use.
release: "9-2019-q4"
- name: Install wolfSSL
run: |
sudo apt-get install --no-install-recommends -y -q make libwolfssl-dev
- name: Build test-expect-version
run: |
make -C tools/test-expect-version
- name: make clean
run: |
make keysclean && make -C tools/keytools clean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h
- name: Build key tools
run: |
make -C tools/keytools
##### SMALL STACK tests
# SIGN=NONE TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=NONE WOLFBOOT_SMALL_STACK=1
- name: Build wolfboot and test app image v1, SIGN=NONE WOLFBOOT_SMALL_STACK=1
run: |
make SIGN=NONE WOLFBOOT_SMALL_STACK=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=NONE WOLFBOOT_SMALL_STACK=1 && cp /tmp/renode-test-update.bin test-app/
##### SMALL STACK tests
# SIGN=NONE TEST
- name: Renode Tests SIGN=NONE WOLFBOOT_SMALL_STACK=1
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=NONE WOLFBOOT_SMALL_STACK=1"
# ECC256 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC256
- name: Build wolfboot and test app image v1, SIGN=ECC256
run: |
make SIGN=ECC256 WOLFBOOT_SMALL_STACK=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC256 WOLFBOOT_SMALL_STACK=1 && cp /tmp/renode-test-update.bin test-app/
# ECC256 TEST
- name: Renode Tests ECC256
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC256 WOLFBOOT_SMALL_STACK=1"
# ECC384 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC384
- name: Build wolfboot and test app image v1, SIGN=ECC384
run: |
make SIGN=ECC384 WOLFBOOT_SMALL_STACK=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC384 WOLFBOOT_SMALL_STACK=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ECC384
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC384 WOLFBOOT_SMALL_STACK=1"
# ED25519 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ED25519
- name: Build wolfboot and test app image v1, SIGN=ED25519
run: |
make SIGN=ED25519 WOLFBOOT_SMALL_STACK=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ED25519 WOLFBOOT_SMALL_STACK=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ED25519
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ED25519 WOLFBOOT_SMALL_STACK=1"
# ED448 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ED448
- name: Build wolfboot and test app image v1, SIGN=ED448
run: |
make SIGN=ED448 WOLFBOOT_SMALL_STACK=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ED448 WOLFBOOT_SMALL_STACK=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ED448
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ED448 WOLFBOOT_SMALL_STACK=1"
# RSA2048 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA2048
- name: Build wolfboot and test app image v1, SIGN=RSA2048
run: |
make SIGN=RSA2048 WOLFBOOT_SMALL_STACK=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA2048 WOLFBOOT_SMALL_STACK=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA2048
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA2048 WOLFBOOT_SMALL_STACK=1"
# RSA3072 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA3072
- name: Build wolfboot and test app image v1, SIGN=RSA3072
run: |
make SIGN=RSA3072 WOLFBOOT_SMALL_STACK=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA3072 WOLFBOOT_SMALL_STACK=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA3072
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA3072 WOLFBOOT_SMALL_STACK=1"
# RSA4096 TEST
- name: make clean
run: |
make keysclean && make clean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA4096
- name: Build wolfboot and test app image v1, SIGN=RSA4096
run: |
make SIGN=RSA4096 WOLFBOOT_SMALL_STACK=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA4096 WOLFBOOT_SMALL_STACK=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA4096
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA4096 WOLFBOOT_SMALL_STACK=1"
- name: Upload Output Dir
uses: actions/upload-artifact@v2
@ -211,147 +67,42 @@ jobs:
name: Renode Test Results
path: test_results/
##### NO_ASM tests
# ECC256 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC256
- name: Build wolfboot and test app image v1, SIGN=ECC256
run: |
make SIGN=ECC256 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC256 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
##### NO_ASM tests
# ECC256 TEST
- name: Renode Tests ECC256
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC256 NO_ASM=1"
# ECC384 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC384
- name: Build wolfboot and test app image v1, SIGN=ECC384
run: |
make SIGN=ECC384 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC384 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ECC384
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC384 NO_ASM=1"
# ED25519 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ED25519
- name: Build wolfboot and test app image v1, SIGN=ED25519
run: |
make SIGN=ED25519 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ED25519 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ED25519
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ED25519 NO_ASM=1"
# ED448 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ED448
- name: Build wolfboot and test app image v1, SIGN=ED448
run: |
make SIGN=ED448 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ED448 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ED448
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ED448 NO_ASM=1"
# RSA2048 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA2048
- name: Build wolfboot and test app image v1, SIGN=RSA2048
run: |
make SIGN=RSA2048 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA2048 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA2048
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA2048 NO_ASM=1"
# RSA3072 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA3072
- name: Build wolfboot and test app image v1, SIGN=RSA3072
run: |
make SIGN=RSA3072 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA3072 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA3072
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA3072 NO_ASM=1"
# RSA4096 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA4096
- name: Build wolfboot and test app image v1, SIGN=RSA4096
run: |
make SIGN=RSA4096 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA4096 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA4096
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA4096 NO_ASM=1"
- name: Upload Output Dir
uses: actions/upload-artifact@v2
@ -361,105 +112,30 @@ jobs:
##### SMALL STACK + NO_ASM tests
# ECC256 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC256
- name: Build wolfboot and test app image v1, SIGN=ECC256
run: |
make SIGN=ECC256 WOLFBOOT_SMALL_STACK=1 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC256 WOLFBOOT_SMALL_STACK=1 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
# ECC256 TEST
- name: Renode Tests ECC256
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC256 WOLFBOOT_SMALL_STACK=1 NO_ASM=1"
# ECC384 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC384
- name: Build wolfboot and test app image v1, SIGN=ECC384
run: |
make SIGN=ECC384 WOLFBOOT_SMALL_STACK=1 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC384 WOLFBOOT_SMALL_STACK=1 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ECC384
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC384 WOLFBOOT_SMALL_STACK=1 NO_ASM=1"
# RSA2048 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA2048
- name: Build wolfboot and test app image v1, SIGN=RSA2048
run: |
make SIGN=RSA2048 WOLFBOOT_SMALL_STACK=1 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA2048 WOLFBOOT_SMALL_STACK=1 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA2048
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA2048 WOLFBOOT_SMALL_STACK=1 NO_ASM=1"
# RSA3072 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA3072
- name: Build wolfboot and test app image v1, SIGN=RSA3072
run: |
make SIGN=RSA3072 WOLFBOOT_SMALL_STACK=1 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA3072 WOLFBOOT_SMALL_STACK=1 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA3072
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA3072 WOLFBOOT_SMALL_STACK=1 NO_ASM=1"
# RSA4096 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA4096
- name: Build wolfboot and test app image v1, SIGN=RSA4096
run: |
make SIGN=RSA4096 WOLFBOOT_SMALL_STACK=1 NO_ASM=1
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA4096 WOLFBOOT_SMALL_STACK=1 NO_ASM=1 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA4096
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA4096 WOLFBOOT_SMALL_STACK=1 NO_ASM=1"
- name: Upload Output Dir
uses: actions/upload-artifact@v2
@ -467,107 +143,32 @@ jobs:
name: Renode Test Results
path: test_results/
##### FAST MATH tests
# ECC256 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC256
- name: Build wolfboot and test app image v1, SIGN=ECC256
run: |
make SIGN=ECC256 SPMATH=0
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC256 SPMATH=0 && cp /tmp/renode-test-update.bin test-app/
##### FAST MATH tests
# ECC256 TEST
- name: Renode Tests ECC256
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC256 SPMATH=0"
# ECC384 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC384
- name: Build wolfboot and test app image v1, SIGN=ECC384
run: |
make SIGN=ECC384 SPMATH=0
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC384 SPMATH=0 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ECC384
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC384 SPMATH=0"
# RSA2048 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA2048
- name: Build wolfboot and test app image v1, SIGN=RSA2048
run: |
make SIGN=RSA2048 SPMATH=0
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA2048 SPMATH=0 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA2048
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA2048 SPMATH=0"
# RSA3072 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA3072
- name: Build wolfboot and test app image v1, SIGN=RSA3072
run: |
make SIGN=RSA3072 SPMATH=0
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA3072 SPMATH=0 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA3072
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA3072 SPMATH=0"
# RSA4096 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA4096
- name: Build wolfboot and test app image v1, SIGN=RSA4096
run: |
make SIGN=RSA4096 SPMATH=0
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA4096 SPMATH=0 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA4096
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA4096 SPMATH=0"
- name: Upload Output Dir
uses: actions/upload-artifact@v2
@ -577,105 +178,30 @@ jobs:
##### SMALL STACK + FAST MATH tests
# ECC256 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC256
- name: Build wolfboot and test app image v1, SIGN=ECC256
run: |
make SIGN=ECC256 WOLFBOOT_SMALL_STACK=1 SPMATH=0
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC256 WOLFBOOT_SMALL_STACK=1 SPMATH=0 && cp /tmp/renode-test-update.bin test-app/
# ECC256 TEST
- name: Renode Tests ECC256
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC256 WOLFBOOT_SMALL_STACK=1 SPMATH=0"
# ECC384 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC384
- name: Build wolfboot and test app image v1, SIGN=ECC384
run: |
make SIGN=ECC384 WOLFBOOT_SMALL_STACK=1 SPMATH=0
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC384 WOLFBOOT_SMALL_STACK=1 SPMATH=0 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ECC384
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC384 WOLFBOOT_SMALL_STACK=1 SPMATH=0"
# RSA2048 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA2048
- name: Build wolfboot and test app image v1, SIGN=RSA2048
run: |
make SIGN=RSA2048 WOLFBOOT_SMALL_STACK=1 SPMATH=0
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA2048 WOLFBOOT_SMALL_STACK=1 SPMATH=0 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA2048
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA2048 WOLFBOOT_SMALL_STACK=1 SPMATH=0"
# RSA3072 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA3072
- name: Build wolfboot and test app image v1, SIGN=RSA3072
run: |
make SIGN=RSA3072 WOLFBOOT_SMALL_STACK=1 SPMATH=0
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA3072 WOLFBOOT_SMALL_STACK=1 SPMATH=0 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA3072
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA3072 WOLFBOOT_SMALL_STACK=1 SPMATH=0"
# RSA4096 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA4096
- name: Build wolfboot and test app image v1, SIGN=RSA4096
run: |
make SIGN=RSA4096 WOLFBOOT_SMALL_STACK=1 SPMATH=0
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA4096 WOLFBOOT_SMALL_STACK=1 SPMATH=0 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA4096
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA4096 WOLFBOOT_SMALL_STACK=1 SPMATH=0"
- name: Upload Output Dir
uses: actions/upload-artifact@v2

View File

@ -7,7 +7,7 @@ on:
branches: [master]
jobs:
build_and_test:
renode_automated_multi_sha:
runs-on: ubuntu-20.04
steps:
@ -15,196 +15,49 @@ jobs:
with:
submodules: true
# Get the arm-non-eabi-gcc toolchain
- name: Install arm-none-eabi-gcc
uses: fiam/arm-none-eabi-gcc@v1
with:
# The arm-none-eabi-gcc release to use.
release: "9-2019-q4"
- name: Install wolfSSL
run: |
sudo apt-get install --no-install-recommends -y -q make libwolfssl-dev
- name: Build test-expect-version
run: |
make -C tools/test-expect-version
- name: make clean
run: |
make keysclean && make -C tools/keytools clean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h
- name: Build key tools
run: |
make -C tools/keytools
##### SHA384 tests
# SIGN=NONE TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=NONE HASH=SHA384
- name: Build wolfboot and test app image v1, SIGN=NONE HASH=SHA384
run: |
make SIGN=NONE HASH=SHA384
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=NONE HASH=SHA384 && cp /tmp/renode-test-update.bin test-app/
##### SHA384 tests
- name: Renode Tests SIGN=NONE HASH=SHA384
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=NONE HASH=SHA384"
# ECC256 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC256
- name: Build wolfboot and test app image v1, SIGN=ECC256
run: |
make SIGN=ECC256 HASH=SHA384
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC256 HASH=SHA384 && cp /tmp/renode-test-update.bin test-app/
# ECC256 TEST
- name: Renode Tests ECC256
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC256 HASH=SHA384"
# ECC384 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC384
- name: Build wolfboot and test app image v1, SIGN=ECC384
run: |
make SIGN=ECC384 HASH=SHA384
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC384 HASH=SHA384 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ECC384
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC384 HASH=SHA384"
# ED25519 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ED25519
- name: Build wolfboot and test app image v1, SIGN=ED25519
run: |
make SIGN=ED25519 HASH=SHA384
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ED25519 HASH=SHA384 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ED25519
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ED25519 HASH=SHA384"
# ED448 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ED448
- name: Build wolfboot and test app image v1, SIGN=ED448
run: |
make SIGN=ED448 HASH=SHA384
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ED448 HASH=SHA384 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ED448
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ED448 HASH=SHA384"
# RSA2048 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA2048
- name: Build wolfboot and test app image v1, SIGN=RSA2048
run: |
make SIGN=RSA2048 HASH=SHA384
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA2048 HASH=SHA384 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA2048
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA2048 HASH=SHA384"
# RSA3072 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA3072
- name: Build wolfboot and test app image v1, SIGN=RSA3072
run: |
make SIGN=RSA3072 HASH=SHA384
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA3072 HASH=SHA384 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA3072
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA3072 HASH=SHA384"
# RSA4096 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA4096
- name: Build wolfboot and test app image v1, SIGN=RSA4096
run: |
make SIGN=RSA4096 HASH=SHA384
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA4096 HASH=SHA384 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA4096
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA4096 HASH=SHA384"
- name: Upload Output Dir
uses: actions/upload-artifact@v2
@ -212,166 +65,46 @@ jobs:
name: Renode Test Results
path: test_results/
##### SHA-3 tests
# SIGN=NONE TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=NONE HASH=SHA3
- name: Build wolfboot and test app image v1, SIGN=NONE HASH=SHA3
run: |
make SIGN=NONE HASH=SHA3
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=NONE HASH=SHA3 && cp /tmp/renode-test-update.bin test-app/
##### SHA-3 tests
# SIGN=NONE TEST
- name: Renode Tests SIGN=NONE HASH=SHA3
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=NONE HASH=SHA3"
# ECC256 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC256
- name: Build wolfboot and test app image v1, SIGN=ECC256
run: |
make SIGN=ECC256 HASH=SHA3
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC256 HASH=SHA3 && cp /tmp/renode-test-update.bin test-app/
# ECC256 TEST
- name: Renode Tests ECC256
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC256 HASH=SHA3"
# ECC384 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC384
- name: Build wolfboot and test app image v1, SIGN=ECC384
run: |
make SIGN=ECC384 HASH=SHA3
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC384 HASH=SHA3 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ECC384
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC384 HASH=SHA3"
# ED25519 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ED25519
- name: Build wolfboot and test app image v1, SIGN=ED25519
run: |
make SIGN=ED25519 HASH=SHA3
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ED25519 HASH=SHA3 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ED25519
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ED25519 HASH=SHA3"
# ED448 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ED448
- name: Build wolfboot and test app image v1, SIGN=ED448
run: |
make SIGN=ED448 HASH=SHA3
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ED448 HASH=SHA3 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ED448
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ED448 HASH=SHA3"
# RSA2048 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA2048
- name: Build wolfboot and test app image v1, SIGN=RSA2048
run: |
make SIGN=RSA2048 HASH=SHA3
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA2048 HASH=SHA3 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA2048
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA2048 HASH=SHA3"
# RSA3072 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA3072
- name: Build wolfboot and test app image v1, SIGN=RSA3072
run: |
make SIGN=RSA3072 HASH=SHA3
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA3072 HASH=SHA3 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA3072
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA3072 HASH=SHA3"
# RSA4096 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA4096
- name: Build wolfboot and test app image v1, SIGN=RSA4096
run: |
make SIGN=RSA4096 HASH=SHA3
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA4096 HASH=SHA3 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA4096
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA4096 HASH=SHA3"
- name: Upload Output Dir
uses: actions/upload-artifact@v2

View File

@ -1,4 +1,4 @@
name: Renode Automated Tests
name: Renode Automated - Base Tests
on:
push:
@ -7,7 +7,7 @@ on:
branches: [master]
jobs:
build_and_test:
renode_automated_base:
runs-on: ubuntu-20.04
steps:
@ -15,193 +15,44 @@ jobs:
with:
submodules: true
# Get the arm-non-eabi-gcc toolchain
- name: Install arm-none-eabi-gcc
uses: fiam/arm-none-eabi-gcc@v1
with:
# The arm-none-eabi-gcc release to use.
release: "9-2019-q4"
- name: Install wolfSSL
run: |
sudo apt-get install --no-install-recommends -y -q make libwolfssl-dev
- name: Build test-expect-version
run: |
make -C tools/test-expect-version
- name: make clean
run: |
make keysclean && make -C tools/keytools clean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h
- name: Build key tools
run: |
make -C tools/keytools
# SIGN=NONE TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=NONE
- name: Build wolfboot and test app image v1, SIGN=NONE
run: |
make SIGN=NONE
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=NONE && cp /tmp/renode-test-update.bin test-app/
# SIGN=NONE TEST
- name: Renode Tests SIGN=NONE
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=NONE"
# ECC256 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC256
- name: Build wolfboot and test app image v1, SIGN=ECC256
run: |
make SIGN=ECC256
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC256 && cp /tmp/renode-test-update.bin test-app/
# ECC256 TEST
- name: Renode Tests ECC256
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC256"
# ECC384 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ECC384
- name: Build wolfboot and test app image v1, SIGN=ECC384
run: |
make SIGN=ECC384
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ECC384 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ECC384
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ECC384"
# ED25519 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ED25519
- name: Build wolfboot and test app image v1, SIGN=ED25519
run: |
make SIGN=ED25519
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ED25519 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ED25519
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ED25519"
# ED448 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=ED448
- name: Build wolfboot and test app image v1, SIGN=ED448
run: |
make SIGN=ED448
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=ED448 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests ED448
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=ED448"
# RSA2048 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA2048
- name: Build wolfboot and test app image v1, SIGN=RSA2048
run: |
make SIGN=RSA2048
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA2048 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA2048
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA2048"
# RSA3072 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA3072
- name: Build wolfboot and test app image v1, SIGN=RSA3072
run: |
make SIGN=RSA3072
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA3072 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA3072
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA3072"
# RSA4096 TEST
- name: make clean
run: |
make keysclean && rm -f include/target.h
- name: Select config
run: |
cp config/examples/nrf52840.config .config && make include/target.h SIGN=RSA4096
- name: Build wolfboot and test app image v1, SIGN=RSA4096
run: |
make SIGN=RSA4096
- name: Build update image v2
run: |
make /tmp/renode-test-update.bin SIGN=RSA4096 && cp /tmp/renode-test-update.bin test-app/
- name: Renode Tests RSA4096
run: ./tools/renode/docker-test.sh
run: ./tools/renode/docker-test.sh "SIGN=RSA4096"
- name: Upload Output Dir
uses: actions/upload-artifact@v2

View File

@ -1 +1,5 @@
FROM antmicro/renode:latest
RUN apt-get update
RUN apt-get install gcc-arm-none-eabi make -y

View File

@ -23,7 +23,7 @@ if ! docker run \
--env RENODE_CHECKOUT=/home/developer/renode \
--workdir ${DOCKER_WORKSPACE} \
${DOCKER_TAG} \
/bin/bash -c "tools/scripts/renode-test-update.sh 2>&1 > ${DOCKER_TEST_RESULTS_PATH}/logs.txt"
/bin/bash -c "tools/scripts/renode-test-update.sh $@ 2>&1 > ${DOCKER_TEST_RESULTS_PATH}/logs.txt"
then
echo "FAILED"
exit_code=1

View File

@ -7,6 +7,7 @@ export POFF=262139
export RENODE_PORT=55155
export RENODE_OPTIONS="--pid-file=$RENODE_PIDFILE --disable-xwt -P $RENODE_PORT"
export EXPVER=tools/test-expect-version/test-expect-version
export TEST_OPTIONS=$@
quit_renode() {
if (which nc); then
@ -18,9 +19,16 @@ quit_renode() {
rm -f $RENODE_UART
cp wolfboot.elf /tmp/renode-wolfboot.elf
cp test-app/image_v1_signed.bin /tmp/renode-test-v1.bin
cp test-app/renode-test-update.bin /tmp
make distclean
make -C tools/keytools
make -C tools/test-expect-version
make clean && make $TEST_OPTIONS || exit 2
make /tmp/renode-test-update.bin $TEST_OPTIONS || exit 2
cp /tmp/renode-test-update.bin test-app/ || exit 3
cp wolfboot.elf /tmp/renode-wolfboot.elf || exit 3
cp test-app/image_v1_signed.bin /tmp/renode-test-v1.bin || exit 3
cp test-app/renode-test-update.bin /tmp || exit 3
echo "Launching Renode"
renode $RENODE_OPTIONS $RENODE_CONFIG >/dev/null &
while ! (test -e $RENODE_UART); do sleep .1; done