Changeset - 04f7a0378047
[Not reviewed]
0 4 0
Jan Kaluza - 14 years ago 2011-06-08 16:36:30
hanzz.k@gmail.com
Fixed some bad bugs + improved tests
4 files changed with 48 insertions and 41 deletions:
0 comments (0 inline, 0 general)
backends/libpurple/main.cpp
Show inline comments
 
@@ -476,12 +476,15 @@ static PurpleCoreUiOps coreUiOps =
 
	NULL,
 
	NULL,
 
	NULL
 
};
 

	
 
static void signed_on(PurpleConnection *gc, gpointer unused) {
 
	for (int i = 0; i<1500; i++) {
 
		std::cout << "A\n";
 
	}
 
	PurpleAccount *account = purple_connection_get_account(gc);
 
	np->handleConnected(np->m_accounts[account]);
 
}
 

	
 
static void printDebug(PurpleDebugLevel level, const char *category, const char *arg_s) {
 
	std::string c("[LIBPURPLE");
src/networkplugin.cpp
Show inline comments
 
@@ -263,13 +263,13 @@ void NetworkPlugin::handleVCardPayload(const std::string &data) {
 
	}
 

	
 
	handleVCardRequest(payload.username(), payload.buddyname(), payload.id());
 
}
 

	
 
void NetworkPlugin::handleDataRead(const Swift::SafeByteArray &data) {
 
	m_data.insert(m_data.begin(), data.begin(), data.end());
 
	m_data.insert(m_data.end(), data.begin(), data.end());
 

	
 
	while (m_data.size() != 0) {
 
		unsigned int expected_size;
 

	
 
		if (m_data.size() >= 4) {
 
			expected_size = *((unsigned int*) &m_data[0]);
src/networkpluginserver.cpp
Show inline comments
 
@@ -87,13 +87,13 @@ static int exec_(const char *path, const char *host, const char *port, const cha
 
// 	char *argv[] = {(char*)script_name, '\0'}; 
 
	int status = 0;
 
	pid_t pid = fork();
 
	if ( pid == 0 ) {
 
		// child process
 
		execlp(path, path, "--host", host, "--port", port, config, NULL);
 
		exit(1);
 
		abort();
 
	} else if ( pid < 0 ) {
 
		// fork failed
 
		status = -1;
 
	}
 
	return status;
 
}
 
@@ -192,19 +192,15 @@ void NetworkPluginServer::handleDisconnectedPayload(const std::string &data) {
 
	pbnetwork::Disconnected payload;
 
	if (payload.ParseFromString(data) == false) {
 
		// TODO: ERROR
 
		return;
 
	}
 

	
 
	User *user = m_userManager->getUser(payload.user());
 
	if (!user) {
 
		return;
 
	}
 

	
 
	m_component->m_userRegistry->onPasswordInvalid(payload.user());
 
	user = m_userManager->getUser(payload.user());
 

	
 
	User *user = m_userManager->getUser(payload.user());
 
	if (!user) {
 
		return;
 
	}
 
	user->handleDisconnected(payload.message());
 
}
 

	
 
@@ -227,13 +223,13 @@ void NetworkPluginServer::handleVCardPayload(const std::string &data) {
 
void NetworkPluginServer::handleBuddyChangedPayload(const std::string &data) {
 
	pbnetwork::Buddy payload;
 
	if (payload.ParseFromString(data) == false) {
 
		// TODO: ERROR
 
		return;
 
	}
 

	
 
	std::cout << payload.buddyname() << "\n";
 
	User *user = m_userManager->getUser(payload.username());
 
	if (!user)
 
		return;
 

	
 
	LocalBuddy *buddy = (LocalBuddy *) user->getRosterManager()->getBuddy(payload.buddyname());
 
	if (buddy) {
 
@@ -323,14 +319,14 @@ void NetworkPluginServer::handleConvMessagePayload(const std::string &data, bool
 
	}
 

	
 
	conv->handleMessage(msg, payload.nickname());
 
}
 

	
 
void NetworkPluginServer::handleDataRead(Client *c, const Swift::SafeByteArray &data) {
 
	c->data.insert(c->data.begin(), data.begin(), data.end());
 

	
 
	c->data.insert(c->data.end(), data.begin(), data.end());
 
	std::cout << "READ\n";
 
	while (c->data.size() != 0) {
 
		unsigned int expected_size;
 

	
 
		if (c->data.size() >= 4) {
 
			expected_size = *((unsigned int*) &c->data[0]);
 
			expected_size = ntohl(expected_size);
 
@@ -340,17 +336,18 @@ void NetworkPluginServer::handleDataRead(Client *c, const Swift::SafeByteArray &
 
		else {
 
			return;
 
		}
 

	
 
		pbnetwork::WrapperMessage wrapper;
 
		if (wrapper.ParseFromArray(&c->data[4], expected_size) == false) {
 
			std::cout << "PARSING ERROR " << expected_size << "\n";
 
			c->data.erase(c->data.begin(), c->data.begin() + 4 + expected_size);
 
			return;
 
			continue;
 
		}
 
		c->data.erase(c->data.begin(), c->data.begin() + 4 + expected_size);
 

	
 
		std::cout << "TYPE "  << wrapper.type() << " " << (int) pbnetwork::WrapperMessage_Type_TYPE_CONNECTED << " " << c->data.size() << "\n";
 
		switch(wrapper.type()) {
 
			case pbnetwork::WrapperMessage_Type_TYPE_CONNECTED:
 
				handleConnectedPayload(wrapper.payload());
 
				break;
 
			case pbnetwork::WrapperMessage_Type_TYPE_DISCONNECTED:
 
				handleDisconnectedPayload(wrapper.payload());
 
@@ -400,12 +397,16 @@ void NetworkPluginServer::pingTimeout() {
 
		}
 
	}
 
}
 

	
 
void NetworkPluginServer::handleUserCreated(User *user) {
 
	Client *c = getFreeClient();
 
	if (!c) {
 
		user->handleDisconnected("Internal Server Error, please reconnect.");
 
		return;
 
	}
 
	user->setData(c);
 
	c->users.push_back(user);
 

	
 
// 	UserInfo userInfo = user->getUserInfo();
 
	user->onReadyToConnect.connect(boost::bind(&NetworkPluginServer::handleUserReadyToConnect, this, user));
 
	user->onRoomJoined.connect(boost::bind(&NetworkPluginServer::handleRoomJoined, this, user, _1, _2, _3));
tests/runtests.py
Show inline comments
 
@@ -20,46 +20,49 @@ def run_spectrum(backend, test):
 
	database = test.sql\n\
 
	prefix=icq\n\
 
	" % (backend, backend)
 
	)
 
	f.close()
 
	p = Popen("../spectrum/src/spectrum sample.cfg > " + backend + "_" + test + ".log 2>&1", shell=True)
 
	time.sleep(2)
 
	time.sleep(3)
 
	return p
 

	
 
def one_test_run():
 
	os.system("killall spectrum 2> /dev/null")
 
	os.system("rm *.log")
 

	
 
os.system("killall spectrum 2> /dev/null")
 
os.system("rm *.log")
 

	
 
for backend in os.listdir("../backends"):
 
	if not os.path.isdir("../backends/" + backend) or backend == "CMakeFiles":
 
		continue
 

	
 
	for d in os.listdir("."):
 
		binary = d + "/" + d + "_test"
 
		if not os.path.exists(binary):
 
	for backend in os.listdir("../backends"):
 
		if not os.path.isdir("../backends/" + backend) or backend == "CMakeFiles" or backend.startswith("libirc"):
 
			continue
 

	
 
		p = run_spectrum(backend, d)
 
		for d in os.listdir("."):
 
			binary = d + "/" + d + "_test"
 
			if not os.path.exists(binary) or d.find("bad") != -1:
 
				continue
 

	
 
		if backend.find("purple") >= 0:
 
			p = Popen(binary + " pyjim%jabber.cz@localhost test", shell=True)
 
			
 
		else:
 
			p = Popen(binary + " testnickname%irc.freenode.net@localhost test", shell=True)
 
			p = run_spectrum(backend, d)
 

	
 
		seconds = 0
 
		while p.poll() is None and seconds < 20:
 
			time.sleep(1)
 
			seconds += 1
 
			if backend.find("purple") >= 0:
 
				p = Popen(binary + " pyjim%jabber.cz@localhost test", shell=True)
 
				
 
			else:
 
				p = Popen(binary + " testnickname%irc.freenode.net@localhost test", shell=True)
 

	
 
		if p.returncode == 0:
 
			print "[ PASS ]", backend, binary
 
		else:
 
			if seconds == 20:
 
				print "[ TIME ]", backend, binary
 
			seconds = 0
 
			while p.poll() is None and seconds < 20:
 
				time.sleep(1)
 
				seconds += 1
 

	
 
			if p.returncode == 0 and seconds < 20:
 
				print "[ PASS ]", backend, binary
 
			else:
 
				print "[ FAIL ]", backend, binary
 
				if seconds == 20:
 
					print "[ TIME ]", backend, binary
 
				else:
 
					print "[ FAIL ]", backend, binary
 

	
 
			os.system("killall spectrum 2> /dev/null")
 

	
 
		os.system("killall spectrum 2> /dev/null")
 
while True:
 
	one_test_run()
 

	
 

	
0 comments (0 inline, 0 general)