Skip to content

waku-org/waku-interop-tests

Repository files navigation

waku-interop-tests

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.

Setup & contribution

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 the pytest call, or • by creating a .env file at the repository root.

Running tests locally

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.

Continuous Integration (CI)

Daily build on nwaku:latest

Every day the workflow nim_waku_daily.yml triggers against the image wakuorg/nwaku:latest.

To launch it manually:

  1. Open https://github.com/waku-org/waku-interop-tests/actions/workflows/nim_waku_daily.yml.
  2. Click ► Run workflow.
  3. Pick the branch you want to test (defaults to master) and press Run workflow.

On‑demand matrix against custom nwaku versions

Use interop_tests.yml when you need to test a PR or a historical image:

  1. Open https://github.com/waku-org/waku-interop-tests/actions/workflows/interop_tests.yml.
  2. Press ► Run workflow and choose the branch.
  3. In the workflow inputs field set the nwaku_image you want, e.g. wakuorg/nwaku:v0.32.0.

Viewing the results

  • 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.

Updating the CI job used from nwaku

In the nwaku repository itself the file .github/workflows/test_PR_image.yml pins the interop test version. To update it:

  1. Tag the desired commit in waku-interop-tests and push the tag
git tag vX.Y.Z
git push origin vX.Y.Z
  1. Edit test_PR_image.yml in nwaku and set ref: vX.Y.Z for the tests job.

CI job location

License

Licensed under either of:

at your option.

About

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE-v2
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Contributors 8