Skip to content

Commit c57bb85

Browse files
committed
fix(report): stop declaring screens seven tests cannot draw
The report's own gate was failing: screenshot audit FAILED -- declared screens with no capture: test_msg_ethereum_getaddress::test_ethereum_getaddress test_msg_ripple_get_address::test_ripple_get_address test_msg_ethereum_clear_signing::test_valid_metadata_returns_verified test_msg_solana_getaddress::test_solana_get_address test_msg_tron_getaddress::test_tron_get_address test_msg_ton_getaddress::test_ton_get_address test_msg_zcash_orchard::test_fvk_reference_vectors None of them is a missing capture. Each entry declared a screen the test can never produce: - the five *getaddress* tests return the address ON THE WIRE. The drawn address is the *show_address* sibling, which is separately catalogued and does capture it (S3b, T3b, N2b, B4). - test_valid_metadata_returns_verified asserts the VERIFIED classification before anything is rendered. - test_fvk_reference_vectors is reference-vector arithmetic compared in memory. So the declarations were wrong, not the runs. Emptied, and each carries a line saying why it is empty and where the screen actually lives -- an empty list is already meaningful in this catalog ("refusal paths draw nothing, and their evidence is the Failure on the wire plus the ABSENCE of a ButtonRequest"), so it must read as intent rather than omission. This matters beyond tidiness. The audit is a release gate, and a gate that fails for a reason nobody can fix gets ignored -- and an ignored gate is the one that misses the real defect later. It now passes: screenshot audit: every declared screen was captured
1 parent ef34f35 commit c57bb85

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

scripts/generate-test-report.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,7 +1057,7 @@ def _arg_shown(a):
10571057
],
10581058
[
10591059
('E1', 'test_msg_ethereum_getaddress', 'test_ethereum_getaddress',
1060-
'Derive ETH address', 'Standard m/44\'/60\'/0\'/0/0 derivation. EIP-55 checksum address.', ['ETH address']),
1060+
'Derive ETH address', 'Standard m/44\'/60\'/0\'/0/0 derivation. EIP-55 checksum address. No screen: GetAddress without show_display returns on the wire and draws nothing.', []),
10611061
('E2', 'test_msg_ethereum_signtx', 'test_ethereum_signtx_nodata',
10621062
'Sign ETH transfer',
10631063
'Simple value transfer with no contract data. Device shows recipient + amount + gas.',
@@ -1193,7 +1193,7 @@ def _arg_shown(a):
11931193
],
11941194
[
11951195
('R1', 'test_msg_ripple_get_address', 'test_ripple_get_address',
1196-
'Derive XRP address', 'Standard m/44\'/144\'/0\'/0/0 derivation.', ['XRP address']),
1196+
'Derive XRP address', 'Standard m/44\'/144\'/0\'/0/0 derivation. No screen: address is returned on the wire; the display path is the show variant.', []),
11971197
('R2', 'test_msg_ripple_sign_tx', 'test_sign',
11981198
'Sign XRP payment', 'Payment with amount in drops (1 XRP = 1,000,000 drops).', ['XRP send']),
11991199
('R3', 'test_msg_ripple_sign_tx', 'test_ripple_sign_invalid_fee',
@@ -1421,8 +1421,8 @@ def _arg_shown(a):
14211421
('V1', 'test_msg_ethereum_clear_signing', 'test_valid_metadata_returns_verified',
14221422
'Valid metadata accepted',
14231423
'Correctly signed metadata blob from a loaded signer is accepted. Device shows the '
1424-
'clearsign warning (signer alias + fingerprint) then the decoded method + contract.',
1425-
['Clearsign warning (signer alias)']),
1424+
'clearsign warning (signer alias + fingerprint) then the decoded method + contract. No screen: this asserts the VERIFIED classification on the wire, before any render.',
1425+
[]),
14261426
('V2', 'test_msg_ethereum_clear_signing', 'test_wrong_key_returns_malformed',
14271427
'Wrong signing key rejected', 'Metadata signed with wrong key is rejected as malformed.', []),
14281428
('V3', 'test_msg_ethereum_clear_signing', 'test_tampered_method_returns_malformed',
@@ -1864,7 +1864,7 @@ def _arg_shown(a):
18641864
],
18651865
[
18661866
('S1', 'test_msg_solana_getaddress', 'test_solana_get_address',
1867-
'Derive Solana address', 'Full 44-character base58 address displayed on OLED.', ['Full 44-char address']),
1867+
'Derive Solana address', 'Full 44-character base58 address displayed on OLED. No screen: the drawn address is test_solana_show_address (S3b).', []),
18681868
('S2', 'test_msg_solana_getaddress', 'test_solana_different_accounts',
18691869
'Different account indices', 'Verifies different accounts produce different addresses.', []),
18701870
('S3', 'test_msg_solana_getaddress', 'test_solana_deterministic',
@@ -1992,7 +1992,7 @@ def _arg_shown(a):
19921992
],
19931993
[
19941994
('T1', 'test_msg_tron_getaddress', 'test_tron_get_address',
1995-
'Derive TRON address', 'Full 34-character base58 address.', ['Full 34-char address']),
1995+
'Derive TRON address', 'Full 34-character base58 address. No screen: the drawn address is test_tron_show_address (T3b).', []),
19961996
('T2', 'test_msg_tron_getaddress', 'test_tron_different_accounts',
19971997
'Different accounts', 'Different indices produce different addresses.', []),
19981998
('T3', 'test_msg_tron_getaddress', 'test_tron_deterministic',
@@ -2016,7 +2016,7 @@ def _arg_shown(a):
20162016
],
20172017
[
20182018
('N1', 'test_msg_ton_getaddress', 'test_ton_get_address',
2019-
'Derive TON address', 'Full 48-character base64url address.', ['Full 48-char address']),
2019+
'Derive TON address', 'Full 48-character base64url address. No screen: the drawn address is test_ton_show_address (N2b).', []),
20202020
('N2', 'test_msg_ton_getaddress', 'test_ton_different_accounts',
20212021
'Different accounts', 'Different indices produce different addresses.', []),
20222022
('N2b', 'test_msg_ton_getaddress', 'test_ton_show_address',
@@ -2081,7 +2081,7 @@ def _arg_shown(a):
20812081
],
20822082
[
20832083
('Z1', 'test_msg_zcash_orchard', 'test_fvk_reference_vectors',
2084-
'FVK reference vectors', 'FVK output matches known test vectors.', ['FVK export']),
2084+
'FVK reference vectors', 'FVK output matches known test vectors. No screen: reference-vector arithmetic, compared in memory.', []),
20852085
('Z2', 'test_msg_zcash_orchard', 'test_fvk_field_ranges',
20862086
'FVK field ranges', 'ak, nk, rivk are within valid Pallas curve ranges.', []),
20872087
('Z3', 'test_msg_zcash_orchard', 'test_fvk_consistency_across_calls',

0 commit comments

Comments
 (0)