Adds the RC13 close/re-create test: the sender closes the channel and creates it again under the same id, then sends. The receiver must get the new message in causal order after the old one, with no replay of the message that predates the re-create. Backs it with a close_and_recreate command on the subprocess sender, and runs the channel lifecycle tests in the wrapper CI job -- they are marked smoke, but the smoke job ignores tests/wrappers_tests, so that job is the only place they run.
logos-messaging-interop-tests
Logos Messaging end‑to‑end (e2e) interoperability test framework for the Waku v2 protocol. It exercises multiple clients (logos-messaging-nim, js‑waku, go‑waku…) in realistic network topologies and reports results via Allure.
Setup & contribution
# Use sparse checkout since the repo has large history
git clone --depth=1 git@github.com:logos-messaging/logos-messaging-interop-tests.git
cd logos-messaging-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.pyeither • by exporting it before thepytestcall, or • by creating a.envfile 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:
- Open https://github.com/logos-messaging/logos-messaging-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.
PR tests
Every push to a pull request triggers pr_tests.yml which runs:
- Build — compiles
liblogosdelivery.so(cached by submodule commit hash). - Wrapper tests — all tests under
tests/wrappers_tests/that don't require Docker (~5 min). - Smoke tests —
pytest -m smokewith Docker nodes (~10 min).
To run the full test suite (18 shards, same as daily) on a PR, add the label full-test to the pull request. The full suite will start automatically.
On‑demand matrix against custom logos-messaging-nim versions
Use interop_tests.yml when you need to test a PR or a historical image:
- Open https://github.com/logos-messaging/logos-messaging-interop-tests/actions/workflows/interop_tests.yml.
- Press ► Run workflow and choose the branch.
- In the workflow inputs field set the
nwaku_imageyou 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 logos-messaging-nim
In the logos-messaging-nim repository itself the file .github/workflows/test_PR_image.yml pins the interop test version to SMOKE_TEST_STABLE.
To update it, move the SMOKE_TEST_STABLE tag to point to the desired commit in waku-interop-tests.
License
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.