Skip to content

zcash/integration-tests

Zcash Integration Tests

This repository hosts integration tests and associated CI infrastructure for the Zcash ecosystem. The following tests are provided:

  • Functional tests in Python of zebrad, zainod, and zallet, using regtest mode and primarily their JSON-RPC interfaces.

The functional tests and CI workflows were originally part of the zcashd codebase, with the Python test framework (and some of the tests) inherited from Bitcoin Core.

Getting Started

Running the tests locally

  • Clone the repository.
  • Build zebrad, zainod, and zallet binaries, and place them in a folder ./src/ under the repository root.

With uv (recommended)

  • uv sync
  • uv run ./qa/zcash/full_test_suite.py

Without uv

On Ubuntu or Debian-based distributions:

  • sudo apt-get install python3-zmq python3-base58 python3-toml
  • ./qa/zcash/full_test_suite.py

On macOS or other platforms:

  • python3 -m venv venv
  • . venv/bin/activate
  • pip3 install pyzmq base58 toml
  • ./qa/zcash/full_test_suite.py

See [the README for the functional tests][qa/README.md] for additional usage information.

Writing tests

  • For new tests:
    • Add a new file NEW_TEST.py to the qa/rpc-tests folder.
    • Update qa/pull-tester/rpc-tests.py, adding a new entry 'NEW_TEST.py', to the BASE_SCRIPTS array (either at the end of the array, or in the appropriate position based on how long the test takes to run).
  • Write your test (either new from scratch, or making changes to an existing test as appropriate).
  • Open a pull request with your changes.

Participation in the Zcash project is subject to a Code of Conduct.

License

For license information see the file COPYING.

About

Integration testing for the Zcash ecosystem

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors