From 650db2a5c01b80cc745d436f5f4d52b9cc52a93a Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Sat, 14 Sep 2019 14:47:30 +0200 Subject: [PATCH] ci: add u2f tests to CI --- ci/test.yml | 9 ++++++ core/Makefile | 3 ++ core/tests/run_tests_device_emu_u2f.sh | 44 ++++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100755 core/tests/run_tests_device_emu_u2f.sh diff --git a/ci/test.yml b/ci/test.yml index db791e086..166c41530 100644 --- a/ci/test.yml +++ b/ci/test.yml @@ -68,6 +68,15 @@ core unix monero test: - cd core - pipenv run make test_emu_monero +core unix u2f test: + stage: test + <<: *only_changes_core + dependencies: + - core unix frozen regular build + script: + - cd core + - pipenv run make test_emu_u2f + core unix upgrade test: stage: test <<: *only_changes_core diff --git a/core/Makefile b/core/Makefile index ace78c0a3..5c3c6a11b 100644 --- a/core/Makefile +++ b/core/Makefile @@ -70,6 +70,9 @@ test_emu: ## run selected device tests from python-trezor test_emu_monero: ## run selected monero device tests from monero-agent cd tests ; ./run_tests_device_emu_monero.sh $(TESTOPTS) +test_emu_u2f: ## run selected u2f device tests from u2f-tests-hid + cd tests ; ./run_tests_device_emu_u2f.sh $(TESTOPTS) + pylint: ## run pylint on application sources and tests pylint -E $(shell find src tests -name *.py) diff --git a/core/tests/run_tests_device_emu_u2f.sh b/core/tests/run_tests_device_emu_u2f.sh new file mode 100755 index 000000000..20cf25bd7 --- /dev/null +++ b/core/tests/run_tests_device_emu_u2f.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +: "${RUN_TEST_EMU:=1}" + +CORE_DIR="$(SHELL_SESSION_FILE='' && cd "$( dirname "${BASH_SOURCE[0]}" )/.." >/dev/null 2>&1 && pwd )" +MICROPYTHON="${MICROPYTHON:-$CORE_DIR/build/unix/micropython}" +TREZOR_SRC="${CORE_DIR}/src" + +DISABLE_FADE=1 +PYOPT="${PYOPT:-0}" +upy_pid="" + +# run emulator if RUN_TEST_EMU +if [[ $RUN_TEST_EMU > 0 ]]; then + source ../trezor_cmd.sh + + # remove flash before run to prevent inconsistent states + mv "${TREZOR_PROFILE_DIR}/trezor.flash" "${TREZOR_PROFILE_DIR}/trezor.flash.bkp" 2>/dev/null + + cd "${TREZOR_SRC}" + echo "Starting emulator: $MICROPYTHON $ARGS ${MAIN}" + + TREZOR_TEST=1 \ + TREZOR_DISABLE_FADE=$DISABLE_FADE \ + $MICROPYTHON $ARGS "${MAIN}" &> "${TREZOR_LOGFILE}" & + upy_pid=$! + cd - + sleep 1 +fi + +# run tests +error=0 +# missuse loaddevice test to initialize the device +if ! pytest ../../tests/device_tests -k "test_msg_loaddevice" "$@"; then + error=1 +fi +if ! ../../tests/fido_tests/u2f-tests-hid/HIDTest 21328 "$@"; then + error=1 +fi +if ! ../../tests/fido_tests/u2f-tests-hid/U2FTest 21328 "$@"; then + error=1 +fi +kill $upy_pid +exit $error