• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

C++ベースのLightweightなHTTPサーバー


Commit MetaInfo

Revision56a8027977afc42ac00b6d522957bd4c84101ed2 (tree)
Time2013-01-13 21:14:08
AuthorMichio Hirai <smg_ykz@user...>
CommiterMichio Hirai

Log Message

[Refactor] Further refine the unit test for cm::SocketServer and cm::SocketClient classes

Change Summary

Incremental Difference

--- a/cm/test/cm_socket_server_client_test.cpp
+++ b/cm/test/cm_socket_server_client_test.cpp
@@ -1,4 +1,6 @@
11
2+#include <sched.h>
3+
24 #include <vector>
35 #include <iostream>
46
@@ -11,6 +13,7 @@
1113 #include "cm_socket_client.h"
1214 #include "cm_event.h"
1315 #include "mt_range.h"
16+#include "cm_mutex.h"
1417
1518 namespace {
1619
@@ -83,10 +86,7 @@ private:
8386 SocketIf* socket_if_;
8487 static unsigned int mock_creation_count_;
8588
86- virtual SocketIf* doClone(int fd) const
87- {
88- return 0;
89- }
89+ MOCK_CONST_METHOD1(doClone, SocketIf*(int fd));
9090 };
9191
9292 unsigned int SocketIfMock::mock_creation_count_ = 0;
@@ -94,11 +94,12 @@ unsigned int SocketIfMock::mock_creation_count_ = 0;
9494 class CmSocketServerThread
9595 {
9696 public:
97- CmSocketServerThread()
97+ CmSocketServerThread(cm::Mutex* mutex)
9898 : server_(cm::SOCKET_TYPE_INET_STREAM, "0.0.0.0", 8888),
9999 event_(cm::Event::tsdInstance()),
100100 accepted_sockets_()
101101 {
102+ cm::Mutex::Lock lock(*mutex);
102103 event_.addHandlerRead(*this, &CmSocketServerThread::accept, server_);
103104 }
104105
@@ -156,62 +157,36 @@ private:
156157 std::vector<cm::SocketIf*> accepted_sockets_;
157158 };
158159
159-class CmSocketClientThread
160+TEST(CmSocketServerTest, inet_anyaddr)
160161 {
161-public:
162- CmSocketClientThread()
163- : client_(cm::SOCKET_TYPE_INET_STREAM), event_(cm::Event::tsdInstance()),
164- socket_()
165- {
166- socket_ = client_.connect("127.0.0.1", 8888);
167- }
162+ cm::Mutex mutex;
163+ cm::Thread<CmSocketServerThread, cm::Mutex> server_thread("server_thread");
164+ server_thread.create(&mutex);
168165
169- void run()
170166 {
167+ sched_yield();
168+ cm::Mutex::Lock lock(mutex);
169+ cm::SocketClient client(cm::SOCKET_TYPE_INET_STREAM);
170+
171+ mt::AutoPtr<cm::SocketIf> sock = client.connect("127.0.0.1", 8888);
172+ EXPECT_NE(sock.get(), static_cast<cm::SocketIf*>(0));
173+
171174 char buffer[20];
172175 memset(buffer, 0, sizeof(buffer));
173176 strcpy(buffer, "hello world!");
174177 size_t bytes_written = 0u;
175- socket_->write(bytes_written, buffer, sizeof(buffer));
178+ sock->write(bytes_written, buffer, sizeof(buffer));
179+ sock.reset();
180+
176181 memset(buffer, 0, sizeof(buffer));
177182 strcpy(buffer, "good bye world!");
178- socket_->write(bytes_written, buffer, sizeof(buffer));
179- socket_.reset();
180- }
181183
182-private:
183- cm::SocketClient client_;
184- cm::Event& event_;
185- mt::AutoPtr<cm::SocketIf> socket_;
186-};
187-
188-
189-TEST(CmSocketServerTest, inet_anyaddr)
190-{
191- cm::Thread<CmSocketServerThread> server_thread("server_thread");
192- server_thread.create();
184+ sock = client.connect("127.0.0.1", 8888);
185+ EXPECT_NE(sock.get(), static_cast<cm::SocketIf*>(0));
193186
194- sleep(2);
195- cm::SocketClient client(cm::SOCKET_TYPE_INET_STREAM);
196-
197- mt::AutoPtr<cm::SocketIf> sock = client.connect("127.0.0.1", 8888);
198- EXPECT_NE(sock.get(), static_cast<cm::SocketIf*>(0));
199-
200- char buffer[20];
201- memset(buffer, 0, sizeof(buffer));
202- strcpy(buffer, "hello world!");
203- size_t bytes_written = 0u;
204- sock->write(bytes_written, buffer, sizeof(buffer));
205- sock.reset();
206-
207- memset(buffer, 0, sizeof(buffer));
208- strcpy(buffer, "good bye world!");
209-
210- sock = client.connect("127.0.0.1", 8888);
211- EXPECT_NE(sock.get(), static_cast<cm::SocketIf*>(0));
212-
213- sock->write(bytes_written, buffer, sizeof(buffer));
214- sock.reset();
187+ sock->write(bytes_written, buffer, sizeof(buffer));
188+ sock.reset();
189+ }
215190
216191 server_thread.join();
217192 }