[asterisk-commits] pabelanger: branch pabelanger/dynamic-modules r829 - in /asterisk/team/pabela...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Nov 12 23:23:29 CST 2010


Author: pabelanger
Date: Fri Nov 12 23:23:24 2010
New Revision: 829

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=829
Log:
Address _most_ comments on reviewboard.
Add the ability to preload modules.
Currently loading res_http_post.so causes Asterisk to crash.

Modified:
    asterisk/team/pabelanger/dynamic-modules/lib/python/asterisk/asterisk.py
    asterisk/team/pabelanger/dynamic-modules/tests/dynamic-modules/configs/logger.conf
    asterisk/team/pabelanger/dynamic-modules/tests/dynamic-modules/run-test

Modified: asterisk/team/pabelanger/dynamic-modules/lib/python/asterisk/asterisk.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/team/pabelanger/dynamic-modules/lib/python/asterisk/asterisk.py?view=diff&rev=829&r1=828&r2=829
==============================================================================
--- asterisk/team/pabelanger/dynamic-modules/lib/python/asterisk/asterisk.py (original)
+++ asterisk/team/pabelanger/dynamic-modules/lib/python/asterisk/asterisk.py Fri Nov 12 23:23:24 2010
@@ -320,7 +320,7 @@
         except IOError:
             pass
         process.wait()
-        return output
+        return output.strip()
 
     def __gen_ast_conf(self, ast_conf, dir_cat, ast_conf_options):
         for (var, val) in dir_cat.options:

Modified: asterisk/team/pabelanger/dynamic-modules/tests/dynamic-modules/configs/logger.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/team/pabelanger/dynamic-modules/tests/dynamic-modules/configs/logger.conf?view=diff&rev=829&r1=828&r2=829
==============================================================================
--- asterisk/team/pabelanger/dynamic-modules/tests/dynamic-modules/configs/logger.conf (original)
+++ asterisk/team/pabelanger/dynamic-modules/tests/dynamic-modules/configs/logger.conf Fri Nov 12 23:23:24 2010
@@ -1,7 +1,5 @@
 [general]
 
 [logfiles]
-
-console =>
-messages => notice,warning,error
+console => notice,warning,error
 full => notice,warning,error,debug,verbose

Modified: asterisk/team/pabelanger/dynamic-modules/tests/dynamic-modules/run-test
URL: http://svnview.digium.com/svn/testsuite/asterisk/team/pabelanger/dynamic-modules/tests/dynamic-modules/run-test?view=diff&rev=829&r1=828&r2=829
==============================================================================
--- asterisk/team/pabelanger/dynamic-modules/tests/dynamic-modules/run-test (original)
+++ asterisk/team/pabelanger/dynamic-modules/tests/dynamic-modules/run-test Fri Nov 12 23:23:24 2010
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 '''
-Copyright (C) 2010, Polybeacon
-Paul Belanger <paul.belanger at polybeacon.com>
+Copyright (C) 2010, Digium, Inc.
+Paul Belanger <pabelanger at digium.com>
 
 This program is free software, distributed under the terms of
 the GNU General Public License Version 2.
@@ -27,8 +27,7 @@
 
 		print "Creating Asterisk instance ..."
 		self.asterisk = Asterisk(base="/tmp/asterisk-testsuite/dynamic-modules")
-		self.asterisk.install_config("tests/dynamic-modules/configs/logger.conf")
-		self.asterisk.install_config("tests/dynamic-modules/configs/modules.conf")
+		self.asterisk.install_configs("tests/dynamic-modules/configs/")
 
 	def stop_reactor(self):
 		self.stop_asterisk()
@@ -39,8 +38,8 @@
 	def start_asterisk(self):
 		self.log_last_step("Starting Asterisk")
 		self.asterisk.start()
-		self.asterisk.cli_exec("core set verbose 10")
-		self.asterisk.cli_exec("core set debug 3")
+		self.asterisk.cli_exec("core set verbose 15")
+		self.asterisk.cli_exec("core set debug 15")
 
 	def stop_asterisk(self):
 		self.asterisk.stop()
@@ -50,109 +49,119 @@
 		self.last_step = step
 
 	def load_module(self, module):
+		if not self.check_file(module):
+			print module[0] + " does not exist! Skipping test."
+			return
+
 		text = "Loaded " + module[0]
-
 		res = self.asterisk.cli_exec("module load " + module[0])
-		if (res == text):
+		if not cmp(res, text):
 			module[2] = True
 
 	def unload_module(self, module):
 		text = "Unloaded " + module[0]
-
 		res = self.asterisk.cli_exec("module unload " + module[0])
-		if (res == text):
+		if not cmp(res, text):
 			module[3] = True
 
 	def check_file(self, module):
-		module[1] = os.path.isfile(self.asterisk.getBase() + "/usr/lib/asterisk/modules/" + module[0])
+		module[1] = os.path.isfile(self.asterisk.base + "/usr/lib/asterisk/modules/" + module[0])
 		return module[1]
 	
 	def run(self):
+		self.passed = True
+		preload_res = []
+		res = []
 		self.start_asterisk()
 
 		# A timeout in case things hang and fail
 		reactor.callLater(20, self.stop_reactor)
 
-		# Format [filename, exists, load, unload]
-		res = [
-			["res_adsi.so", False, False, False],
-			["res_ael_share.so", False, False, False],
-			["res_agi.so", False, False, False],
-			["res_ais.so", False, False, False],
-			["res_calendar.so", False, False, False],
-			["res_calendar_caldav.so", False, False, False],
-			["res_calendar_exchange.so", False, False, False],
-			["res_calendar_icalendar.so", False, False, False],
-			["res_clialiases.so", False, False, False],
-			["res_clioriginate.so", False, False, False],
-			["res_res_config_curl.so", False, False, False],
-			["res_res_config_ldap.so", False, False, False],
-			["res_res_config_odbc.so", False, False, False],
-			["res_res_config_pgsql.so", False, False, False],
-			["res_res_config_sqlite.so", False, False, False],
-			["res_convert.so", False, False, False],
-			["res_crypto.so", False, False, False],
-			["res_curl.so", False, False, False],
-			["res_fax.so", False, False, False],
-			["res_fax_spandsp.so", False, False, False],
-			["res_http_post", False, False, False],
-			["res_jabber", False, False, False],
-			["res_limit.so", False, False, False],
-			["res_monitor.so", False, False, False],
-			["res_musiconhold.so", False, False, False],
-			["res_mutestream.so", False, False, False],
-			["res_odbc.so", False, False, False],
-			["res_phoneprov.so", False, False, False],
-			["res_pktccops.so", False, False, False],
-			["res_realtime.so", False, False, False],
-			["res_rtp_asterisk.so", False, False, False],
-			["res_rtp_multicast.so", False, False, False],
-			["res_security_log.so", False, False, False],
-			["res_smdi.so", False, False, False],
-			["res_snmp.so", False, False, False],
-			["res_speech.so", False, False, False],
-			["res_timing_dahdi.so", False, False, False],
-			["res_timing_kqueue.so", False, False, False],
-			["res_timing_pthread.so", False, False, False],
-			["res_timing_timerfd.so", False, False, False],
-		]
-		for i, e in enumerate(res):
-			if not self.check_file(res[i]):
-				print res[i][0] + " does not exist! Skipping test."
+		# TODO: Do not hardcode, read from source code. 
+		preload_resources = ["res_calendar", "res_curl", "res_fax", "res_odbc"]
+
+		for module in preload_resources:
+			preload_res.append([module + ".so", False, False, False])
+
+		# TODO: Do not hardcode, read from source code. 
+		# TODO: Fixed res_http_post crash
+		resources = ["res_adsi", "res_ael_share", "res_agi", "res_ais", "res_calendar_caldav", "res_calendar_exchange", "res_calendar_icalendar", "res_clialiases", "res_clioriginate", "res_config_curl", "res_config_ldap", "res_config_odbc", "res_config_pgsql", "res_config_sqlite", "res_convert", "res_crypto", "res_fax_spandsp", "res_jabber", "res_limit", "res_monitor", "res_musiconhold", "res_mutestream", "res_phoneprov", "res_pktccops", "res_realtime", "res_rtp_asterisk", "res_rtp_multicast", "res_security_log", "res_smdi", "res_snmp", "res_speech", "res_timing_dahdi", "res_timing_kqueue", "res_timing_pthread", "res_timing_timerfd"]
+
+		for module in resources:
+			res.append([module + ".so", False, False, False])
+
+		for module in preload_res:
+			self.load_module(module)
+
+		for module in res:
+			self.load_module(module)
+			time.sleep(1)
+			self.unload_module(module)
+			time.sleep(1)
+
+		for module in preload_res:
+			self.unload_module(module)
+
+		for module in preload_res:
+			# modules does not exist
+			if not module[1]:
+				print "WARNING: " + module[0] + " does not exist!"
 				continue
 
-			self.load_module(res[i])
-			time.sleep(1)
-			self.unload_module(res[i])
+			# TODO: Fix unloading of res_calendar.so
+			if module[0] == "res_calendar.so":
+				if not module[3]:
+					continue
 
-		self.passed = True
-		for i, e in enumerate(res):
+			# TODO: Fix unloading of res_curl.so
+			if module[0] == "res_curl.so":
+				if not module[3]:
+					continue
+
+			# TODO: Fix unloading of res_odbc.so
+			if module[0] == "res_odbc.so":
+				if not module[3]:
+					continue
+
+			#And check for failures.	
+			if not module[2] or not module[3]:
+				print "ERROR: " + module[0]
+				self.passed = False
+
+		for module in res:
 			# modules does not exist
-			if not res[i][1]:
+			if not module[1]:
+				print "WARNING: " + module[0] + " does not exist!"
 				continue
 
 			# TODO: Fix unloading of res_adsi.so
-			if res[i][0] == "res_adsi.so":
-				if not res[i][3]:
+			if module[0] == "res_adsi.so":
+				if not module[3]:
 					continue
 
-			# TODO: Fix unloading of res_calendar.so
-			if res[i][0] == "res_calendar.so":
-				if not res[i][3]:
+			# TODO: Fix loading / unloading of res_ais.so
+			if module[0] == "res_ais.so":
+				if not module[2] and not module[3]:
+					continue
+
+			# TODO: Fix unloading of res_crypto.so
+			if module[0] == "res_crypto.so":
+				if not module[3]:
 					continue
 
 			# TODO: Fix loading / unloading of res_smdi.so
-			if res[i][0] == "res_smdi.so":
-				if not res[i][2] and res[i][3]:
+			if module[0] == "res_smdi.so":
+				if not module[2] and not module[3]:
 					continue
 
 			# TODO: Fix unloading of res_speech.so
-			if res[i][0] == "res_speech.so":
-				if not res[i][3]:
+			if module[0] == "res_speech.so":
+				if not module[3]:
 					continue
 
-			# Any check for failures.	
-			if not res[i][2] or not res[i][3]:
+			# And check for failures.	
+			if not module[2] or not module[3]:
+				print "ERROR: " + module[0]
 				self.passed = False
 
 def main():




More information about the asterisk-commits mailing list