Roman Zajic 44dbf628e4
chore: Refactor RLN tests (#164)
* test: uncomment RLN tests

* test: single node registration

* test: demo could not generate rln-v2 proof

* fix: update env file example

* fix: update images

* fix: temp pr for testing

* fix: chain id optional and lock v0.38.0

* feat: fix automatic chain ID

* fix: uncomment on chain tests 3208 resolved

* fix: improve assertions

* fix: RLN ready guard

* fix: workaround to wait for RLN

* fix: lightpush test assertion

* fix: reuse creds for the second test

* chore: delay for removing flaky behaviuor

* WIP on chore-refactor-rln-tests

fix: revert changes to docker manager

* fix: undo chore: delay for removing flaky behaviuor

* fix: check for RLN state only when required

* chore: test workflow for RLN

* fix: open permissions

* fix: silent chmod by default

* fix: remove unnecessary code

* fix: reduce CI script to RLN only

* fix: add missing fi

* fix: sync wf with master

* fix: test wf file

* fix: undefined rln creds set

* fix: run together with other tests

* fix: remove test workflows
- reset env file

* fix: sync wrappers manager

* fix: clean up redundant debug lines

---------

Co-authored-by: Darshan <35736874+darshankabariya@users.noreply.github.com>
Co-authored-by: darshankabariya <darshan@status.im>
2026-04-18 08:34:20 +08:00
2025-09-23 09:38:51 +00:00
2026-04-18 08:34:20 +08:00
2026-04-18 08:34:20 +08:00
2023-11-01 14:02:29 +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.

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 87.3%
Shell 12.7%