Files
matrix-rust-sdk/testing/matrix-sdk-integration-testing
Benjamin Bouvier f00f6103c8 fix(test): bump the wait time between room-info diffs in integration testing
`test_room_notification_count` started to intermittently fail on main,
because the computation of unread counts has moved from the sliding sync
processing to the event cache. As a result, new irrelevant RoomInfo
updates (related to the unread counts) can happen, and they might happen
quickly enough that the server reponse for sending an event happens
after 2 seconds (remember, we need to factor in the time to do the e2ee
key exchange, and so on and so forth).

Bumping the time between two RoomInfo updates should be sufficient to
avoid the intermittent failure.
2026-03-16 15:50:34 +01:00
..

Matrix SDK integration test

This set of tests requires a Synapse instance, and it runs the tests from this directory against this real-world server. As a result, these tests depend on the load of the machine/server, and as such they might be more sensitive to timing issues than other tests in the code base.

Requirements

This requires a synapse backend with a configuration patched for CI. You can get it up and running with docker compose via:

docker compose -f assets/docker-compose.yml up -d
docker compose -f assets/docker-compose.yml logs --tail 100 -f

Note that this works also with podman compose.

Patches You can see the patches we do to configuration (namely activate registration and resetting rate limits, enable a few experimental features), check out what assets/ci-start.sh changes.

Running

The integration tests can be run with cargo test or cargo nextest run.

The integration tests expect the environment variables HOMESERVER_URL to be the HTTP URL to access the synapse server and HOMESERVER_DOMAIN to be set to the domain configured in that server. These variables are set to a default value that matches the default docker-compose.yml template; if you haven't touched it, you don't need to manually set those environment variables.

Maintenance

Delete all instance data

To stop the services and drop the database of your docker-compose cluster, run:

docker compose -f assets/docker-compose.yml down --volumes --remove-orphans -t 0

Rebuild the synapse image

If the Synapse image has been updated in version, you may need to rebuild the custom Synapse image using the following:

docker compose -f assets/docker-compose.yml build --pull synapse

Then restart the synapse service:

docker compose -f assets/docker-compose.yml up -d synapse