From c47870421f189eb98fc66e912693d73fbd8477ee Mon Sep 17 00:00:00 2001 From: dec05eba Date: Tue, 16 Oct 2018 00:37:21 +0200 Subject: Reuse peer connection if subscribed to same key --- tests/main.cpp | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/main.cpp b/tests/main.cpp index b2343af..d650128 100644 --- a/tests/main.cpp +++ b/tests/main.cpp @@ -1,7 +1,43 @@ -#include "../include/sibs/DirectConnection.hpp" +#include "../include/sibs/BootstrapConnection.hpp" +#include "../include/sibs/BootstrapNode.hpp" +#include +#include +#include + +const int PORT = 35231; + +#define REQUIRE(expr) do { if(!(expr)) { fprintf(stderr, "Assert failed: %s\n", #expr); exit(1); } }while(0) int main() { - sibs::DirectConnections user1(27137); + const sibs::PubsubKey key("abcdefghijklmnopqrstuvxyz0123456789", 35); + sibs::BootstrapNode boostrapNode(sibs::Ipv4(nullptr, PORT)); + + sibs::BootstrapConnection connection1(sibs::Ipv4("127.0.0.1", PORT)); + bool gotData1 = false; + connection1.listen(key, [&gotData1](const sibs::DirectConnectionPeer *peer, const void *data, const sibs::usize size) + { + if(size == 5 && strncmp((const char*)data, "hello", 5) == 0) + gotData1 = true; + return true; + }); + + sibs::BootstrapConnection connection2(sibs::Ipv4("127.0.0.1", PORT)); + bool gotData2 = false; + connection2.listen(key, [&gotData2](const sibs::DirectConnectionPeer *peer, const void *data, const sibs::usize size) + { + if(size == 5 && strncmp((const char*)data, "hello", 5) == 0) + gotData2 = true; + return true; + }); + // wait until connection1 and connection2 receive each other as peers from bootstrap node + std::this_thread::sleep_for(std::chrono::seconds(3)); + + connection1.put(key, "hello", 5); + std::this_thread::sleep_for(std::chrono::seconds(3)); + + REQUIRE(gotData1); + REQUIRE(gotData2); + return 0; } -- cgit v1.2.3