Waku end‑to‑end (e2e) interoperability test framework for the Waku v2 protocol. It exercises multiple clients (nwaku, js‑waku, go‑waku…) in realistic network topologies and reports results via Allure.
git clone git@github.com:waku-org/waku-interop-tests.git
cd waku-interop-tests
# create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate
# install python dependencies + prepare git hooks
pip install -r requirements.txt
pre-commit install
Tip – You can override any default variable defined in
src/env_vars.py
either • by exporting it before thepytest
call, or • by creating a.env
file at the repository root.
Run one specific test:
pytest -k test_unsubscribe_from_some_content_topics
Run an entire test class / suite:
pytest -k TestRelaySubscribe
All usual pytest selectors (-k
, -m
, -q
, etc.) work.
Waku logs can be found in log/docker
folder while test log can be seen either in the terminal or in the log
folder.
Every day the workflow nim_waku_daily.yml triggers against the image wakuorg/nwaku:latest
.
To launch it manually:
- Open https://github.com/waku-org/waku-interop-tests/actions/workflows/nim_waku_daily.yml.
- Click ► Run workflow.
- Pick the branch you want to test (defaults to
master
) and press Run workflow.
Use interop_tests.yml when you need to test a PR or a historical image:
- Open https://github.com/waku-org/waku-interop-tests/actions/workflows/interop_tests.yml.
- Press ► Run workflow and choose the branch.
- In the workflow inputs field set the
nwaku_image
you want, e.g.wakuorg/nwaku:v0.32.0
.
- When the job finishes GitHub will display an Allure Report link in the run summary.
- The bot also posts the same link in the Waku / test‑reports Discord channel.
In the nwaku repository itself the file .github/workflows/test_PR_image.yml
pins the interop test version.
To update it:
- Tag the desired commit in
waku-interop-tests
and push the tag
git tag vX.Y.Z
git push origin vX.Y.Z
- Edit
test_PR_image.yml
in nwaku and setref: vX.Y.Z
for thetests
job.
Licensed under either of:
- MIT License – see LICENSE-MIT or http://opensource.org/licenses/MIT
- Apache License 2.0 – see LICENSE-APACHE-v2 or http://www.apache.org/licenses/LICENSE-2.0
at your option.