#1 - quicr module

This commit is contained in:
Martin Slachta
2026-07-22 17:34:44 +02:00
parent a04f0dc262
commit e6dd954ded
149 changed files with 3997 additions and 2126 deletions
@@ -0,0 +1,38 @@
#include <catch2/catch_test_macros.hpp>
#include "protocol/quicr/QuicrEndpoint.hpp"
using namespace tw::net;
using namespace tw::net::quicr;
TEST_CASE("Endpoint registers new connection with correct ID", "[quicr2]") {
auto endpoint_r = QuicrEndpoint::create();
REQUIRE(endpoint_r);
auto& server_endpoint = *endpoint_r.value();
REQUIRE(server_endpoint.bind(6972));
auto client_endpoint_r = QuicrEndpoint::create();
REQUIRE(client_endpoint_r);
auto& client_endpoint = *client_endpoint_r.value();
auto connect_r = client_endpoint.connect(Address{"127.0.0.1", 6972});
REQUIRE(connect_r);
QuicrConnection& connection = *connect_r.value();
REQUIRE(connection.self_id() != 0);
REQUIRE(connection.peer_id() != 0);
connection.send_initial_hello();
client_endpoint.poll();
std::this_thread::sleep_for(std::chrono::milliseconds(100));
server_endpoint.poll();
auto clients = server_endpoint.clients();
REQUIRE(clients.size() == 2);
REQUIRE(((clients[0].first == connection.peer_id()) || (clients[1].first == connection.peer_id())));
REQUIRE(clients[0].second->peer_id() == connection.self_id());
REQUIRE(clients[1].second->peer_id() == connection.self_id());
}