mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-08-26 07:51:09 +00:00
Closes the RC10 story the previous commit set up: B keeps sending until one of its messages carries the repair request, A rebroadcasts m1, and both messages land in causal order. Nothing else in this repo exercises SDS-R end to end. The test spends minutes waiting for T_req to elapse, so it gets a new slow marker and the PR selection deselects it. That leaves it with no automatic runner, which the README now says out loud. The interop copy deferred the receiver's stop_and_destroy through a finalizer to work around a teardown segfault; #4109 fixed that, and the test tears the node down in a with-block like its neighbours.
1.6 KiB
1.6 KiB
tests-e2e — logos-delivery API/e2e tests (Python)
End-to-end tests for liblogosdelivery, driven through the Python bindings (C-FFI).
Migrated from logos-delivery-interop-tests (the wrapper / send-API suite).
Layout
src/— test framework (node wrappers, steps, helpers)tests/wrappers_tests/— the API/e2e scenario tests (test_s02…s31)vendor/logos-delivery-python-bindings/waku/wrapper.py— CFFI binding (NodeWrapper); itdlopens../lib/liblogosdelivery.so
Run locally
# 1. Build the shared library and place it where the binding looks for it
./tests-e2e/scripts/prepare_lib.sh
# 2. Python env + deps
python -m venv .venv && source .venv/bin/activate
pip install -r tests-e2e/requirements.txt
# 3. Run (from tests-e2e/)
cd tests-e2e
pytest tests/wrappers_tests -m "not docker_required and not slow" # 60 pure-binding tests, the CI selection
pytest tests/wrappers_tests -m docker_required # 5 tests that also need a Docker nwaku peer (S11/S19/S20/S25/S31)
pytest tests/wrappers_tests -m slow # 1 SDS-R repair test, minutes long
CI
.github/workflows/e2e-api-tests.yml (called from ci.yml, needs: build) downloads the
liblogosdelivery artifact produced by the build job and runs the non-docker subset on every PR —
so a protocol change and its e2e test land in the same PR.
The slow test is deselected there and there is no scheduled e2e job, so nothing runs it
automatically; run it by hand when touching SDS-R.