Skip to content

Switch to zebrad testing#2432

Draft
zancas wants to merge 5 commits into
devfrom
switch_to_zebrad_testing
Draft

Switch to zebrad testing#2432
zancas wants to merge 5 commits into
devfrom
switch_to_zebrad_testing

Conversation

@zancas

@zancas zancas commented Jul 3, 2026

Copy link
Copy Markdown
Member

Fixes:

zancas and others added 5 commits July 2, 2026 23:02
Pin zcash_local_net and zingo_test_vectors to the head of
zingolabs/infrastructure#276, which prunes ~130 transitive
dependencies (zebra-*, rocksdb, jsonrpsee, bindgen chains) and
introduces the zingo-consensus crate.

That branch drops the zcash_protocol::PoolType re-export and speaks
its own zingo_consensus::{MinerPool, ActivationHeights} types, which
are distinct from the zingo_common_components types zingolib uses.
Keep the scenario API on the wallet-side vocabulary and convert only
at the zcash_local_net boundary: zingolib_testutils::scenarios gains
private converters plus a public validator_activation_heights()
helper, now used at every call site in zingolib_testutils and
libtonode-tests. The reverse heights conversion asserts nu6_3 is
unset, since the wallet-side type cannot represent it.

Add CONTEXT.md capturing the MinerPool/PoolType and dual
ActivationHeights terminology boundary.

Re-pin to a release tag once infrastructure#276 merges.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
cargo-make [env] entries unconditionally clobber shell-exported
variables, so the help text's documented override
(ZINGOLIB_NEXTEST_FILTER='...' makers container-test) never worked.
Wrap the ZINGOLIB_NEXTEST_* knobs in env_not_set conditions so a
caller-exported value wins and the Makefile default applies otherwise.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ombo

Drop the test_lwd_zcashd pin on zingolib_testutils so libtonode-tests
builds with the default network_combo (zainod+zebrad) and the suite no
longer requires a zcashd binary. Another combo can still be selected
ad hoc, e.g. --features zingolib_testutils/test_lwd_zcashd.

Correct the two stale ignore reasons: zebrad does mine to orchard, so
mine_to_orchard's real blocker is its direct-coinbase balance
assertions (under zebrad the faucet's rewards are shielded and partly
offloaded by zebrad_shielded_funds); only Sapling mining is
unsupported by zebrad.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Source zebrad 5.2.0 from the official zfnd/zebra image as a downloader
stage (the same pattern zaino's test container uses) and symlink it
into test_binaries/bins alongside the other managed binaries, so the
default zainod+zebrad network combo can launch inside the container.
ZEBRA_VERSION joins .env.testing-artifacts, the build args, and the
image-tag hash. Bump zainod to 0.4.1 and align the Dockerfile ARG
defaults with the env file.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… scenarios

Zebrad rejects the blocks it is asked to produce while a configured
network upgrade is still in the future of the block-template height,
so the all-at-height-1 schedule of
zingo_common_components::ActivationHeights::default() (which zcashd
accepts) can never advance a zebrad chain past genesis: every test
died with 'Failed to advance chain to height 1'.

Add scenarios::default_test_activation_heights(), converting
zcash_local_net's own validated regtest fixture (pre-NU5 at height 1,
NU5 and later staggered), and use it in the *_default scenario
helpers and every libtonode launch-path call site. The zaino test
harness drives the same zcash_local_net zebrad code successfully with
an equivalent staggered schedule.

unfunded_mobileclient keeps the old default (external zingo-mobile
surface, zcashd-bound), and the tests that hand-build staggered
schedules are already zebrad-compatible.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@zancas zancas marked this pull request as draft July 3, 2026 07:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant