Changeset - c8f605bbfcc9
[Not reviewed]
0 1 0
Jan Kaluza - 13 years ago 2012-12-18 14:02:29
hanzz.k@gmail.com
simple benchmark
1 file changed with 61 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/tests/networkpluginserver.cpp
Show inline comments
 
@@ -22,15 +22,38 @@
 
#include "Swiften/Server/ServerFromClientSession.h"
 
#include "Swiften/Parser/PayloadParsers/FullPayloadParserFactoryCollection.h"
 
#include "basictest.h"
 
#include <cppunit/TestListener.h>
 
#include <cppunit/Test.h>
 
#include <time.h>    // for clock()
 

	
 
using namespace Transport;
 

	
 
class Clock {
 
	public:
 
		double m_beginTime;
 
		double m_elapsedTime;
 

	
 
		void start() {
 
			m_beginTime = clock();
 
		}
 

	
 
		void end() {
 
			m_elapsedTime = double(clock() - m_beginTime) / CLOCKS_PER_SEC;
 
		}
 

	
 
		double elapsedTime() const {
 
			return m_elapsedTime;
 
		}
 
};
 

	
 
class NetworkPluginServerTest : public CPPUNIT_NS :: TestFixture, public BasicTest {
 
	CPPUNIT_TEST_SUITE(NetworkPluginServerTest);
 
	CPPUNIT_TEST(handleBuddyChangedPayload);
 
	CPPUNIT_TEST(handleBuddyChangedPayloadNoEscaping);
 
	CPPUNIT_TEST(handleBuddyChangedPayloadUserContactInRoster);
 
	CPPUNIT_TEST(handleMessageHeadline);
 

	
 
	CPPUNIT_TEST(benchmarkHandleBuddyChangedPayload);
 
	CPPUNIT_TEST_SUITE_END();
 

	
 
	public:
 
@@ -51,6 +74,44 @@ class NetworkPluginServerTest : public CPPUNIT_NS :: TestFixture, public BasicTe
 
			tearMeDown();
 
		}
 

	
 
		void benchmarkHandleBuddyChangedPayload() {
 
			Clock clk;
 
			std::vector<std::string> lst;
 
			for (int i = 0; i < 2000; i++) {
 
				pbnetwork::Buddy buddy;
 
				buddy.set_username("user@localhost");
 
				buddy.set_buddyname("buddy" + boost::lexical_cast<std::string>(i)  + "@test");
 

	
 
				std::string message;
 
				buddy.SerializeToString(&message);
 
				lst.push_back(message);
 
			}
 

	
 
			std::vector<std::string> lst2;
 
			for (int i = 0; i < 2000; i++) {
 
				pbnetwork::Buddy buddy;
 
				buddy.set_username("user@localhost");
 
				buddy.set_buddyname("buddy" + boost::lexical_cast<std::string>(i)  + "@test");
 
				buddy.set_status((pbnetwork::StatusType) 2);
 

	
 
				std::string message;
 
				buddy.SerializeToString(&message);
 
				lst2.push_back(message);
 
			}
 

	
 
			clk.start();
 
			for (int i = 0; i < 2000; i++) {
 
				serv->handleBuddyChangedPayload(lst[i]);
 
				received.clear();
 
			}
 
			for (int i = 0; i < 2000; i++) {
 
				serv->handleBuddyChangedPayload(lst2[i]);
 
				received.clear();
 
			}
 
			clk.end();
 
			std::cerr << " " << clk.elapsedTime() << " s";
 
		}
 

	
 
		void handleBuddyChangedPayload() {
 
			User *user = userManager->getUser("user@localhost");
 

	
0 comments (0 inline, 0 general)