139 Commits

Author SHA1 Message Date
Aya Hassan
a399681a63 Add S03 2026-05-09 20:37:56 +02:00
Aya Hassan
dad5e27a61 add S01 second scenario 2026-05-09 20:32:47 +02:00
Aya Hassan
3b588f878d Add S01 2026-05-07 22:27:39 +02:00
Aya Hassan
4ad51bf619 mark the waku tests as docker_required 2026-05-07 15:09:39 +02:00
Aya Hassan
892ff96fb8 enhance comment on S26 test 2026-05-07 13:58:44 +02:00
Aya Hassan
ccba9ce708 Add assert_event_invariants 2026-05-07 13:43:29 +02:00
Aya Hassan
5d0c2830e1 fix the timeout review comment 2026-05-07 13:34:57 +02:00
Aya Hassan
505d24ff39 Address review comment about delay constant 2026-05-07 13:09:27 +02:00
Aya Hassan
30c426f613 event collector fix 2026-05-07 12:45:17 +02:00
Aya Hassan
92aeeaa378 cleanup unused lines 2026-05-07 12:31:41 +02:00
Aya Hassan
bf1731805b address review comments about xfail 2026-05-07 12:13:23 +02:00
Aya Hassan
2de9b03136 adding xfail mark for failed tests 2026-05-07 11:59:20 +02:00
Aya Hassan
c34148b855 First set of review comments 2026-05-07 11:21:36 +02:00
Aya Hassan
c6b5a02a41 remove the /true from yml to allow errors to exist 2026-05-05 10:05:00 +02:00
Aya Hassan
55f9612578 fix portsshift option 2026-05-04 20:34:58 +02:00
Aya Hassan
8e639c1d2a Modify S20 2026-05-04 17:12:18 +02:00
Aya Hassan
b415221859 Fix the ports conflict 2026-05-04 15:10:48 +02:00
Aya Hassan
b0165cef9f Modify the PR 2026-05-04 14:21:10 +02:00
Aya Hassan
7d5fbea89e commenting lightpush 2026-05-04 12:48:14 +02:00
Aya Hassan
71bea94107 Fix review comments 2026-05-01 20:59:56 +02:00
Aya Hassan
510b2adb16 comment the skipped tests 2026-05-01 20:38:09 +02:00
Aya Hassan
db67d85127 FIx flaky tests 2026-05-01 20:14:56 +02:00
Aya Hassan
c73bdd6040 Merge branch 'temp_bindings_branch' into E2E_part2 2026-05-01 18:30:30 +02:00
Aya Hassan
507ddfab04 rename test file 2026-05-01 18:23:04 +02:00
Aya Hassan
ee6816c507 fix xfail syntax error 2026-05-01 14:51:24 +02:00
Aya Hassan
882b186f3b Ignore s20 / s31 for errors 2026-05-01 00:48:42 +02:00
Aya Hassan
9191be1da9 fix s26 2026-04-30 23:35:10 +02:00
Aya Hassan
5d1614f93b Ignore S19 2026-04-30 19:02:57 +02:00
Egor Rachkovskii
f219c807d5
Add relay-to-lightpush fallback integration tests (S08/S09) (#180)
Co-authored-by: Egor Rachkovskii <egorrachkovskii@status.im>
2026-04-30 17:05:06 +01:00
Egor Rachkovskii
a85223a79c
Add S02/S12 send API tests and PR CI pipeline (#174)
* Add tests for auto-subscribe on first send and isolated sender with no peers

* Add PR CI workflow with tiered test strategy

- pr_tests.yml: build job with cache, wrapper-tests, smoke-tests,
  and label-triggered full-suite
- test_common.yml: add deploy_allure/send_discord inputs so PR runs
  skip reporting side effects
- Add docker_required marker to S19 (needs Docker, excluded from
  wrapper-only CI job)
- Register docker_required marker in pytest.ini

* Document PR CI test workflows in README

* Refine PR CI test strategy:
- Exclude `docker_required` tests from smoke set in `pr_tests.yml`.
- Add `wait_for_connected` helper for connection state checks.
- Update S19 test to dynamically create and clean up the store node setup.
- General simplifications and improved test stability.

* Add `wait_for_connected` assertion to ensure sender connection state before propagation test

* Refine tests and CI workflows:
- Replace `ERROR_TIMEOUT_S` with `ERROR_AFTER_CACHE_EXPIRY_TIMEOUT_S` in `test_send_e2e.py`.
- Adjust timeout assertion for better clarity and accuracy.
- Update `pr_tests.yml` to add retries (`--reruns`) and ignore wrapper tests in smoke tests.
- Change `test_common.yml` default Discord reporting to `false`.

* Normalize `portsshift` to `portsShift` in `test_send_e2e.py` configuration definitions.

---------

Co-authored-by: Egor Rachkovskii <egorrachkovskii@status.im>
2026-04-30 16:15:50 +01:00
Aya Hassan
16bef0354b Fix some tests 2026-04-30 13:30:18 +02:00
Egor Rachkovskii
df073119ba
Add S07 and S10 send API tests with event invariants helper (#176)
* Add `assert_event_invariants` to enforce per-request event constraints and integrate into relevant tests

* Integrate `assert_event_invariants` into edge and store tests

* Remove redundant comments from `test_send_e2e.py`

---------

Co-authored-by: Egor Rachkovskii <egorrachkovskii@status.im>
2026-04-29 13:21:56 +01:00
Egor Rachkovskii
4d4bd535c4
Improve wait_for_event loop logic and add assert_event_invariants helper (#178)
- Refactored the `wait_for_event` function for clarity and to ensure proper deadline handling within the loop.
- Introduced `assert_event_invariants` to validate per-request event properties, enforcing invariants like correct `requestId`, no duplicate terminal events, and proper timing between `Propagated` and `Sent`.
- Added tests for `assert_event_invariants` enforcement in `S14` and `S15` lightpush scenarios.

Co-authored-by: Egor Rachkovskii <egorrachkovskii@status.im>
2026-04-28 17:44:27 +01:00
Aya Hassan
8c7979ce67 Add S31 2026-04-27 10:46:47 +02:00
Aya Hassan
f6a558b8e7 Add S30 2026-04-27 10:42:46 +02:00
Aya Hassan
fb957dd8e8 Add S26 2026-04-26 18:10:13 +02:00
Aya Hassan
9e11ccb6bd Adding S24 2026-04-26 16:49:41 +02:00
Aya Hassan
572b50c0b1 Adding S22/S23 2026-04-25 19:18:53 +02:00
Aya Hassan
91a9fc55eb Merge branch 'master' into temp_bindings_branch 2026-04-25 16:29:47 +02:00
Aya Hassan
e27d64a1a4 Adding S21 2026-04-21 16:46:00 +02:00
Aya Hassan
34cfb80b5f Modify S19 test 2026-04-21 13:48:24 +02:00
Egor Rachkovskii
df69919a7b
Add S06 relay-only test and fix wrapper helpers (#173)
* - Add S06 relay-only test case for testing message propagation without a store.
- Update `wrapper_helpers` for clearer event type handling and type annotations (`Optional[...]` usage).
- Simplify `get_node_multiaddr` to retrieve addresses via `get_node_info_raw`.
- Refactor `wrappers_manager` to adjust bindings path to `vendor` directory and add `get_node_info_raw` method.
- Update `.gitignore` to exclude `store.sqlite3*`.

* Refactor S06 relay-only test: replace try-finally blocks with context managers for clarity and conciseness.

* Migrate S06 relay-only test to `test_send_e2e.py` and refactor with `StepsCommon` for reusability.

---------

Co-authored-by: Egor Rachkovskii <egorrachkovskii@status.im>
2026-04-20 14:33:42 +03:00
Aya Hassan
73884ee8a5 add S19 2026-04-19 22:01:31 +02:00
Aya Hassan
3d7a92ca4f Add s17 positive / negative scenarios 2026-04-19 20:17:58 +02:00
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
Aya Hassan
93f2d2a679 Merge remote-tracking branch 'origin/master' into temp_bindings_branch 2026-04-16 16:06:24 +02:00
AYAHASSAN287
5ca3ec6fe9
Add logos-delivery-python-bindings submodule (#159)
* Add logos-delivery-python-bindings submodule

* Adding wrapper manager modifications

* Add unit test for wrappers

* ignore third paty

* Ignore third party

* Add thin wrapper layer to be used in tests

* Add last API

* Add needed helpers

* basic  tests added

* Fix minor points

* Add dependency to the requirements

* Fix the yml file

* add debug info

* Add logos-delivery submodule

* Add logos-delivery-python-bindings submodule

* Remove old logos-delivery submodule

* fix the import path issue

* add cffi

* add .so build step

* add nim

* remove nimble

* fix the nimble error

* Add rest of libraries

* Fix the nim version issue

* Add nimble install command

* Make real setup for the nimple

* change nim version

* Ignore vendor files

* fix for review points

* remove stubs file

* merge master & add comment about wrapper_manager usage
2026-04-16 16:04:12 +02:00
Aya Hassan
2580749e17 Add temp changes 2026-04-16 13:51:15 +02:00
Aya Hassan
f3f4cf8a64 add test s17 2026-04-14 19:43:20 +02:00
Egor Rachkovskii
639dffc505
Fix nim waku daily failures (#169)
* Add REST API traffic bypass for network conditions manipulation

- Introduced methods to apply packet loss only to P2P traffic, excluding REST API traffic.
- Simplified test cases to leverage new differentiated packet loss handling.
- Removed unused and legacy metrics/tests for cleaner configuration and coverage.

* Refactor network conditions setup to streamline command execution

* Pin priomap so libp2p traffic actually hits netem

The default prio qdisc priomap routes SO_PRIORITY 6 and 7 to band 0,
which is our REST bypass class 1:1. libp2p/gossipsub packets set a high
SO_PRIORITY on their sockets, so they were silently escaping the netem
impairment via the priomap rather than through the u32 filter. The
result: test_relay_packet_loss_correlated_vs_uncorrelated became green
by accident because no loss was ever applied to relay traffic.

Forcing priomap to 1 1 1 1 ... on all 16 slots routes every SO_PRIORITY
value to band 1 (netem). The u32 filter remains the only path to 1:1,
so REST stays isolated and libp2p now takes the configured loss.

Verified in alpine netns: with SO_PRIORITY=6, 50 packets to a non-REST
port ended up in 1:1 under the old rules (0 drops); with the forced
priomap they land in 1:2 and see the expected ~50% drop rate.

* Refactor P2P traffic loss handling; isolate REST API traffic

- Added `_p2p_iface` to dynamically detect libp2p interface tied to the Waku network.
- Introduced `add_packet_loss_p2p_only` and `add_packet_loss_correlated_p2p_only` for targeted packet loss on libp2p traffic.
- Replaced REST API traffic bypass logic with simplified P2P interface-based tc rules.
- Updated tests to use `clear_p2p` for cleanup, ensuring REST traffic remains unaffected.

---------

Co-authored-by: Egor Rachkovskii <egorrachkovskii@status.im>
2026-04-14 14:25:36 +01:00