HWI/test
Ferdinando Ametrano 44dabcfa80 Avoided bare expect
2020-08-25 11:23:27 +02:00
..
data tests: Use m/48' for multisig tests 2020-08-20 15:27:26 -04:00
__init__.py Move tests to test subdir 2018-09-01 12:52:37 -04:00
authproxy.py Replace python-bitcoinrpc with Core's authproxy 2019-08-29 14:17:06 -04:00
README.md Update tests documentation with new tests 2019-03-09 01:17:05 -05:00
run_tests.py tests: exit early if previous device fails 2020-03-24 12:53:20 -04:00
setup_environment.sh Remove psbt segwit fixes patch to bitcoind 2020-07-02 17:00:36 -04:00
test_base58.py test: Add base58 tests 2019-09-25 07:41:30 +08:00
test_bech32.py Fix E2 whitespace errors 2019-09-06 12:13:06 -04:00
test_coldcard.py Avoided bare expect 2020-08-25 11:23:27 +02:00
test_descriptor.py Merge #353: Support multisig xpub descriptors on Trezor 2020-08-15 17:50:25 -04:00
test_device.py tests: Add trezor t back to mixed and external signing tests 2020-08-20 15:27:26 -04:00
test_digitalbitbox.py Avoided bare expect 2020-08-25 11:23:27 +02:00
test_keepkey.py Support Trezor and KeepKey toggle passphrase 2020-04-15 11:33:26 +03:00
test_ledger.py tests: refactor --testnet in self.dev_args to __init__ 2020-08-19 13:22:49 -04:00
test_psbt.py Fix F841 local variable is assigned to but never used 2019-09-06 12:13:06 -04:00
test_trezor.py Support Trezor and KeepKey toggle passphrase 2020-04-15 11:33:26 +03:00
test_udevrules.py avoided 'unused variables' namespace pollution 2020-08-08 16:35:52 +02:00

HWI Tests

Running the tests

This folder contains test cases for HWI. To run these tests, hwilib will need to be installed to your python system. You can install it by doing pip install -e .[tests] in the root directory.

setup_environment.sh will build the Trezor emulator, the Coldcard simulator, the Keepkey emulator, the Digital Bitbox simulator, and bitcoind. if run in the test/ directory, these will be built in work/test/trezor-mcu, work/test/firmware, work/test/keepkey-firmware, work/test/mcu, and work/test/bitcoin respectively.

run_tests.py runs the tests. If run from the test/ directory, it will be able to find the Trezor emulator, Coldcard simulator, Keepkey emulator, Digital Bitbox simulator, and bitcoind. Otherwise the paths to those will need to be specified on the command line. test_trezor.py, test_coldcard.py, test_keepkey.py, and test/test_digitalbitbox.py` can be disabled.

If you are building the Trezor emulator, the Coldcard simulator, the Keepkey emulator, the Digital Bitbox simulator, and bitcoind without setup_environment.sh, then you will need to make work/ inside of test/.

$ cd test
$ mkdir -p work
$ cd work

Trezor emulator

Dependencies

In order to build the Trezor emulator, the following packages will need to be installed:

build-essential curl git python3 python3-pip libsdl2-dev libsdl2-image-dev gcc-arm-none-eabi libnewlib-arm-none-eabi gcc-multilib

The python packages can be installed with

pip install pipenv

Building

Clone the repository:

$ git clone https://github.com/trezor/trezor-mcu/

Build the emulator in headless mode:

$ cd trezor-mcu
$ export EMULATOR=1 TREZOR_TRANSPORT_V1=1 DEBUG_LINK=1 HEADLESS=1
$ script/setup
$ pipenv install
$ pipenv run script/cibuild

Coldcard simulator

Dependencies

In order to build the Coldcard simulator, the following packages will need to be installed:

build-essential git python3 python3-pip libudev-dev gcc-arm-none-eabi

After cloninig the Coldcard repo into this testing folder, the python packages can be installed with:

pip install -r ckcc_firmware/requirements.txt
pip install -r ckcc_firmware/unix/requirements.txt

Building

Clone the repository:

$ git clone https://github.com/coldcard/firmware

Build the emulator in headless mode:

$ cd firmware/unix
$ make setup
$ make

Bitbox Simulator

Dependencies

In order to build the Bitbox simulator, the following packages will need to be installed:

build-essential git cmake

Building

Clone the repository:

$ git clone https://github.com/digitalbitbox/mcu

Build the simulator:

$ cd mcu
$ mkdir -p build && cd build
$ cmake .. -DBUILD_TYPE=simulator
$ make

KeepKey emulator

Dependencies

In order to build the KeepKey emulator, the following packages will need to be installed:

build-essential git python2 python2-pip

The python packages can be installed with

pip install protobuf

Building

Clone the repository and dependencies:

$ git clone https://github.com/keepkey/keepkey-firmware.git
$ cd keepkey-firmware
$ git clone https://github.com/nanopb/nanopb.git -b nanopb-0.2.9.2

Build the emulator:

$ export PATH=$PATH:`pwd`/nanopb/generator
$ cmake -C cmake/caches/emulator.cmake . -DNANOPB_DIR=nanopb/ -DKK_HAVE_STRLCAT=OFF -DKK_HAVE_STRLCPY=OFF
$ make kkemu

Bitcoin Core

In order to build bitcoind, see Bitcoin Core's build documentation to get all of the dependencies installed and for instructions on how to build.