mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-16 19:38:09 +00:00
7c41b40dff
tests: introduce UI tests for core with diffs
372 lines
7.5 KiB
YAML
372 lines
7.5 KiB
YAML
image: registry.gitlab.com/satoshilabs/trezor/trezor-firmware/environment
|
|
|
|
.only_changes_core: &only_changes_core
|
|
only:
|
|
changes:
|
|
- ci/**/*
|
|
- common/**/*
|
|
- core/**/*
|
|
- crypto/**/*
|
|
- python/**/*
|
|
- storage/**/*
|
|
- tests/**/*
|
|
- tools/**/*
|
|
- vendor/**/*
|
|
|
|
.only_changes_legacy: &only_changes_legacy
|
|
only:
|
|
changes:
|
|
- ci/**/*
|
|
- common/**/*
|
|
- crypto/**/*
|
|
- legacy/**/*
|
|
- python/**/*
|
|
- storage/**/*
|
|
- tests/**/*
|
|
- tools/**/*
|
|
- vendor/**/*
|
|
|
|
|
|
# Core
|
|
|
|
core unix unit test:
|
|
stage: test
|
|
<<: *only_changes_core
|
|
dependencies:
|
|
- core unix frozen regular build
|
|
script:
|
|
- cd core
|
|
- pipenv run make test
|
|
|
|
core unix device ui test:
|
|
stage: test
|
|
<<: *only_changes_core
|
|
dependencies:
|
|
- core unix frozen regular build
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu_ui
|
|
- cp /var/tmp/trezor.log ${CI_PROJECT_DIR}
|
|
- cd ../ci
|
|
- pipenv run python prepare_ui_artifacts.py
|
|
artifacts:
|
|
name: core-unix-device-ui-test
|
|
paths:
|
|
- trezor.log
|
|
- ci/ui_test_records/
|
|
- tests/ui_tests/reports/
|
|
- tests/junit.xml
|
|
when: always
|
|
expire_in: 1 week
|
|
reports:
|
|
junit: tests/junit.xml
|
|
|
|
core unix device test:
|
|
stage: test
|
|
<<: *only_changes_core
|
|
dependencies:
|
|
- core unix frozen regular build
|
|
variables:
|
|
TREZOR_PROFILING: 1
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu
|
|
- cp /var/tmp/trezor.log ${CI_PROJECT_DIR}
|
|
- sync
|
|
- sleep 1
|
|
- mv ./src/.coverage .coverage.test_emu
|
|
artifacts:
|
|
name: core-unix-device-test
|
|
paths:
|
|
- trezor.log
|
|
- tests/junit.xml
|
|
- core/.coverage.*
|
|
expire_in: 1 week
|
|
when: always
|
|
reports:
|
|
junit: tests/junit.xml
|
|
|
|
core unix btconly device test:
|
|
stage: test
|
|
<<: *only_changes_core
|
|
dependencies:
|
|
- core unix frozen btconly build
|
|
variables:
|
|
MICROPYTHON: "../build/unix/micropython-bitcoinonly"
|
|
TREZOR_PYTEST_SKIP_ALTCOINS: 1
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu
|
|
- cp /var/tmp/trezor.log ${CI_PROJECT_DIR}
|
|
artifacts:
|
|
name: core-unix-btconly-device-test
|
|
paths:
|
|
- trezor.log
|
|
- tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
reports:
|
|
junit: tests/junit.xml
|
|
|
|
core unix monero test:
|
|
stage: test
|
|
<<: *only_changes_core
|
|
dependencies:
|
|
- core unix frozen regular build
|
|
variables:
|
|
TREZOR_PROFILING: 1
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu_monero
|
|
- cp /var/tmp/trezor.log ${CI_PROJECT_DIR}
|
|
- sync
|
|
- sleep 1
|
|
- mv ./src/.coverage .coverage.test_emu_monero
|
|
artifacts:
|
|
name: core-unix-monero-test
|
|
paths:
|
|
- trezor.log
|
|
- core/.coverage.*
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
core unix u2f test:
|
|
stage: test
|
|
<<: *only_changes_core
|
|
retry: 2 # see https://github.com/trezor/trezor-firmware/issues/596
|
|
dependencies:
|
|
- core unix frozen regular build
|
|
variables:
|
|
TREZOR_PROFILING: 1
|
|
script:
|
|
- make -C tests/fido_tests/u2f-tests-hid
|
|
- cd core
|
|
- pipenv run make test_emu_u2f
|
|
- cp /var/tmp/trezor.log ${CI_PROJECT_DIR}
|
|
- sync
|
|
- sleep 1
|
|
- mv ./src/.coverage .coverage.test_emu_u2f
|
|
artifacts:
|
|
name: core-unix-u2f-test
|
|
paths:
|
|
- trezor.log
|
|
- core/.coverage.*
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
core unix fido2 test:
|
|
stage: test
|
|
<<: *only_changes_core
|
|
dependencies:
|
|
- core unix frozen regular build
|
|
variables:
|
|
TREZOR_PROFILING: 1
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu_fido2
|
|
- cp /var/tmp/trezor.log ${CI_PROJECT_DIR}
|
|
- sync
|
|
- sleep 1
|
|
- mv ./src/.coverage .coverage.test_emu_fido2
|
|
artifacts:
|
|
name: core-unix-fido2-test
|
|
paths:
|
|
- trezor.log
|
|
- tests/junit.xml
|
|
- core/.coverage.*
|
|
expire_in: 1 week
|
|
reports:
|
|
junit: tests/junit.xml
|
|
when: always
|
|
|
|
core unix click test:
|
|
stage: test
|
|
<<: *only_changes_core
|
|
dependencies:
|
|
- core unix frozen debug build
|
|
script:
|
|
- cd core
|
|
- pipenv run make test_emu_click
|
|
- cp /var/tmp/trezor.log ${CI_PROJECT_DIR}
|
|
artifacts:
|
|
name: core-unix-click-test
|
|
paths:
|
|
- trezor.log
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
core unix upgrade test:
|
|
stage: test
|
|
<<: *only_changes_core
|
|
dependencies:
|
|
- core unix frozen debug build
|
|
variables:
|
|
TREZOR_UPGRADE_TEST: "core"
|
|
script:
|
|
- tests/download_emulators.sh
|
|
- pipenv run pytest --junitxml=tests/junit.xml tests/upgrade_tests
|
|
artifacts:
|
|
name: core-unix-upgrade-test
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
core unix persistence test:
|
|
stage: test
|
|
<<: *only_changes_core
|
|
dependencies:
|
|
- core unix frozen debug build
|
|
script:
|
|
- pipenv run pytest --junitxml=tests/junit.xml tests/persistence_tests
|
|
artifacts:
|
|
name: core-unix-persistence-test
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
core mypy test:
|
|
stage: test
|
|
<<: *only_changes_core
|
|
dependencies: [] # no artifacts needed
|
|
script:
|
|
- cd core
|
|
- pipenv run mypy --version
|
|
- pipenv run make res # needed for clean mypy
|
|
- pipenv run make mypy
|
|
|
|
|
|
# Crypto
|
|
|
|
crypto test:
|
|
stage: test
|
|
only:
|
|
changes:
|
|
- ci/**/*
|
|
- crypto/**/*
|
|
dependencies:
|
|
- crypto build
|
|
script:
|
|
- cd crypto
|
|
- ./tests/aestst
|
|
- ./tests/test_check
|
|
- ./tests/test_openssl 1000
|
|
- ITERS=10 pipenv run pytest --junitxml=tests/junit.xml tests
|
|
- CK_TIMEOUT_MULTIPLIER=20 valgrind -q --error-exitcode=1 ./tests/test_check
|
|
artifacts:
|
|
name: crypto-test
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
|
|
# Legacy
|
|
|
|
legacy emu test:
|
|
stage: test
|
|
<<: *only_changes_legacy
|
|
dependencies:
|
|
- legacy emu regular build
|
|
variables:
|
|
EMULATOR: "1"
|
|
script:
|
|
- cd legacy
|
|
- pipenv run script/test
|
|
artifacts:
|
|
name: legacy-emu-test
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
legacy emu btconly test:
|
|
stage: test
|
|
<<: *only_changes_legacy
|
|
dependencies:
|
|
- legacy emu btconly build
|
|
variables:
|
|
EMULATOR: "1"
|
|
EMULATOR_BINARY: "firmware/trezor-bitcoinonly.elf"
|
|
TREZOR_PYTEST_SKIP_ALTCOINS: 1
|
|
script:
|
|
- cd legacy
|
|
- pipenv run script/test
|
|
artifacts:
|
|
name: legacy-emu-btconly-test
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
|
|
legacy emu upgrade test:
|
|
stage: test
|
|
<<: *only_changes_legacy
|
|
dependencies:
|
|
- legacy emu regular build
|
|
variables:
|
|
TREZOR_UPGRADE_TEST: "legacy"
|
|
script:
|
|
- tests/download_emulators.sh
|
|
- pipenv run pytest --junitxml=tests/junit.xml tests/upgrade_tests
|
|
artifacts:
|
|
name: legacy-emu-upgrade-test
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
|
|
|
|
# Python
|
|
|
|
python test:
|
|
stage: test
|
|
only:
|
|
changes:
|
|
- ci/**/*
|
|
- common/**/*
|
|
- python/**/*
|
|
script:
|
|
- cd python
|
|
- pipenv run tox
|
|
|
|
|
|
# Storage
|
|
|
|
storage test:
|
|
stage: test
|
|
only:
|
|
changes:
|
|
- ci/**/*
|
|
- storage/**/*
|
|
dependencies: []
|
|
script:
|
|
- cd storage/tests
|
|
- pipenv run make build
|
|
- pipenv run make tests_all
|
|
artifacts:
|
|
name: storage-test
|
|
paths:
|
|
- tests/junit.xml
|
|
reports:
|
|
junit: tests/junit.xml
|
|
expire_in: 1 week
|
|
when: always
|