Ivan FB ec86cc4775
ci: fix Nim checksum mismatch when building liblogosdelivery (#188)
* Add docker mark for docker nodes tests

* Add the ports allocation tests

* trigger CI job

* update the .so

* chore: update logos-delivery-python-bindings

* bump bindings submodule for fresh CI build

* bump bindings to pull in logos-delivery #3828

* ci: pin nimble 0.22.3 to fix Nim checksum mismatch on liblogosdelivery build

The "Build liblogosdelivery.so" job ran a bare `nimble install -y` inside
the logos-delivery checkout, resolving the package's locked deps with
whatever nimble choosenim ships. That nimble recomputes the locked Nim
package checksum differently from the nimble that generated nimble.lock
(0.22.3), so the build aborted with:

  Downloaded package checksum does not correspond to that in the lock file:
    Package:           nim@v.2.2.4@r.911e0dbb...
    Expected checksum: 68bb85cb...

Mirror logos-delivery's own CI: pin nimble 0.22.3 after installing Nim, and
drop the redundant `nimble install -y` / no-op `make setup`. `make
liblogosdelivery` already resolves the locked deps via its build-deps
prerequisite (`nimble setup --localdeps`).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Bump bindings submodule to pull in logos-delivery latest master

Points vendor/logos-delivery-python-bindings at the bump-logos-delivery-master
branch (logos-delivery-python-bindings#6), which advances logos-delivery to
master 4099ff26. Merge that bindings PR before this one so the pointer lands
on bindings master.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Aya Hassan <ayahassan2877@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: AYAHASSAN287 <49167455+AYAHASSAN287@users.noreply.github.com>
2026-06-04 13:47:35 +02:00
2026-05-08 14:59:20 +08:00
2026-05-11 15:53:18 +02:00
2023-11-01 14:02:29 +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%
Shell 11%