From e6f688797c225cdf4d85bb27437c6d0f255f29c3 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 12 Jul 2008 02:43:19 +0000 Subject: [PATCH] run tests several times with different socket flags git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54593 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- tests/streams/socketstream.cpp | 47 ++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/tests/streams/socketstream.cpp b/tests/streams/socketstream.cpp index e719f0b994..2db421704d 100644 --- a/tests/streams/socketstream.cpp +++ b/tests/streams/socketstream.cpp @@ -106,19 +106,29 @@ public: virtual void setUp(); virtual void tearDown(); - CPPUNIT_TEST_SUITE(socketStream); - // Base class stream tests the socketStream supports. - CPPUNIT_TEST(Input_GetC); - CPPUNIT_TEST(Input_Eof); - CPPUNIT_TEST(Input_Read); - CPPUNIT_TEST(Input_LastRead); - CPPUNIT_TEST(Input_CanRead); - CPPUNIT_TEST(Input_Peek); - CPPUNIT_TEST(Input_Ungetch); + // repeat all socket tests several times with different socket flags, so we + // define this macro which is used several times in the test suite + // + // there must be some more elegant way to do this but I didn't find it... +#define ALL_SOCKET_TESTS() \ + CPPUNIT_TEST(Input_GetC); \ + CPPUNIT_TEST(Input_Eof); \ + CPPUNIT_TEST(Input_Read); \ + CPPUNIT_TEST(Input_LastRead); \ + CPPUNIT_TEST(Input_CanRead); \ + CPPUNIT_TEST(Input_Peek); \ + CPPUNIT_TEST(Input_Ungetch); \ + \ + CPPUNIT_TEST(Output_PutC); \ + CPPUNIT_TEST(Output_Write); \ + CPPUNIT_TEST(Output_LastWrite) - CPPUNIT_TEST(Output_PutC); - CPPUNIT_TEST(Output_Write); - CPPUNIT_TEST(Output_LastWrite); + CPPUNIT_TEST_SUITE(socketStream); + ALL_SOCKET_TESTS(); + CPPUNIT_TEST( PseudoTest_SetNoWait ); + ALL_SOCKET_TESTS(); + CPPUNIT_TEST( PseudoTest_SetWaitAll ); + ALL_SOCKET_TESTS(); CPPUNIT_TEST_SUITE_END(); private: @@ -139,10 +149,15 @@ private: ; } + void PseudoTest_SetNoWait() { m_flags = wxSOCKET_NOWAIT; } + void PseudoTest_SetWaitAll() { m_flags = wxSOCKET_WAITALL; } + wxSocketClient *m_readSocket, *m_writeSocket; wxThread *m_writeThread, *m_readThread; + + wxSocketFlags m_flags; }; socketStream::socketStream() @@ -153,6 +168,8 @@ socketStream::socketStream() m_writeThread = m_readThread = NULL; + m_flags = wxSOCKET_NONE; + wxSocketBase::Initialize(); } @@ -177,12 +194,10 @@ void socketStream::setUp() CPPUNIT_ASSERT_EQUAL( wxCOND_NO_ERROR, gs_cond.Wait() ); } - m_readSocket = new wxSocketClient; - m_readSocket->SetTimeout(3); + m_readSocket = new wxSocketClient(m_flags); CPPUNIT_ASSERT( m_readSocket->Connect(LocalAddress(TEST_PORT_READ)) ); - m_writeSocket = new wxSocketClient; - m_writeSocket->SetTimeout(3); + m_writeSocket = new wxSocketClient(m_flags); CPPUNIT_ASSERT( m_writeSocket->Connect(LocalAddress(TEST_PORT_WRITE)) ); }