zebra
zebra copied to clipboard
Tracking: run zcashd RPC tests
Describe the issue or request
zcash has a RPC suite which we should run against zebrad to check for possible inconsistencies between the nodes. Most of them might fail due to unimplemented wallet RPCs, but this should still be useful
We can split these sub tickets if needed:
- [ ] https://github.com/ZcashFoundation/zebra/issues/8779
- [x] #8834
- [x] #8836
- [x] #8858
- [ ] Map out the failing tests and investigate to sort out between expected failures (unimplemented RPCs) or unexpected (bugs?). Create a tracking issue and sub issues for all of them that we want to address.
- [ ] Add the tests to CI, considering which are currently expected to pass or fail, so that tests that pass keep on passing in the future, and so that we can proceed to moving the "expected fails" to "expected passes" as we work on them.
Some context from str4d:
The node binary start / stop / restart functions would need to be adapted to zebrad, as would any startup config options that tests rely on (such as being able to configure precisely when NUs activate on regtest)
But the entire rest of the tests should either pass as-is, fail because of missing RPCs (e.g. missing wallet functionality), or fail due to discrepancies in behaviour that should be fixed in zebrad
I expect that right now most of the tests rely on the existence of a wallet, but that shouldn't have stopped ZF from porting the RPC tests to use as a "compatability checklist" (getting individual tests to pass and then pinning them as passing in CI, while allowing most tests to fail) that can be ratcheted up over time
the main body is in https://github.com/zcash/zcash/tree/master/qa/rpc-tests; that's what you want to port over. https://github.com/zcash/zcash/blob/master/qa/pull-tester/rpc-tests.py is the runner, and in particular the RPC tests listed in EXTENDED_SCRIPTS are tests we have never run on zcashd and are likely long-bitrotted; don't bother porting over those unless you think they'd be useful to get going.
Expected Behavior
No response
Current Behavior
No response
Possible Solution
No response
Additional Information/Context
No response
Is this happening on PRs?
No response
Is this happening on the main branch?
No response
Spreadsheet with all the tests zcashd has and additional information for possible implementation in zebra:
https://docs.google.com/spreadsheets/d/1F-KZuhGHvecpjzQ9PFeMLh8cJHaP8BxI3Kg0IWdBBuU
Moved from https://github.com/ZcashFoundation/zebra/issues/8779
Related: In https://github.com/ZcashFoundation/zebra/pull/9710 we added funding stream support to regtest mode, with a python test.
Tests can be worked around but this is related: https://github.com/ZcashFoundation/zebra/issues/9708
I created 4 new tickets related to this tracking issue:
- https://github.com/ZcashFoundation/zebra/issues/9720
- https://github.com/ZcashFoundation/zebra/issues/9721
- https://github.com/ZcashFoundation/zebra/issues/9722
- https://github.com/ZcashFoundation/zebra/issues/9723
Additionally, we found also:
- https://github.com/ZcashFoundation/zebra/issues/9726
Related fix: https://github.com/ZcashFoundation/zebra/issues/8781
Closed by https://github.com/ZcashFoundation/zebra/pull/10076