Skip to content

fix(ci): a crashed emulator fails in seconds instead of hanging 30 minutes #191

fix(ci): a crashed emulator fails in seconds instead of hanging 30 minutes

fix(ci): a crashed emulator fails in seconds instead of hanging 30 minutes #191

Triggered via pull request August 22, 2026 05:22
Status Failure
Total duration 3m 17s
Artifacts

ci.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

4 errors and 2 warnings
integration
Process completed with exit code 1.
integration
❌ Tests reported 2 failures
TestStorageVersionGateSource.test_burned_versions_are_dispatched_to_the_wipe_path: TestStorageVersionGateSource#L1
AssertionError: 'case StorageVersion_18:' not found in '/*\n *\n * Copyright (C) 2023 markrypto <cryptoakorn@gmail.com>\n * Copyright (C) 2014 Pavol Rusnak <stick@satoshilabs.com>\n *\n * This library is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this library. If not, see <http://www.gnu.org/licenses/>.\n */\n\n#include "storage.h"\n\n#include "keepkey/firmware/storage.h"\n\n#include "variant.h"\n\n#ifndef EMULATOR\n#include <libopencm3/stm32/flash.h>\n#include <libopencm3/stm32/desig.h>\n#endif\n\n#include "aes_sca/aes128_cbc.h"\n\n#include "keepkey/board/confirm_sm.h"\n#include "keepkey/firmware/home_sm.h"\n\n#include "keepkey/board/common.h"\n#include "keepkey/board/supervise.h"\n#include "keepkey/board/keepkey_board.h"\n#include "keepkey/board/keepkey_flash.h"\n#include "keepkey/board/memcmp_s.h"\n#include "keepkey/board/memory.h"\n#include "keepkey/board/util.h"\n#include "keepkey/board/variant.h"\n#include "keepkey/firmware/fsm.h"\n#include "keepkey/firmware/passphrase_sm.h"\n#include "keepkey/firmware/policy.h"\n#include "keepkey/firmware/reset.h"\n#include "keepkey/firmware/signed_metadata.h"\n#include "keepkey/firmware/u2f.h"\n#include "keepkey/firmware/zcash.h"\n#include "keepkey/rand/rng.h"\n#include "keepkey/rand/rng_health.h"\n#include "keepkey/transport/interface.h"\n#include "trezor/crypto/aes/aes.h"\n#include "trezor/crypto/bip32.h"\n#include "trezor/crypto/bip39.h"\n#include "trezor/crypto/curves.h"\n#include "trezor/crypto/memzero.h"\n#include "trezor/crypto/pbkdf2.h"\n#include "trezor/crypto/rand.h"\n\n#include <string.h>\n#include <stdint.h>\n#include <assert.h>\n\n/*\n * PIN wrapping-key parameters are part of the persistent storage format.\n * Never change an existing set in place: old wallets must first unwrap with\n * their original parameters, then rewrap after a correct PIN. V19 restores a\n * meaningful offline-work factor after V16 reduced it to ten iterations.\n */\n\n#if defined(EMULATOR) || defined(DEBUG_ON)\n#define PIN_ITER_COUNT_v15 1000\n#define PIN_ITER_CHUNK_v15 10\n#define PIN_ITER_COUNT_v16 10\n#define PIN_ITER_CHUNK_v16 1\n#define PIN_ITER_COUNT_v19 1000\n#define PIN_ITER_CHUNK_v19 10\n#else\n#define PIN_ITER_COUNT_v15 100000\n#define PIN_ITER_CHUNK_v15 1000\n#define PIN_ITER_COUNT_v16 10\n#define PIN_ITER_CHUNK_v16 1\n#define PIN_ITER_COUNT_v19 100000\n#define PIN_ITER_CHUNK_v19 1000\n#endif\n\n#define U2F_KEY_PATH 0x80553246\n#define _(X) (X)\n\nstatic SessionState CONFIDENTIAL session;\n\nstatic Allocation storage_location = FLASH_INVALID;\n\n/* Shadow memory for configuration data in storage partition */\n_Static_assert(sizeof(ConfigFlash) <= FLASH_STORAGE_LEN,\n "ConfigFlash struct is too large for storage partition");\nstatic ConfigFlash CONFIDENTIAL shadow_config;\n\n/* This firmware found storage in flash it must refuse to load or overwrite\n * until the user explicitly wipes: a bitcoin-only wallet seen by multi-chain\n * firmware, or (on bitcoin-only firmware) a newer in-band wallet than this\n * build understands. Set from the SUS_BitcoinOnlyLocked path in either build.\n */\nstatic bool btc_only_locked = false;\n\nbool storage_isBitcoinOnlyLocked(void) { return btc_only_locked; }\n\n// Stamp a newly-created seed into the reserved bitcoin-only version band so\n// multi-chain firmware refuses it (see storage_fromFlash). Called only from\n// seed-creation paths, so a pre-existing multi-chain wallet migrated under\n// bitcoin-only firmware keeps its normal, portable version. No-op (but still\n// referenced, so no
TestStorageVersionGateSource.test_active_flash_format_is_v20: TestStorageVersionGateSource#L1
AssertionError: 20 != 17 : STORAGE_VERSION is 17, not the V20 format 7.16 introduces. A bump is a deliberate release act (docs/StorageVersionGate.md): confirm the reader chain, the anti-rollback story, and the release notes, then update this test.
lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-python@v5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
integration
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-python@v5, mikepenz/action-junit-report@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/