1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-19 12:58:13 +00:00
trezor-firmware/core/tests
Dusan Klinec 25d32a8144 feat(xmr): implement bp+, refactor, code cleanup
- implement BulletProof plus verifier and prover
- use bulletproof exception to signalize proof generation failed and should be tried again. More robust, fixes bug that was not triggered yet (return tuple did not work properly in all situations)
- precomputed 2**i vector is removed as it can be easily computed
- BP code cleanup, minor optimizations, comments
2022-05-16 12:37:24 +02:00
..
production_tests style(all): use f-strings for formatting 2021-10-13 11:53:17 +02:00
common.py refactor(core): convert apps.common to layouts 2021-08-04 15:03:11 +02:00
mock_storage.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
mock.py core: draft unit test for process_slip39 2019-10-03 16:01:01 +02:00
README.md chore(core): update Bitcoin testcases to use valid prevtxes 2022-02-28 15:45:29 +01:00
run_tests_click_emu.sh core: rename emulator to trezor-emu-core 2020-07-30 15:27:34 +02:00
run_tests_device_emu_monero.sh chore(core/monero): update test binary to newest version 2022-05-16 12:37:24 +02:00
run_tests.sh chore(core/tests): bump heap size for core unit tests 2021-05-06 13:14:21 +02:00
slip39_vectors.py core/slip39: Update code logic, tests and test vectors in accordance with the new requirement that the number of shares provided is equal to the threshold. 2019-05-03 18:28:14 +02:00
test_apps.binance.address.py chore(core/tests): update unit tests for new APIs, drop unnecessary ones 2020-11-05 14:30:11 +01:00
test_apps.binance.sign_tx.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
test_apps.bitcoin.address_grs.py core/bitcoin: finalize bitcoin refactor 2020-05-18 14:31:51 +02:00
test_apps.bitcoin.address.py chore(core): Add mac field to Address message. 2022-01-31 18:00:22 +01:00
test_apps.bitcoin.approver.py chore(core): Rework checking of CoinJoin parameters. 2022-03-17 15:46:01 +01:00
test_apps.bitcoin.authorization.py chore(core): Rework checking of CoinJoin parameters. 2022-03-17 15:46:01 +01:00
test_apps.bitcoin.keychain.py fix(core): Fix insufficient BIP-32 path checks. 2021-06-30 18:25:58 +02:00
test_apps.bitcoin.ownership_proof.py fix(crypto): use zero auxiliary data in BIP340 2022-04-12 16:22:42 +02:00
test_apps.bitcoin.segwit.bip143.native_p2wpkh.py chore(core): Convert SIGHASH_* consts to SigHashType enum. 2021-11-13 13:33:46 +01:00
test_apps.bitcoin.segwit.bip143.p2wpkh_in_p2sh.py chore(core): Convert SIGHASH_* consts to SigHashType enum. 2021-11-13 13:33:46 +01:00
test_apps.bitcoin.segwit.bip341.p2tr.py chore(core): Convert SIGHASH_* consts to SigHashType enum. 2021-11-13 13:33:46 +01:00
test_apps.bitcoin.segwit.signtx.native_p2wpkh_grs.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
test_apps.bitcoin.segwit.signtx.native_p2wpkh.py chore(core): Simplify path warning UI. 2022-03-17 09:44:03 +01:00
test_apps.bitcoin.segwit.signtx.p2wpkh_in_p2sh_grs.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
test_apps.bitcoin.segwit.signtx.p2wpkh_in_p2sh.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
test_apps.bitcoin.sign_tx.writers.py feat(core): Support unverified external inputs. 2022-03-17 09:44:03 +01:00
test_apps.bitcoin.signtx_decred.py chore(core): update Bitcoin testcases to use valid prevtxes 2022-02-28 15:45:29 +01:00
test_apps.bitcoin.signtx_grs.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
test_apps.bitcoin.signtx.fee_threshold.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
test_apps.bitcoin.signtx.omni.py core/bitcoin: finalize bitcoin refactor 2020-05-18 14:31:51 +02:00
test_apps.bitcoin.signtx.py chore(core): update Bitcoin testcases to use valid prevtxes 2022-02-28 15:45:29 +01:00
test_apps.bitcoin.txweight.py feat(core): Support external inputs in TxWeightCalculator. 2021-11-13 13:33:46 +01:00
test_apps.bitcoin.zcash.zip243.py feat!(core): support Zcash v5 transaction format 2022-05-02 16:07:31 +02:00
test_apps.cardano.address.py fix(cardano): update testnet protocol magic 2022-03-18 14:32:54 +01:00
test_apps.cardano.bech32.py Cardano shelley update 2/3 (#1112) 2020-07-27 13:11:23 +02:00
test_apps.cardano.certificate.py feat(cardano): add key hash stake credentials 2022-03-18 14:32:54 +01:00
test_apps.cardano.credential.py feat(cardano): add support for script addresses derivation 2021-10-11 15:16:24 +02:00
test_apps.cardano.get_public_key.py tests(core): add unit tests for Icarus and Icarus-Trezor, fix failing tests 2021-11-10 13:57:57 +01:00
test_apps.cardano.native_script.py tests(core): add unit tests for Icarus and Icarus-Trezor, fix failing tests 2021-11-10 13:57:57 +01:00
test_apps.cardano.seed.py tests(core): add unit tests for Icarus and Icarus-Trezor, fix failing tests 2021-11-10 13:57:57 +01:00
test_apps.cardano.sign_tx.py feat(cardano): add support for script addresses derivation 2021-10-11 15:16:24 +02:00
test_apps.cardano.staking_use_cases.py feat(cardano): add support for script addresses derivation 2021-10-11 15:16:24 +02:00
test_apps.cardano.utils.py feat(core/cardano): Implement bech32 asset ids based on CIP-0014 2021-03-18 09:53:33 +01:00
test_apps.common.cbor.py feat(cardano): streamed transaction signing 2021-08-20 11:50:13 +02:00
test_apps.common.coins.py core: fix unit tests for Bitcoin only firmware 2019-08-27 12:38:29 +02:00
test_apps.common.keychain.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
test_apps.common.paths.py style(all): use f-strings for formatting 2021-10-13 11:53:17 +02:00
test_apps.common.seed.py core/tests: add unit tests for new functionality 2020-07-24 16:37:58 +02:00
test_apps.eos.check_action.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
test_apps.eos.conversions.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
test_apps.eos.get_public_key.py chore(core/tests): update unit tests for new APIs, drop unnecessary ones 2020-11-05 14:30:11 +01:00
test_apps.ethereum.helpers.py refactor(core/ethereum): rename address.py to helpers.py 2021-11-02 14:27:01 +01:00
test_apps.ethereum.keychain.py feat(core/ethereum): enable type-checking for Ethereum app 2021-09-10 15:09:03 +02:00
test_apps.ethereum.layout.py feat(core/ethereum): enable type-checking for Ethereum app 2021-09-10 15:09:03 +02:00
test_apps.ethereum.sign_typed_data.py feat(core/ethereum): EIP-712 2021-11-02 14:27:01 +01:00
test_apps.ethereum.tokens.py feat(core/ethereum): use TokenInfo object instead of tuples 2021-09-10 15:09:03 +02:00
test_apps.management.recovery_device.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
test_apps.monero.bulletproof.py feat(xmr): implement bp+, refactor, code cleanup 2022-05-16 12:37:24 +02:00
test_apps.monero.clsag.py refactor(core/monero): Monero code cleanup 2022-05-16 12:37:24 +02:00
test_apps.monero.crypto.py refactor(core/monero): Monero code cleanup 2022-05-16 12:37:24 +02:00
test_apps.monero.proto.py refactor(core/monero): Monero code cleanup 2022-05-16 12:37:24 +02:00
test_apps.monero.serializer.py refactor(core/monero): Monero code cleanup 2022-05-16 12:37:24 +02:00
test_apps.nem.address.py refactor(core): convert apps.common to layouts 2021-08-04 15:03:11 +02:00
test_apps.nem.hdnode.py core: fix unit tests for Bitcoin only firmware 2019-08-27 12:38:29 +02:00
test_apps.nem.mosaic_creation.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
test_apps.nem.mosaic_supply_change.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
test_apps.nem.mosaic.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
test_apps.nem.multisig.aggregate_modification.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
test_apps.nem.multisig.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
test_apps.nem.namespace.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
test_apps.nem.transfer.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
test_apps.ripple.address.py chore(core/tests): update unit tests for new APIs, drop unnecessary ones 2020-11-05 14:30:11 +01:00
test_apps.ripple.serializer.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
test_apps.stellar.address.py chore(core/tests): update unit tests for new APIs, drop unnecessary ones 2020-11-05 14:30:11 +01:00
test_apps.tezos.address.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
test_apps.tezos.encode.py refactor(core): fix imports and use new protobuf API in apps 2021-06-08 09:55:19 +02:00
test_apps.webauthn.credential.py core: wipe before reset and recovery; introduce 'intialized' field 2020-06-16 11:31:29 +02:00
test_apps.zcash.zip244.py test(core): add test for zip244 2022-05-02 16:07:31 +02:00
test_storage.cache.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
test_storage.py fix(core): Improve error handling and range checking in modtrezorconfig. 2021-03-26 10:54:56 +01:00
test_trezor.config.py test(core): Add unit test for modtrezorconfig counter. 2021-03-26 10:54:56 +01:00
test_trezor.crypto.aes.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.base32.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.base58.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.bech32.py feat(core): verify bip340 pubkeys used in p2tr addresses 2022-02-16 10:25:15 +01:00
test_trezor.crypto.bip32.py core/crypto: remove unused bip32.deserialize function 2020-04-06 18:04:24 +02:00
test_trezor.crypto.bip39.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.cashaddr.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.chacha20poly1305.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.crc.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.curve.bip340.py test(core): add unit tests for bip340 2021-11-26 20:16:59 +01:00
test_trezor.crypto.curve.curve25519.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.curve.ed25519_cosi.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.curve.ed25519.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.curve.nist256p1.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.curve.secp256k1.py test(core): fix secp256k1 unit tests 2021-11-26 20:16:59 +01:00
test_trezor.crypto.der.py core/crypto: Add functions for verifying DER encoded signatures. 2020-07-03 11:17:19 +02:00
test_trezor.crypto.hashlib.blake2b.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.hashlib.blake2s.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.hashlib.blake256.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.hashlib.groestl512.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.hashlib.ripemd160.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.hashlib.sha1.py docs: switch http to https in links (#419) 2019-08-16 17:28:15 +02:00
test_trezor.crypto.hashlib.sha3_256.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.hashlib.sha3_512.py docs: switch http to https in links (#419) 2019-08-16 17:28:15 +02:00
test_trezor.crypto.hashlib.sha256.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.hashlib.sha512.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.hmac.py perf(core/extmod): replace HMAC Python implementation with C 2020-10-12 16:33:13 +02:00
test_trezor.crypto.pbkdf2.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.random.py MONOREPO CREATE FROM trezor-core 2019-04-15 19:14:40 +02:00
test_trezor.crypto.rlp.py refactor(core/ethereum): improve API of the rlp module 2021-07-19 13:59:28 +02:00
test_trezor.crypto.slip39.py core/tests: update tests for modified slip39 API 2020-01-09 16:00:33 +01:00
test_trezor.io.fatfs.py style(all): use f-strings for formatting 2021-10-13 11:53:17 +02:00
test_trezor.io.sdcard.py core: fix unit tests 2020-02-20 12:51:48 +01:00
test_trezor.protobuf.py style(core): full pyright-based type-checking 2022-01-07 21:41:17 +01:00
test_trezor.sdcard.py refactor(core): disable SD, SBU, fatfs for T1 build 2021-08-20 12:22:13 +02:00
test_trezor.strings.py feat(core): plural function supports "key/keys" string 2021-11-02 14:27:01 +01:00
test_trezor.ui.display.py perf(core): enable rendering of substrings to avoid slicing 2021-01-11 16:47:59 +01:00
test_trezor.ui.text.py refactor(core): model-dependent UI component directories 2021-02-10 13:57:19 +01:00
test_trezor.utils.py feat(core): Implement GetFirmwareHash message. 2022-05-03 19:00:04 +02:00
test_trezor.wire.codec_v1.py refactor(core): Switch to new Protobuf API 2021-06-08 09:55:19 +02:00
test_unittest.py core/tests: test debug is on 2019-12-23 12:01:00 +00:00
unittest.py style(all): use f-strings for formatting 2021-10-13 11:53:17 +02:00

Unit tests

Unit tests test some smaller individual parts of code (mainly functions and classes) and are run by micropython directly.

How to run them

Run all tests:

make test

Run a specific test file:

make test TESTOPTS=test_apps.bitcoin.signtx.py

WARNING: unittests cannot run with frozen emulator, use make build_unix to create non-frozen emulator.

Usage

Please use the unittest.TestCase class:

from common import *

class TestSomething(unittest.TestCase):

    test_something(self):
        self.assertTrue(True)

Usage of assert is discouraged because it is not evaluated in production code (when PYOPT=1). Use self.assertXY instead, see unittest.py.