Egor Rachkovskii 7d5af004c6 ci: run the nightly suite against our own node image
The nightly full run installed Nim and built liblogosdelivery.so in every
shard, only to collect tests/wrappers_tests, which now live in the core
repository. Skips that directory and drops the build steps, so the run is
python + docker.

Points node1/node2/additional_nodes and the self-built nodes in rest_flags
and metrics at quay.io/wakuorg/nwaku-pr:nightly, so the suite finally
exercises our build. sharding keeps upstream nodes through UPSTREAM_NWAKU:
setup_nwaku_relay_nodes mixes them with our main node, which is the only
compatibility check left in the suite.

Drops the RLN shard, whose class is skipped in full, and stops ignoring
test_rln.py in the sharded run so the tests are collected wherever they
land once that skip goes away.

For the measurement window: reruns is an input pinned to 0 for the nightly
so flakes stay visible, every shard writes a JUnit report, and the digest
of each image is printed before the tests start.

Wrapper coverage moves entirely to pr_tests.yml, which was missing
test_channel_lifecycle.py and the docker_required tests; both are added
there.
2026-08-06 19:00:55 +01:00
2026-05-08 14:59:20 +08:00
2026-07-14 19:39:09 +02:00
2026-07-14 19:39:09 +02:00
2023-11-01 14:02:29 +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 the logos-delivery nightly image

Every day the workflow nim_waku_daily.yml triggers against quay.io/wakuorg/nwaku-pr:nightly, the image built from logos-delivery master by that repository's pre-release workflow. It is scheduled after the image is published.

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/, including the docker_required ones (~5 min).
  3. Smoke testspytest -m smoke with Docker nodes (~10 min).

The daily and full-suite runs no longer build liblogosdelivery.so: they skip tests/wrappers_tests/, which runs in the PR tests above. Most of that suite is also mirrored in the logos-delivery repository (tests-e2e/).

To run the full test suite (17 shards) on a PR, add the label full-test to the pull request. Note it runs against wakuorg/nwaku:latest, unlike the daily run, which uses our own image. 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%