You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2007/03/28 23:45:07 UTC

svn commit: r523473 - in /incubator/qpid/trunk/qpid/cpp: lib/common/sys/Acceptor.h lib/common/sys/apr/APRAcceptor.cpp tests/AcceptorTest.cpp tests/Makefile.am tests/MockConnectionInputHandler.h tests/run-unit-tests tests/setup

Author: aconway
Date: Wed Mar 28 14:45:06 2007
New Revision: 523473

URL: http://svn.apache.org/viewvc?view=rev&rev=523473
Log:

* cpp/tests/run-unit-tests,setup: use valgrind --log-file rather than
  redirecting stderr. Redirecting also swallows DllPlugInTester output.
* cpp/lib/common/sys/Acceptor.h: getPort() to return uint16_t, not int16t.

Note AcceptorTest is not inclued in Makefile.am. I fixed it to compile
but it hangs, need to determine if it's a test or an Acceptor bug.

Modified:
    incubator/qpid/trunk/qpid/cpp/lib/common/sys/Acceptor.h
    incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRAcceptor.cpp
    incubator/qpid/trunk/qpid/cpp/tests/AcceptorTest.cpp
    incubator/qpid/trunk/qpid/cpp/tests/Makefile.am
    incubator/qpid/trunk/qpid/cpp/tests/MockConnectionInputHandler.h
    incubator/qpid/trunk/qpid/cpp/tests/run-unit-tests
    incubator/qpid/trunk/qpid/cpp/tests/setup

Modified: incubator/qpid/trunk/qpid/cpp/lib/common/sys/Acceptor.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/lib/common/sys/Acceptor.h?view=diff&rev=523473&r1=523472&r2=523473
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/lib/common/sys/Acceptor.h (original)
+++ incubator/qpid/trunk/qpid/cpp/lib/common/sys/Acceptor.h Wed Mar 28 14:45:06 2007
@@ -35,7 +35,7 @@
   public:
     static Acceptor::shared_ptr create(int16_t port, int backlog, int threads, bool trace = false);
     virtual ~Acceptor() = 0;
-    virtual int16_t getPort() const = 0;
+    virtual uint16_t getPort() const = 0;
     virtual void run(qpid::sys::ConnectionInputHandlerFactory* factory) = 0;
     virtual void shutdown() = 0;
 };

Modified: incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRAcceptor.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRAcceptor.cpp?view=diff&rev=523473&r1=523472&r2=523473
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRAcceptor.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRAcceptor.cpp Wed Mar 28 14:45:06 2007
@@ -32,7 +32,7 @@
 {
   public:
     APRAcceptor(int16_t port, int backlog, int threads, bool trace);
-    virtual int16_t getPort() const;
+    virtual uint16_t getPort() const;
     virtual void run(qpid::sys::ConnectionInputHandlerFactory* factory);
     virtual void shutdown();
 
@@ -70,7 +70,7 @@
     CHECK_APR_SUCCESS(apr_socket_listen(socket, backlog));
 }
 
-int16_t APRAcceptor::getPort() const {
+uint16_t APRAcceptor::getPort() const {
     apr_sockaddr_t* address;
     CHECK_APR_SUCCESS(apr_socket_addr_get(&address, APR_LOCAL, socket));
     return address->port;
@@ -80,9 +80,11 @@
     running = true;
     processor.start();
     std::cout << "Listening on port " << getPort() << "..." << std::endl;
-    while(running){
-        apr_socket_t* client;
-        apr_status_t status = apr_socket_accept(&client, socket, APRPool::get());
+    while(running) {
+            apr_socket_t* client;
+            printf("== accept pre\n"); // FIXME aconway 2007-03-28: 
+            apr_status_t status = apr_socket_accept(&client, socket, APRPool::get());
+            printf("== accept post %d %d\n", status, running); // FIXME aconway 2007-03-28: 
         if(status == APR_SUCCESS){
             //make this socket non-blocking:
             CHECK_APR_SUCCESS(apr_socket_timeout_set(client, 0));
@@ -106,16 +108,16 @@
 
 void APRAcceptor::shutdown() {
     Mutex::ScopedLock locker(shutdownLock);                
-    if (running) {
+    if (running) 
         shutdownImpl();
-    }
 }
 
 void APRAcceptor::shutdownImpl() {
-    Mutex::ScopedLock locker(shutdownLock);                
     running = false;
     processor.stop();
+    printf("== shutdownImpl pre\n"); // FIXME aconway 2007-03-28: 
     CHECK_APR_SUCCESS(apr_socket_close(socket));
+    printf("== shutdownImpl post\n");
 }
 
 

Modified: incubator/qpid/trunk/qpid/cpp/tests/AcceptorTest.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/tests/AcceptorTest.cpp?view=diff&rev=523473&r1=523472&r2=523473
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/tests/AcceptorTest.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/tests/AcceptorTest.cpp Wed Mar 28 14:45:06 2007
@@ -49,9 +49,10 @@
     Acceptor::shared_ptr acceptor;
 
   public:
-
+    using TestCase::run;        // Avoid hiding TestCase::run.
+    
     void run() {
-        acceptor->run(factory);
+        acceptor->run(&factory);
     }
 
     void setUp() {
@@ -65,7 +66,7 @@
     void testAccept()
     {
         int port = acceptor->getPort();
-        CPPUNIT_ASSERT(port > 0);
+        CPPUNIT_ASSERT(port != 0);
         Thread runThread(*this);
         // Connect to the acceptor
         Socket client = Socket::createTcp();
@@ -84,7 +85,9 @@
         CPPUNIT_ASSERT_EQUAL(int(2), int(init.getMinor()));
 
         acceptor->shutdown();
-        runThread.join(); 
+        printf("== join\n");  // FIXME aconway 2007-03-28: 
+        runThread.join();
+        printf("== joined\n");  // FIXME aconway 2007-03-28: 
         factory.handler->waitForClosed();
     }
 };

Modified: incubator/qpid/trunk/qpid/cpp/tests/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/tests/Makefile.am?view=diff&rev=523473&r1=523472&r2=523473
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/tests/Makefile.am (original)
+++ incubator/qpid/trunk/qpid/cpp/tests/Makefile.am Wed Mar 28 14:45:06 2007
@@ -12,6 +12,7 @@
 # Unit tests
 broker_tests =		\
   AccumulatedAckTest	\
+  AcceptorTest 		\
   BrokerChannelTest 	\
   ConfigurationTest	\
   ExchangeTest		\

Modified: incubator/qpid/trunk/qpid/cpp/tests/MockConnectionInputHandler.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/tests/MockConnectionInputHandler.h?view=diff&rev=523473&r1=523472&r2=523473
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/tests/MockConnectionInputHandler.h (original)
+++ incubator/qpid/trunk/qpid/cpp/tests/MockConnectionInputHandler.h Wed Mar 28 14:45:06 2007
@@ -30,9 +30,9 @@
 
     ~MockConnectionInputHandler() {}
     
-    void initiated(qpid::framing::ProtocolInitiation* pi) {
+    void initiated(const qpid::framing::ProtocolInitiation& pi) {
         qpid::sys::Monitor::ScopedLock l(monitor);
-        init = *pi;
+        init = pi;
         setState(GOT_INIT);
     }
 

Modified: incubator/qpid/trunk/qpid/cpp/tests/run-unit-tests
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/tests/run-unit-tests?view=diff&rev=523473&r1=523472&r2=523473
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/tests/run-unit-tests (original)
+++ incubator/qpid/trunk/qpid/cpp/tests/run-unit-tests Wed Mar 28 14:45:06 2007
@@ -8,11 +8,13 @@
 test -z "$VALGRIND" -a -z "$MAKEFLAGS" && VALGRIND=`which valgrind` 2>/dev/null
 
 test -z "$srcdir" && srcdir=.
+rm -f valgrind.out
+vg_log=--log-file-exactly=valgrind.out
 source $srcdir/setup
 for u in $* $UNIT_TESTS ; do TESTLIBS="$TESTLIBS $pwd/.libs/$u.so" ; done
 test -z "$TESTLIBS" && TESTLIBS="$pwd/.libs/*Test.so"
 fail=0
-$vg DllPlugInTester -c -b $TESTLIBS 2> valgrind.out || fail=1
+$vg DllPlugInTester -c -b $TESTLIBS || fail=1
 vg_check valgrind.out || fail=1
 
 exit $fail

Modified: incubator/qpid/trunk/qpid/cpp/tests/setup
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/tests/setup?view=diff&rev=523473&r1=523472&r2=523473
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/tests/setup (original)
+++ incubator/qpid/trunk/qpid/cpp/tests/setup Wed Mar 28 14:45:06 2007
@@ -27,6 +27,7 @@
   $demangle
   $full_leak_check
   $gen_supp
+  $vg_log
   "
 # configure tests for the existence of valgrind.
 # If it's not available, then make $vg and vg_check no-ops.