Replies: 1 comment
|
Closing the loop on this: all 25 tests listed here are active again on #10461.
The last two were the ones expected to need upstream support. They turned out to be doable in Zebra: the note-encryption test vectors fix Worth noting the two tests still discriminate rather than passing vacuously: the same construction yields In the end none of groups 1-5 needed librustzcash changes. This can be closed once #10461 merges. |
Uh oh!
There was an error while loading. Please reload this page.
Summary
As part of the Transaction type migration from enum to
zcash_primitivesnewtype wrapper (#10461), 27 tests were marked#[ignore]because they require mutatingTransactioninternals that the newtype wrapper does not expose. No tests were deleted.The underlying verification logic is unchanged — only the test setup code (which constructs or mutates transactions to create specific test scenarios) is blocked.
Ignored Tests by Capability Needed
1.
outputs_mut()/inputs_mut()— 8 testsThese need the ability to replace specific transparent outputs/inputs with test-crafted scripts (e.g., OP_RETURN, bare multisig). Restorable by adding
with_transparent_output_at(index, output)to Transaction.mempool_reject_non_standardzebrad/.../vector.rs:1190mempool_accept_standard_op_returnzebrad/.../vector.rs:1198mempool_reject_op_return_too_largezebrad/.../vector.rs:1206mempool_reject_multi_op_returnzebrad/.../vector.rs:1214mempool_reject_non_standard_scriptpubkeyzebrad/.../vector.rs:1222mempool_reject_bare_multisigzebrad/.../vector.rs:1230mempool_reject_large_multisigzebrad/.../vector.rs:1238mempool_reject_large_scriptsigzebrad/.../vector.rs:12462.
insert_fake_orchard_shielded_data— 5 testsThese construct synthetic orchard bundles for testing. Restorable by adding a builder method in librustzcash or by constructing the data via byte-level serialization.
v5_coinbase_transaction_without_enable_spends_flag_passes_validationzebra-consensus/.../tests.rs:1111v5_coinbase_transaction_with_enable_spends_flag_fails_validationzebra-consensus/.../tests.rs:1118coinbase_outputs_are_decryptable_for_fake_v5_blockszebra-consensus/.../tests.rs:2780shielded_outputs_are_not_decryptable_for_fake_v5_blockszebra-consensus/.../tests.rs:2788mempool_skip_accepts_block_with_garbage_orchard_proofszebra-consensus/.../tests.rs:29333.
expiry_height_mut/update_network_upgrade— 4 testsThese mutate the expiry height or network upgrade field after construction. Restorable by adding a
with_expiry_height(height)builder method to Transaction.v5_coinbase_transaction_expiry_heightzebra-consensus/.../tests.rs:1758v5_consensus_branch_idszebra-consensus/.../tests.rs:2343mempool_expired_basiczebrad/.../vectors.rs:247mempool_transaction_expirationzebrad/.../fake_peer_set.rs:3354. Construct V4 with joinsplit data — 4 tests
These build V4 transactions with specific sprout JoinSplit data. Restorable via byte-level serialization (pattern already established in
build_v4_tx_with_joinsplit_datain the anchors tests).v4_transaction_with_conflicting_sprout_nullifier_inside_joinsplit_is_rejectedzebra-consensus/.../tests.rs:1639v4_transaction_with_conflicting_sprout_nullifier_across_joinsplits_is_rejectedzebra-consensus/.../tests.rs:1647v4_with_modified_joinsplit_is_rejectedzebra-consensus/.../tests.rs:2073v5_with_duplicate_orchard_actionzebra-consensus/.../tests.rs:23355. Mutate shielded data (sapling/orchard) — 4 tests (+ 2 from group 4)
These modify sapling/orchard shielded data after construction for negative testing.
v5_transaction_with_orchard_actions_has_inputs_and_outputszebra-consensus/.../tests.rs:82v5_transaction_with_orchard_actions_has_flagszebra-consensus/.../tests.rs:92v4_with_duplicate_sapling_spendszebra-consensus/.../tests.rs:2159v5_with_duplicate_sapling_spendszebra-consensus/.../tests.rs:2294Restoration Paths (in order of feasibility)
outputs_mut/inputs_muttests (8): Addwith_transparent_output_at(index, output)to Transaction — straightforward, similar to existingwith_transparent_inputs().expiry_height_muttests (4): Addwith_expiry_height(height)builder — straightforward viafrom_partsreconstruction.build_v4_tx_with_joinsplit_data).orchard::testingmodule.map_authorizationor builder patterns in librustzcash.Groups 1-3 (16 tests) can be restored entirely within Zebra. Groups 4-5 (9 tests, including 2 that overlap with group 4) likely need upstream librustzcash support.
All reactions