#!/bin/bash # Test runner # # Copyright (c) 2017 Open Source Foundries Limited # # This script can be used to execute the Zephyr test plan detailed in # docs/testplan-zephyr.md. # function ok_yn () { while true ; do read -p "Test result OK (y/n)? " -n 1 choice echo case "$choice" in y|Y ) return ;; n|N ) echo "Test failed; exiting" exit 1 ;; * ) echo Please enter y or n ;; esac done } set -e echo '--------------------------------------------------------' echo '------------------------ GOOD RSA ----------------------' make test-good-rsa pyocd erase --chip echo "Flashing bootloader" make flash_boot echo "Expected result: unable to find bootable image" ok_yn echo "Flashing hello 1" make flash_hello1 echo "Expected result: hello1 runs" ok_yn echo "Flashing hello 2" make flash_hello2 echo "Expected result: hello2 runs" ok_yn echo "Resetting" pyocd commander -c reset echo "Expected result: hello1 runs" ok_yn echo '--------------------------------------------------------' echo '------------------------ GOOD ECDSA --------------------' make test-good-ecdsa pyocd erase --chip make flash_boot echo "Expected result: unable to find bootable image" ok_yn echo "Flashing hello 1" make flash_hello1 echo "Expected result: hello1 runs" ok_yn echo "Flashing hello 2" make flash_hello2 echo "Expected result: hello2 runs" ok_yn echo "Resetting" pyocd commander -c reset echo "Expected result: hello1 runs" ok_yn echo '--------------------------------------------------------' echo '------------------------ OVERWRITE ---------------------' make test-overwrite pyocd erase --chip make flash_boot echo "Expected result: unable to find bootable image" ok_yn echo "Flashing hello 1" make flash_hello1 echo "Expected result: hello1 runs" ok_yn echo "Flashing hello 2" make flash_hello2 echo "Expected result: hello2 runs" ok_yn echo "Resetting" pyocd commander -c reset echo "Expected result: hello2 runs" ok_yn echo '--------------------------------------------------------' echo '------------------------ BAD RSA -----------------------' make test-bad-rsa-upgrade pyocd erase --chip make flash_boot echo "Expected result: unable to find bootable image" ok_yn echo "Flashing hello 1" make flash_hello1 echo "Expected result: hello1 runs" ok_yn echo "Flashing hello 2" make flash_hello2 echo "Expected result: hello1 runs" ok_yn echo "Resetting" pyocd commander -c reset echo "Expected result: hello1 runs" ok_yn echo '--------------------------------------------------------' echo '------------------------ BAD ECDSA ---------------------' make test-bad-ecdsa-upgrade pyocd erase --chip make flash_boot echo "Expected result: unable to find bootable image" ok_yn echo "Flashing hello 1" make flash_hello1 echo "Expected result: hello1 runs" ok_yn echo "Flashing hello 2" make flash_hello2 echo "Expected result: hello1 runs" ok_yn echo "Resetting" pyocd commander -c reset echo "Expected result: hello1 runs" ok_yn echo '--------------------------------------------------------' echo '------------------------ NO BOOTCHECK ------------------' make test-no-bootcheck pyocd erase --chip make flash_boot echo "Expected result: unable to find bootable image" ok_yn echo "Flashing hello 1" make flash_hello1 echo "Expected result: hello1 runs" ok_yn echo "Flashing hello 2" make flash_hello2 echo "Expected result: hello1 runs" ok_yn echo "Resetting" pyocd commander -c reset echo "Expected result: hello1 runs" ok_yn echo '--------------------------------------------------------' echo '------------------------ WRONG RSA ---------------------' make test-wrong-rsa pyocd erase --chip make flash_boot echo "Expected result: unable to find bootable image" ok_yn echo "Flashing hello 1" make flash_hello1 echo "Expected result: hello1 runs" ok_yn echo "Flashing hello 2" make flash_hello2 echo "Expected result: hello1 runs" ok_yn echo "Resetting" pyocd commander -c reset echo "Expected result: hello1 runs" ok_yn echo '--------------------------------------------------------' echo '------------------------ WRONG ECDSA -------------------' make test-wrong-ecdsa pyocd erase --chip make flash_boot echo "Expected result: unable to find bootable image" ok_yn echo "Flashing hello 1" make flash_hello1 echo "Expected result: hello1 runs" ok_yn echo "Flashing hello 2" make flash_hello2 echo "Expected result: hello1 runs" ok_yn echo "Resetting" pyocd commander -c reset echo "Expected result: hello1 runs" ok_yn echo '========================================================' echo ' ALL TESTS PASSED' echo '========================================================'