changeset 435:b9c8b1792889

Sockets: put back Listener
author David Demelier <markand@malikania.fr>
date Wed, 21 Oct 2015 22:08:55 +0200
parents da92b98de599
children 2dbaf2fb03ef
files C++/tests/Socket/main.cpp
diffstat 1 files changed, 67 insertions(+), 65 deletions(-) [+]
line wrap: on
line diff
--- a/C++/tests/Socket/main.cpp	Wed Oct 21 21:24:13 2015 +0200
+++ b/C++/tests/Socket/main.cpp	Wed Oct 21 22:08:55 2015 +0200
@@ -24,12 +24,9 @@
 
 #include <gtest/gtest.h>
 
-#include <Socket.h>
-#include <SocketAddress.h>
-#include <SocketListener.h>
-#include <SocketSsl.h>
+#include <Sockets.h>
 
-using namespace address;
+using namespace net;
 using namespace std::literals::chrono_literals;
 
 /* --------------------------------------------------------
@@ -38,8 +35,8 @@
 
 class TcpServerTest : public testing::Test {
 protected:
-	SocketTcp<Ipv4> m_server{AF_INET, 0};
-	SocketTcp<Ipv4> m_client{AF_INET, 0};
+	SocketTcp<Ipv4> m_server;
+	SocketTcp<Ipv4> m_client;
 
 	std::thread m_tserver;
 	std::thread m_tclient;
@@ -106,8 +103,8 @@
 
 class UdpServerTest : public testing::Test {
 protected:
-	SocketUdp<Ipv4> m_server{AF_INET, 0};
-	SocketUdp<Ipv4> m_client{AF_INET, 0};
+	SocketUdp<Ipv4> m_server;
+	SocketUdp<Ipv4> m_client;
 
 	std::thread m_tserver;
 	std::thread m_tclient;
@@ -130,14 +127,15 @@
 TEST_F(UdpServerTest, io)
 {
 	m_tserver = std::thread([this] () {
+		Ipv4 client;
 		Ipv4 info{"*", 16000};
 
 		m_server.bind(info);
-		auto msg = m_server.recvfrom(512, info);
+		auto msg = m_server.recvfrom(512, client);
 
 		ASSERT_EQ("hello world", msg);
 
-		m_server.sendto(msg, info);
+		m_server.sendto(msg, client);
 		m_server.close();
 	});
 
@@ -164,18 +162,18 @@
 	bool m_added{false};
 	int m_flags{0};
 
-	inline void set(const SocketTable &, SocketAbstract &, int flags, bool add) noexcept
+	inline void set(const ListenerTable &, Handle, int flags, bool add) noexcept
 	{
 		m_callcount ++;
 		m_added = add;
 		m_flags |= flags;
 	}
 
-	inline void unset(const SocketTable &, SocketAbstract &, int, bool) noexcept
+	inline void unset(const ListenerTable &, Handle, int, bool) noexcept
 	{
 	}
 
-	std::vector<SocketStatus> wait(const SocketTable &, int)
+	std::vector<ListenerStatus> wait(const ListenerTable &, int)
 	{
 		return {};
 	}
@@ -183,16 +181,16 @@
 
 class TestBackendSetFail {
 public:
-	inline void set(const SocketTable &, SocketAbstract &, int, bool)
+	inline void set(const ListenerTable &, Handle, int, bool)
 	{
 		throw "fail";
 	}
 
-	inline void unset(const SocketTable &, const SocketAbstract &, int, bool) noexcept
+	inline void unset(const ListenerTable &, Handle, int, bool) noexcept
 	{
 	}
 
-	std::vector<SocketStatus> wait(const SocketTable &, int)
+	std::vector<ListenerStatus> wait(const ListenerTable &, int)
 	{
 		return {};
 	}
@@ -200,24 +198,24 @@
 
 TEST(ListenerSet, initialAdd)
 {
-	SocketListenerAbstract<TestBackendSet> listener;
-	SocketAbstract s{0};
+	Listener<TestBackendSet> listener;
+	Handle s{0};
 
-	listener.set(s, SocketListener::Read);
+	listener.set(s, FlagRead);
 
 	ASSERT_EQ(1U, listener.size());
 	ASSERT_EQ(1, listener.backend().m_callcount);
 	ASSERT_TRUE(listener.backend().m_added);
-	ASSERT_TRUE(listener.backend().m_flags == SocketListener::Read);
+	ASSERT_TRUE(listener.backend().m_flags == FlagRead);
 }
 
 TEST(ListenerSet, readThenWrite)
 {
-	SocketListenerAbstract<TestBackendSet> listener;
-	SocketAbstract s{0};
+	Listener<TestBackendSet> listener;
+	Handle s{0};
 
-	listener.set(s, SocketListener::Read);
-	listener.set(s, SocketListener::Write);
+	listener.set(s, FlagRead);
+	listener.set(s, FlagWrite);
 
 	ASSERT_EQ(1U, listener.size());
 	ASSERT_EQ(2, listener.backend().m_callcount);
@@ -227,10 +225,10 @@
 
 TEST(ListenerSet, allOneShot)
 {
-	SocketListenerAbstract<TestBackendSet> listener;
-	SocketAbstract s{0};
+	Listener<TestBackendSet> listener;
+	Handle s{0};
 
-	listener.set(s, SocketListener::Read | SocketListener::Write);
+	listener.set(s, FlagRead | FlagWrite);
 
 	ASSERT_EQ(1U, listener.size());
 	ASSERT_EQ(1, listener.backend().m_callcount);
@@ -240,25 +238,25 @@
 
 TEST(ListenerSet, readTwice)
 {
-	SocketListenerAbstract<TestBackendSet> listener;
-	SocketAbstract s{0};
+	Listener<TestBackendSet> listener;
+	Handle s{0};
 
-	listener.set(s, SocketListener::Read);
-	listener.set(s, SocketListener::Read);
+	listener.set(s, FlagRead);
+	listener.set(s, FlagRead);
 
 	ASSERT_EQ(1U, listener.size());
 	ASSERT_EQ(1, listener.backend().m_callcount);
 	ASSERT_TRUE(listener.backend().m_added);
-	ASSERT_TRUE(listener.backend().m_flags == SocketListener::Read);
+	ASSERT_TRUE(listener.backend().m_flags == FlagRead);
 }
 
 TEST(ListenerSet, failure)
 {
-	SocketListenerAbstract<TestBackendSetFail> listener;
-	SocketAbstract s{0};
+	Listener<TestBackendSetFail> listener;
+	Handle s{0};
 
 	try {
-		listener.set(s, SocketListener::Read);
+		listener.set(s, FlagRead);
 		FAIL() << "exception expected";
 	} catch (...) {
 	}
@@ -266,6 +264,8 @@
 	ASSERT_EQ(0U, listener.size());
 }
 
+#if 0
+
 /* --------------------------------------------------------
  * Listener: unset / remove functions
  * -------------------------------------------------------- */
@@ -277,20 +277,20 @@
 	int m_flags{0};
 	bool m_removal{false};
 
-	inline void set(const SocketTable &, SocketAbstract &, int flags, bool) noexcept
+	inline void set(const ListenerTable &, Handle &, int flags, bool) noexcept
 	{
 		m_isset = true;
 		m_flags |= flags;
 	}
 
-	inline void unset(const SocketTable &, SocketAbstract &, int flags, bool remove) noexcept
+	inline void unset(const ListenerTable &, Handle &, int flags, bool remove) noexcept
 	{
 		m_isunset = true;
 		m_flags &= ~(flags);
 		m_removal = remove;
 	}
 
-	std::vector<SocketStatus> wait(const SocketTable &, int) noexcept
+	std::vector<ListenerStatus> wait(const ListenerTable &, int) noexcept
 	{
 		return {};
 	}
@@ -298,16 +298,16 @@
 
 class TestBackendUnsetFail {
 public:
-	inline void set(const SocketTable &, SocketAbstract &, int, bool) noexcept
+	inline void set(const ListenerTable &, Handle &, int, bool) noexcept
 	{
 	}
 
-	inline void unset(const SocketTable &, SocketAbstract &, int, bool)
+	inline void unset(const ListenerTable &, Handle &, int, bool)
 	{
 		throw "fail";
 	}
 
-	std::vector<SocketStatus> wait(const SocketTable &, int)
+	std::vector<ListenerStatus> wait(const ListenerTable &, int)
 	{
 		return {};
 	}
@@ -315,11 +315,11 @@
 
 TEST(ListenerUnsetRemove, unset)
 {
-	SocketListenerAbstract<TestBackendUnset> listener;
-	SocketAbstract s{0};
+	Listener<TestBackendUnset> listener;
+	Handle s{0};
 
-	listener.set(s, SocketListener::Read);
-	listener.unset(s, SocketListener::Read);
+	listener.set(s, FlagRead);
+	listener.unset(s, FlagRead);
 
 	ASSERT_EQ(0U, listener.size());
 	ASSERT_TRUE(listener.backend().m_isset);
@@ -330,27 +330,27 @@
 
 TEST(ListenerUnsetRemove, unsetOne)
 {
-	SocketListenerAbstract<TestBackendUnset> listener;
-	SocketAbstract s{0};
+	Listener<TestBackendUnset> listener;
+	Handle s{0};
 
-	listener.set(s, SocketListener::Read | SocketListener::Write);
-	listener.unset(s, SocketListener::Read);
+	listener.set(s, FlagRead | FlagWrite);
+	listener.unset(s, FlagRead);
 
 	ASSERT_EQ(1U, listener.size());
 	ASSERT_TRUE(listener.backend().m_isset);
 	ASSERT_TRUE(listener.backend().m_isunset);
-	ASSERT_TRUE(listener.backend().m_flags == SocketListener::Write);
+	ASSERT_TRUE(listener.backend().m_flags == FlagWrite);
 	ASSERT_FALSE(listener.backend().m_removal);
 }
 
 TEST(ListenerUnsetRemove, unsetAll)
 {
-	SocketListenerAbstract<TestBackendUnset> listener;
-	SocketAbstract s{0};
+	Listener<TestBackendUnset> listener;
+	Handle s{0};
 
-	listener.set(s, SocketListener::Read | SocketListener::Write);
-	listener.unset(s, SocketListener::Read);
-	listener.unset(s, SocketListener::Write);
+	listener.set(s, FlagRead | FlagWrite);
+	listener.unset(s, FlagRead);
+	listener.unset(s, FlagWrite);
 
 	ASSERT_EQ(0U, listener.size());
 	ASSERT_TRUE(listener.backend().m_isset);
@@ -361,10 +361,10 @@
 
 TEST(ListenerUnsetRemove, remove)
 {
-	SocketListenerAbstract<TestBackendUnset> listener;
-	SocketAbstract s{0};
+	Listener<TestBackendUnset> listener;
+	Handle s{0};
 
-	listener.set(s, SocketListener::Read | SocketListener::Write);
+	listener.set(s, FlagRead | FlagWrite);
 	listener.remove(s);
 
 	ASSERT_EQ(0U, listener.size());
@@ -376,10 +376,10 @@
 
 TEST(ListenerUnsetRemove, failure)
 {
-	SocketListenerAbstract<TestBackendUnsetFail> listener;
-	SocketAbstract s{0};
+	Listener<TestBackendUnsetFail> listener;
+	Handle s{0};
 
-	listener.set(s, SocketListener::Read | SocketListener::Write);
+	listener.set(s, FlagRead | FlagWrite);
 
 	try {
 		listener.remove(s);
@@ -397,7 +397,7 @@
 
 class ListenerTest : public testing::Test {
 protected:
-	SocketListenerAbstract<backend::Select> m_listener;
+	Listener<backend::Select> m_listener;
 	SocketTcp<Ipv4> m_masterTcp;
 	SocketTcp<Ipv4> m_clientTcp;
 
@@ -429,7 +429,7 @@
 {
 	m_tserver = std::thread([this] () {
 		try {
-			m_listener.set(m_masterTcp, SocketListener::Read);
+			m_listener.set(m_masterTcp, FlagRead);
 			m_listener.wait();
 			m_masterTcp.accept();
 			m_masterTcp.close();
@@ -449,7 +449,7 @@
 {
 	m_tserver = std::thread([this] () {
 		try {
-			m_listener.set(m_masterTcp, SocketListener::Read);
+			m_listener.set(m_masterTcp, FlagRead);
 			m_listener.wait();
 
 			auto sc = m_masterTcp.accept();
@@ -626,6 +626,8 @@
 	ASSERT_EQ(ip1, ip2);
 }
 
+#endif
+
 int main(int argc, char **argv)
 {
 	testing::InitGoogleTest(&argc, argv);