AYAHASSAN287 ec118816fa Channel API RC13 wrapper test (#212)
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.
2026-08-12 20:57:35 +03:00
2026-05-08 14:59:20 +08:00
2026-08-12 20:57:35 +03:00
2026-07-14 19:39:09 +02:00
2026-05-11 15:53:18 +02:00
2026-05-11 15:53:18 +02:00

logos-messaging-interop-tests

Logos Messaging endtoend (e2e) interoperability test framework for the Waku v2 protocol. It exercises multiple clients (logos-messaging-nim, jswaku, gowaku…) 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.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/logos-messaging/logos-messaging-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.

PR tests

Every push to a pull request triggers pr_tests.yml which runs:

  1. Build — compiles liblogosdelivery.so (cached by submodule commit hash).
  2. Wrapper tests — all tests under tests/wrappers_tests/ that don't require Docker (~5 min).
  3. Smoke testspytest -m smoke with 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.

Ondemand matrix against custom logos-messaging-nim versions

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

  1. Open https://github.com/logos-messaging/logos-messaging-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 / testreports 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:

at your option.

Languages
Python 89.9%
Shell 10.1%