1 /***************************************************************************
2 * Copyright (C) 2004 by Intra2net AG *
5 ***************************************************************************/
18 #include <cppunit/extensions/TestFactoryRegistry.h>
19 #include <cppunit/ui/text/TestRunner.h>
20 #include <cppunit/extensions/HelperMacros.h>
22 #include <socket_client.hxx>
23 #include <socket_server.hxx>
26 using namespace libt2n;
27 using namespace CppUnit;
30 class test_comm : public TestFixture
32 CPPUNIT_TEST_SUITE(test_comm);
34 CPPUNIT_TEST(UnixCommToServer);
35 CPPUNIT_TEST(UnixCommToServerAndBack);
36 CPPUNIT_TEST(UnixCommToServerAndBackBig);
37 CPPUNIT_TEST(IPCommToServer);
38 CPPUNIT_TEST(IPCommToServerAndBack);
39 CPPUNIT_TEST(IPCommToServerAndBackBig);
41 CPPUNIT_TEST_SUITE_END();
51 void UnixCommToServer()
60 CPPUNIT_FAIL("fork error");
66 // wait till server is up
68 socket_client_connection sc("./socket");
70 // don't call atexit and stuff
77 socket_server ss("./socket");
80 for (int i=0; i < 10; i++)
82 ss.fill_buffer(1000000);
84 if(ss.get_packet(data))
89 CPPUNIT_ASSERT_EQUAL(string("hello"),data);
92 void UnixCommToServerAndBack()
100 CPPUNIT_FAIL("fork error");
106 socket_server ss("./socket");
107 ss.set_logging(&cerr,debug);
110 for (int i=0; i < 10; i++)
112 ss.fill_buffer(1000000);
117 if(ss.get_packet(data,cid))
119 server_connection* con=ss.get_connection(cid);
130 // don't call atexit and stuff
139 // wait till server is up
141 socket_client_connection sc("./socket");
145 sc.fill_buffer(1000000);
148 CPPUNIT_ASSERT_EQUAL(string("DEF"),data);
152 sc.fill_buffer(1000000);
155 CPPUNIT_ASSERT_EQUAL(string("xyz"),data);
162 void UnixCommToServerAndBackBig()
170 CPPUNIT_FAIL("fork error");
176 socket_server ss("./socket");
177 ss.set_logging(&cerr,debug);
180 for (int i=0; i < 10; i++)
182 ss.fill_buffer(1000000);
187 if(ss.get_packet(data,cid))
189 server_connection* con=ss.get_connection(cid);
194 con->write(string().insert(0,100*1024,'y'));
197 // don't call atexit and stuff
206 // wait till server is up
208 socket_client_connection sc("./socket");
210 sc.write(string().insert(0,100*1024,'x'));
212 while (!sc.get_packet(data))
213 sc.fill_buffer(1000000);
215 CPPUNIT_ASSERT_EQUAL(string().insert(0,100*1024,'y'),data);
222 void IPCommToServer()
231 CPPUNIT_FAIL("fork error");
237 // wait till server is up
239 socket_client_connection sc(6666);
241 // don't call atexit and stuff
248 socket_server ss(6666);
251 for (int i=0; i < 10; i++)
253 ss.fill_buffer(1000000);
255 if(ss.get_packet(data))
260 CPPUNIT_ASSERT_EQUAL(string("hello"),data);
263 void IPCommToServerAndBack()
271 CPPUNIT_FAIL("fork error");
277 socket_server ss(6666);
278 ss.set_logging(&cerr,debug);
281 for (int i=0; i < 10; i++)
283 ss.fill_buffer(1000000);
288 if(ss.get_packet(data,cid))
290 server_connection* con=ss.get_connection(cid);
301 // don't call atexit and stuff
310 // wait till server is up
312 socket_client_connection sc(6666);
315 sc.fill_buffer(1000000);
318 CPPUNIT_ASSERT_EQUAL(string("DEF"),data);
322 sc.fill_buffer(1000000);
325 CPPUNIT_ASSERT_EQUAL(string("xyz"),data);
333 void IPCommToServerAndBackBig()
341 CPPUNIT_FAIL("fork error");
347 socket_server ss(6666);
348 ss.set_logging(&cerr,debug);
351 for (int i=0; i < 10; i++)
353 ss.fill_buffer(1000000);
358 if(ss.get_packet(data,cid))
360 server_connection* con=ss.get_connection(cid);
362 socket_handler* alias= dynamic_cast< socket_handler* >(con);
367 alias->set_write_block_size( 4093 );
368 con->write(string().insert(0,2048*1024,'y'));
371 // don't call atexit and stuff
380 // wait till server is up
382 socket_client_connection sc(6666);
384 sc.write(string().insert(0,100*1024,'x'));
386 while (!sc.get_packet(data))
387 sc.fill_buffer(1000000);
389 CPPUNIT_ASSERT_EQUAL(string().insert(0,2048*1024,'y'),data);
394 } // eo IPCommToServerAndBackBig()
400 CPPUNIT_TEST_SUITE_REGISTRATION(test_comm);