[Xorp-cvs] SF.net SVN: xorp:[11640] trunk/xorp/libxipc/tests

bms_fbsd at users.sourceforge.net bms_fbsd at users.sourceforge.net
Tue Dec 1 10:57:45 PST 2009


Revision: 11640
          http://xorp.svn.sourceforge.net/xorp/?rev=11640&view=rev
Author:   bms_fbsd
Date:     2009-12-01 18:57:45 +0000 (Tue, 01 Dec 2009)

Log Message:
-----------
Teach TestReceiver to accept a FILE* from its clients,
and to explicitly set it to line-buffered mode, so we can
actually get output from it before we kill it in test runs.

Modified Paths:
--------------
    trunk/xorp/libxipc/tests/test_receiver.cc
    trunk/xorp/libxipc/tests/test_receiver.hh
    trunk/xorp/libxipc/tests/test_xrl_receiver.cc
    trunk/xorp/libxipc/tests/test_xrl_sender.cc

Modified: trunk/xorp/libxipc/tests/test_receiver.cc
===================================================================
--- trunk/xorp/libxipc/tests/test_receiver.cc	2009-11-29 06:20:09 UTC (rev 11639)
+++ trunk/xorp/libxipc/tests/test_receiver.cc	2009-12-01 18:57:45 UTC (rev 11640)
@@ -35,17 +35,22 @@
 #include "xrl/targets/test_xrls_base.hh"
 #include "test_receiver.hh"
 
+#include <cstdio>
+
 #define TIMEOUT_EXIT_MS 20000
 
 using namespace SP;
 
-TestReceiver::TestReceiver(EventLoop& eventloop, XrlRouter* xrl_router)
+TestReceiver::TestReceiver(EventLoop& eventloop, XrlRouter* xrl_router,
+			   FILE* output)
 	: XrlTestXrlsTargetBase(xrl_router),
 	  _eventloop(eventloop),
+	  _output(output),
 	  _received_xrls(0),
 	  _done(false),
 	  _sample(false)
 {
+    setvbuf(_output, (char *)NULL, _IOLBF, 0);
 }
 
 TestReceiver::~TestReceiver()
@@ -68,9 +73,9 @@
 TestReceiver::print_xrl_received() const
 {
 #if PRINT_DEBUG
-    printf(".");
+    fprintf(_output, ".");
     if (! (_received_xrls % 10000))
-	printf("Received %u\n", XORP_UINT_CAST(_received_xrls));
+	fprintf(_output, "Received %u\n", XORP_UINT_CAST(_received_xrls));
 #endif // PRINT_DEBUG
 }
 
@@ -204,12 +209,12 @@
     TimeVal delta_time = _end_time - _start_time;
 
     if (_received_xrls == 0) {
-        printf("No XRLs received\n");
+        fprintf(_output, "No XRLs received\n");
         return;
     }
     if (delta_time == TimeVal::ZERO()) {
-        printf("Received %u XRLs; delta-time = %s secs\n",
-	       XORP_UINT_CAST(_received_xrls), delta_time.str().c_str());
+        fprintf(_output, "Received %u XRLs; delta-time = %s secs\n",
+	        XORP_UINT_CAST(_received_xrls), delta_time.str().c_str());
         return;
     }
 
@@ -217,7 +222,8 @@
     double speed = _received_xrls;
     speed /= double_time;
 
-    printf("Received %u XRLs; delta_time = %s secs; speed = %f XRLs/s\n",
+    fprintf(_output,
+	   "Received %u XRLs; delta_time = %s secs; speed = %f XRLs/s\n",
            XORP_UINT_CAST(_received_xrls),
 	   delta_time.str().c_str(), speed);
 

Modified: trunk/xorp/libxipc/tests/test_receiver.hh
===================================================================
--- trunk/xorp/libxipc/tests/test_receiver.hh	2009-11-29 06:20:09 UTC (rev 11639)
+++ trunk/xorp/libxipc/tests/test_receiver.hh	2009-12-01 18:57:45 UTC (rev 11640)
@@ -26,7 +26,8 @@
 
 class TestReceiver : public XrlTestXrlsTargetBase {
 public:
-    TestReceiver(EventLoop& eventloop, XrlRouter* xrl_router);
+    TestReceiver(EventLoop& eventloop, XrlRouter* xrl_router,
+		 FILE* output);
     ~TestReceiver();
 
     bool done() const;
@@ -82,6 +83,7 @@
     void print_statistics();
 
     EventLoop&	_eventloop;
+    FILE*	_output;
     TimeVal	_start_time;
     TimeVal	_end_time;
     size_t	_received_xrls;

Modified: trunk/xorp/libxipc/tests/test_xrl_receiver.cc
===================================================================
--- trunk/xorp/libxipc/tests/test_xrl_receiver.cc	2009-11-29 06:20:09 UTC (rev 11639)
+++ trunk/xorp/libxipc/tests/test_xrl_receiver.cc	2009-12-01 18:57:45 UTC (rev 11640)
@@ -128,7 +128,8 @@
     //
     XrlStdRouter xrl_std_router_test_receiver(eventloop, "test_xrl_receiver",
 					      finder_hostname, finder_port);
-    TestReceiver test_receiver(eventloop, &xrl_std_router_test_receiver);
+    TestReceiver test_receiver(eventloop, &xrl_std_router_test_receiver,
+			       stdout);
     wait_until_xrl_router_is_ready(eventloop, xrl_std_router_test_receiver);
 
     //

Modified: trunk/xorp/libxipc/tests/test_xrl_sender.cc
===================================================================
--- trunk/xorp/libxipc/tests/test_xrl_sender.cc	2009-11-29 06:20:09 UTC (rev 11639)
+++ trunk/xorp/libxipc/tests/test_xrl_sender.cc	2009-12-01 18:57:45 UTC (rev 11640)
@@ -688,7 +688,8 @@
 							finder_hostname,
 							finder_port);
 	test_receiver = new TestReceiver(eventloop,
-					 xrl_std_router_test_receiver);
+					 xrl_std_router_test_receiver,
+					 stdout);
 
 	if (g_send_method == SEND_METHOD_SINGLE)
 	    test_receiver->enable_sampler();


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Xorp-cvs mailing list