Author: coreyfarrell Date: Fri Oct 31 20:02:48 2014 New Revision: 5832 URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=5832 Log: Fix freeze on tests/pbx/dialplan_reload
* Make use of 'core waitfullybooted' to ensure restarts complete * Remove unused variables * Use global variable to specify number of iterations * Decrease reactor_timeout from 300 to 30, use reset_timeout per iteration * Fix PEP8 issues Review: https://reviewboard.asterisk.org/r/4122/ Modified: asterisk/trunk/tests/pbx/dialplan_reload/run-test Modified: asterisk/trunk/tests/pbx/dialplan_reload/run-test URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/pbx/dialplan_reload/run-test?view=diff&rev=5832&r1=5831&r2=5832 ============================================================================== --- asterisk/trunk/tests/pbx/dialplan_reload/run-test (original) +++ asterisk/trunk/tests/pbx/dialplan_reload/run-test Fri Oct 31 20:02:48 2014 @@ -15,33 +15,34 @@ from asterisk.test_case import TestCase LOGGER = logging.getLogger(__name__) -workingdir = "dialplan-reload" -testdir = "tests/%s" % workingdir +# How many times to do the restart cycle +restart_iterations = 5 + class DialplanReloadTest(TestCase): count = 0 def __init__(self): TestCase.__init__(self) - # artificially high timeout as this can take a while - self.reactor_timeout = 300 + # Each iteration resets the timeout + self.reactor_timeout = 30 self.create_asterisk(1) def run(self): TestCase.run(self) def callback(defer): - LOGGER.info("DIALPLAN SHOW = " + defer.output); + LOGGER.info("DIALPLAN SHOW = %s" % defer.output) print defer.output.strip() if defer.output.find("CID match ''") == -1: print "Dialplan did not load correctly" - reactor.callLater(1,self.failure) + self.failure() else: - reactor.callLater(3,self.reload) + self.reload() def errback(failure): - LOGGER.error("CLI dialplan show failed"); - reactor.callLater(1,self.failure) + LOGGER.error("CLI dialplan show failed") + self.failure() # log the trouble context just to be sure it was loaded df = self.ast[0].cli_exec("dialplan show incoming_1") @@ -51,23 +52,36 @@ def reload(self): def callback(defer): - LOGGER.info("RESTART = " + defer.output) - print "Restart #" + str(self.count) + " = " + defer.output.strip() + def fullybooted_success(defer): + LOGGER.info("core waitfullybooted success") + if self.count == restart_iterations: + self.success() + else: + self.reload() + + def fullybooted_failure(failure): + LOGGER.error("core waitfullybooted failed") + self.failure() + + def fullybooted_run(): + self.reset_timeout() + waitfullybooted = self.ast[0].cli_exec("core waitfullybooted") + waitfullybooted.addCallback(fullybooted_success) + waitfullybooted.addErrback(fullybooted_failure) + + LOGGER.info("Restarted #%d" % self.count) self.count += 1 - if self.count == 50: - reactor.callLater(3,self.success) - else: - reactor.callLater(3,self.reload) + reactor.callLater(3, fullybooted_run) def errback(failure): LOGGER.error("CLI restart failed") - reactor.callLater(1,self.failure) + self.failure() df = self.ast[0].cli_exec("core restart gracefully") df.addCallback(callback) df.addErrback(errback) - LOGGER.info("Restarted # " + str(self.count)) + LOGGER.info("Restarting #%d" % self.count) def success(self): self.passed = True @@ -75,6 +89,7 @@ def failure(self): self.stop_reactor() + def main(): test = DialplanReloadTest() -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits
