zebra icon indicating copy to clipboard operation
zebra copied to clipboard

Tracking: run zcashd RPC tests

Open conradoplg opened this issue 1 year ago • 1 comments

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

conradoplg avatar Aug 20 '24 17:08 conradoplg

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

oxarbitrage avatar Sep 20 '24 21:09 oxarbitrage

Related: In https://github.com/ZcashFoundation/zebra/pull/9710 we added funding stream support to regtest mode, with a python test.

oxarbitrage avatar Jul 21 '25 18:07 oxarbitrage

Tests can be worked around but this is related: https://github.com/ZcashFoundation/zebra/issues/9708

oxarbitrage avatar Jul 22 '25 11:07 oxarbitrage

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

oxarbitrage avatar Jul 23 '25 15:07 oxarbitrage

Related fix: https://github.com/ZcashFoundation/zebra/issues/8781

oxarbitrage avatar Nov 07 '25 12:11 oxarbitrage

Closed by https://github.com/ZcashFoundation/zebra/pull/10076

oxarbitrage avatar Nov 11 '25 17:11 oxarbitrage