Skip to content

Commit 9c39820

Browse files
committed
fix(report): require Solana LUT coverage from 7.16
1 parent 004e33a commit 9c39820

2 files changed

Lines changed: 16 additions & 8 deletions

File tree

scripts/generate-test-report.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2024,7 +2024,8 @@ def _arg_shown(a):
20242024
# KKSOLSW1 -- the answer to S24. A v0 tx whose accounts live in a
20252025
# lookup table cannot be resolved on-device, so today the device signs
20262026
# accounts it never showed. These four are the additive invariant
2027-
# (section F) restated for Solana, and R-4.1 of SRS-7.15.
2027+
# (section F) restated for Solana, and R-4.1 of SRS-7.15. The
2028+
# protocol work first ships in firmware 7.16.
20282029
('S26', 'test_msg_solana_lut_attestation',
20292030
'test_attested_accounts_are_shown_and_blind_sign_still_follows',
20302031
'Attested lookup-table accounts are shown, and the blind-sign warning survives',
@@ -2060,7 +2061,7 @@ def _arg_shown(a):
20602061
'With no signer loaded a well-formed attestation is inert',
20612062
'Trust is opt-in and per-session. A perfectly valid attestation from a provider the '
20622063
'user never loaded verifies against nothing and renders nothing, which is the '
2063-
'property that keeps 7.15 safe without any key-management programme.',
2064+
'property that keeps sessions without a loaded provider safe.',
20642065
[]),
20652066
]),
20662067

@@ -3292,7 +3293,7 @@ def screenshot_test_list(fw_version):
32923293
# R-4.1. Gated on requires_message('LoadClearsignSigner'), so if provider
32933294
# loading regressed, all four would skip and the report would certify a
32943295
# feature it never exercised.
3295-
'test_msg_solana_lut_attestation': '7.15.0',
3296+
'test_msg_solana_lut_attestation': '7.16.0',
32963297
}
32973298

32983299
# These modules are mandatory only on the multi-chain product. Their handlers

tests/test_report_variant_validation.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
SPEC.loader.exec_module(REPORT)
1212

1313

14-
def catalog_results_with_solana_lut_skipped():
14+
def catalog_results_with_solana_lut_skipped(fw_version):
1515
results = {}
1616
for _, _, min_fw, _, _, tests in REPORT.SECTIONS:
17-
if not REPORT.ver_ge('7.15.0', min_fw):
17+
if not REPORT.ver_ge(fw_version, min_fw):
1818
continue
1919
for _, module, method, _, _, _ in tests:
2020
results['%s::%s' % (module, method)] = 'pass'
@@ -26,17 +26,24 @@ def catalog_results_with_solana_lut_skipped():
2626

2727
class TestReportVariantValidation(unittest.TestCase):
2828

29-
def test_full_product_requires_solana_lut_coverage(self):
29+
def test_full_715_accepts_pre_release_solana_lut_skip(self):
30+
result = REPORT.validate_junit(
31+
'7.15.0', catalog_results_with_solana_lut_skipped('7.15.0'),
32+
'full')
33+
self.assertEqual((True, []), result)
34+
35+
def test_full_716_requires_solana_lut_coverage(self):
3036
ok, failures = REPORT.validate_junit(
31-
'7.15.0', catalog_results_with_solana_lut_skipped(), 'full')
37+
'7.16.0', catalog_results_with_solana_lut_skipped('7.16.0'),
38+
'full')
3239
self.assertFalse(ok)
3340
self.assertEqual(4, len(failures))
3441
self.assertTrue(all(item[3] == 'skipped-but-required'
3542
for item in failures))
3643

3744
def test_bitcoin_only_accepts_absent_solana_lut_handlers(self):
3845
result = REPORT.validate_junit(
39-
'7.15.0', catalog_results_with_solana_lut_skipped(),
46+
'7.16.0', catalog_results_with_solana_lut_skipped('7.16.0'),
4047
'bitcoin-only')
4148
self.assertEqual((True, []), result)
4249

0 commit comments

Comments
 (0)