Files
firezone/rust/connection-tests/README.md
Thomas Eizinger 11ada00617 feat: introduce firezone-connection with basic test suite (#2965)
Initial version of the `firezone-connection` crate. To begin with, we
only establish a connection in a LAN, i.e. no hole-punching, no STUN or
TURN servers, just host candidates. As such, a lot of this PR is just
scaffolding for setting up the test environment and the actual
`ConnectionPool` implementation.

For the curious, I've left some TODOs where I am going to attempt
extending the implementation once we start dealing with STUN and TURN
servers.

I also extended CI to run these tests.
2023-12-23 00:45:43 +00:00

821 B

firezone-connection integration tests

This directory contains Docker-based integration tests for the firezone-connection crate. Each integration test setup is a dedicated docker-compose file.

Running

To run one of these tests, use the following command:

sudo docker compose -f ./docker-compose.lan.yml up --exit-code-from dialer --abort-on-container-exit --build

This will force a re-build of the containers and exit with 0 if everything works correctly.

Design

Each file consists of at least:

  • A dialer
  • A listener
  • A redis server

Redis acts as the signalling channel. Dialer and listener use it to exchange offers & answers as well as ICE candidates.

The various files simulate different network environments. We use nftables to simulate NATs and / or force the use of TURN servers.