[asterisk-commits] file: testsuite/asterisk/trunk r4923 - in /asterisk/trunk/tests/agi/exit_stat...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Apr 1 10:24:23 CDT 2014
Author: file
Date: Tue Apr 1 10:24:16 2014
New Revision: 4923
URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=4923
Log:
Add tests for AGI which confirms the AGISTATUS dialplan variable is set to the proper thing under certain scenarios.
(issue ASTERISK-19167)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3329/
Added:
asterisk/trunk/tests/agi/exit_status/badinterpreter.agi (with props)
asterisk/trunk/tests/agi/exit_status/badinterpreter2.agi (with props)
asterisk/trunk/tests/agi/exit_status/badinterpreter3.agi (with props)
asterisk/trunk/tests/agi/exit_status/configs/
asterisk/trunk/tests/agi/exit_status/configs/ast1/
asterisk/trunk/tests/agi/exit_status/configs/ast1/extensions.conf (with props)
asterisk/trunk/tests/agi/exit_status/donothing.agi (with props)
asterisk/trunk/tests/agi/exit_status/executing.agi (with props)
asterisk/trunk/tests/agi/exit_status/waiting.agi (with props)
Modified:
asterisk/trunk/tests/agi/exit_status/run-test (contents, props changed)
asterisk/trunk/tests/agi/exit_status/test-config.yaml (contents, props changed)
Added: asterisk/trunk/tests/agi/exit_status/badinterpreter.agi
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/agi/exit_status/badinterpreter.agi?view=auto&rev=4923
==============================================================================
--- asterisk/trunk/tests/agi/exit_status/badinterpreter.agi (added)
+++ asterisk/trunk/tests/agi/exit_status/badinterpreter.agi Tue Apr 1 10:24:16 2014
@@ -1,0 +1,4 @@
+#!/bin/this-path-does-not-exist
+
+exit 0
+
Propchange: asterisk/trunk/tests/agi/exit_status/badinterpreter.agi
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/agi/exit_status/badinterpreter.agi
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/agi/exit_status/badinterpreter.agi
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/agi/exit_status/badinterpreter2.agi
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/agi/exit_status/badinterpreter2.agi?view=auto&rev=4923
==============================================================================
--- asterisk/trunk/tests/agi/exit_status/badinterpreter2.agi (added)
+++ asterisk/trunk/tests/agi/exit_status/badinterpreter2.agi Tue Apr 1 10:24:16 2014
@@ -1,0 +1,5 @@
+#!/bin/bash
+
+# This script should remain non-executable.
+exit 0
+
Propchange: asterisk/trunk/tests/agi/exit_status/badinterpreter2.agi
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/agi/exit_status/badinterpreter2.agi
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/agi/exit_status/badinterpreter2.agi
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/agi/exit_status/badinterpreter3.agi
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/agi/exit_status/badinterpreter3.agi?view=auto&rev=4923
==============================================================================
--- asterisk/trunk/tests/agi/exit_status/badinterpreter3.agi (added)
+++ asterisk/trunk/tests/agi/exit_status/badinterpreter3.agi Tue Apr 1 10:24:16 2014
@@ -1,0 +1,5 @@
+#!/tmp/bash
+
+# The above interpreter should be non-executable.
+exit 0
+
Propchange: asterisk/trunk/tests/agi/exit_status/badinterpreter3.agi
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/agi/exit_status/badinterpreter3.agi
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/agi/exit_status/badinterpreter3.agi
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/agi/exit_status/configs/ast1/extensions.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/agi/exit_status/configs/ast1/extensions.conf?view=auto&rev=4923
==============================================================================
--- asterisk/trunk/tests/agi/exit_status/configs/ast1/extensions.conf (added)
+++ asterisk/trunk/tests/agi/exit_status/configs/ast1/extensions.conf Tue Apr 1 10:24:16 2014
@@ -1,0 +1,79 @@
+[default]
+
+; ----------------------------------------------------------------------
+; Tests a non-existant AGI script
+; ----------------------------------------------------------------------
+exten => doesnotexist,1,NoOp()
+ same => n,Answer()
+ same => n,AGI(i-do-not-exist.agi)
+ same => n,UserEvent(TestResult,result:${IF($[${AGISTATUS}=NOTFOUND]?pass:fail)})
+ same => n,Hangup()
+
+; ----------------------------------------------------------------------
+; Tests a non-existant AGI interpreter
+; ----------------------------------------------------------------------
+exten => badinterpreter,1,NoOp()
+ same => n,Answer()
+ same => n,AGI(${EXTEN}.agi)
+ same => n,UserEvent(TestResult,result:${IF($[${AGISTATUS}=FAILURE]?pass:fail)})
+ same => n,Hangup()
+
+; ----------------------------------------------------------------------
+; Tests a non-executable AGI script
+; ----------------------------------------------------------------------
+exten => badinterpreter2,1,NoOp()
+ same => n,Answer()
+ same => n,AGI(${EXTEN}.agi)
+ same => n,UserEvent(TestResult,result:${IF($[${AGISTATUS}=FAILURE]?pass:fail)})
+ same => n,Hangup()
+
+; ----------------------------------------------------------------------
+; Tests a non-executable AGI interpreter
+; ----------------------------------------------------------------------
+exten => badinterpreter3,1,NoOp()
+ same => n,Answer()
+ same => n,AGI(${EXTEN}.agi)
+ same => n,UserEvent(TestResult,result:${IF($[${AGISTATUS}=FAILURE]?pass:fail)})
+ same => n,Hangup()
+
+;----------------------------------------------------------------------
+; Tests an AGi that does nothing and exits normally
+; ----------------------------------------------------------------------
+exten => donothing,1,NoOp()
+ same => n,Answer()
+ same => n,AGI(${EXTEN}.agi)
+ same => n,UserEvent(TestResult,result:${IF($[${AGISTATUS}=SUCCESS]?pass:fail)})
+ same => n,Hangup()
+
+[executing-extens]
+
+; ----------------------------------------------------------------------
+; Tests an AGI that receives a hangup while executing a command
+; ----------------------------------------------------------------------
+exten => executing,1,NoOp()
+ same => n,Answer()
+ same => n,Set(AGIEXITONHANGUP=yes)
+ same => n,AGI(${EXTEN}.agi)
+
+; ----------------------------------------------------------------------
+; Gets the AGISTATUS of the executing.agi script
+; ----------------------------------------------------------------------
+exten => h,1,NoOp()
+ same => n,UserEvent(TestResult,result:${IF($[${AGISTATUS}=HANGUP]?pass:fail)})
+ same => n,Hangup()
+
+[waiting-extens]
+
+; ----------------------------------------------------------------------
+; Tests an AGI that receives a hangup while waiting for a command
+; ----------------------------------------------------------------------
+exten => waiting,1,NoOp()
+ same => n,Answer()
+ same => n,AGI(${EXTEN}.agi)
+
+; ----------------------------------------------------------------------
+; Used to determine if the waiting.agi script returned HANGUP.
+; ----------------------------------------------------------------------
+exten => h,1,NoOp()
+ same => n,UserEvent(TestResult,result:${IF($[${AGISTATUS}=HANGUP]?pass:fail)})
+ same => n,Hangup()
Propchange: asterisk/trunk/tests/agi/exit_status/configs/ast1/extensions.conf
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/agi/exit_status/configs/ast1/extensions.conf
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/agi/exit_status/configs/ast1/extensions.conf
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/agi/exit_status/donothing.agi
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/agi/exit_status/donothing.agi?view=auto&rev=4923
==============================================================================
--- asterisk/trunk/tests/agi/exit_status/donothing.agi (added)
+++ asterisk/trunk/tests/agi/exit_status/donothing.agi Tue Apr 1 10:24:16 2014
@@ -1,0 +1,4 @@
+#!/usr/bin/env bash
+
+exit 0
+
Propchange: asterisk/trunk/tests/agi/exit_status/donothing.agi
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/agi/exit_status/donothing.agi
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/agi/exit_status/donothing.agi
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/agi/exit_status/executing.agi
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/agi/exit_status/executing.agi?view=auto&rev=4923
==============================================================================
--- asterisk/trunk/tests/agi/exit_status/executing.agi (added)
+++ asterisk/trunk/tests/agi/exit_status/executing.agi Tue Apr 1 10:24:16 2014
@@ -1,0 +1,5 @@
+#!/usr/bin/env bash
+
+echo "EXEC PLAYBACK tt-monkeys"
+
+exit 1
Propchange: asterisk/trunk/tests/agi/exit_status/executing.agi
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/agi/exit_status/executing.agi
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/agi/exit_status/executing.agi
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: asterisk/trunk/tests/agi/exit_status/run-test
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/agi/exit_status/run-test?view=diff&rev=4923&r1=4922&r2=4923
==============================================================================
--- asterisk/trunk/tests/agi/exit_status/run-test (original)
+++ asterisk/trunk/tests/agi/exit_status/run-test Tue Apr 1 10:24:16 2014
@@ -1,166 +1,190 @@
-#!/usr/bin/env bash
+#!/usr/bin/env python
+"""
+Copyright (C) 2014, Digium, Inc.
+Benjamin Ford <bford at digium.com>
-. lib/sh/library.sh
+This progream is free software, distributed under the terms of
+the GNU General Public License Version 2.
+"""
-echo " >>> Starting AGI exit status test"
+import os
+import sys
+import logging
-initialize userA
+from twisted.internet import reactor
+from shutil import copy
-mkdir -p $testdir/userA/cdr-csv
+sys.path.append("lib/python")
+from asterisk.test_case import TestCase
-for user in userA; do
- # Shortcut for referral within this loop only
- eval "conf=\${${user}_tmpdir}"
- mkdir -p $conf/spool/outgoing
+LOGGER = logging.getLogger(__name__)
+PATH = os.path.dirname(os.path.realpath(__file__))
+EXPECTED_SUCCESSES = 7
- if test $debug -gt 1; then
- $ASTERISK -C $conf/asterisk.conf -rx 'core set debug 1 pbx_spool'
- $ASTERISK -C $conf/asterisk.conf -rx 'dialplan show'
- fi
-done
+class AGIExitStatusTest(TestCase):
+ """
+ This is the class that contains all the methods needed to run the test.
+ """
+ def __init__(self):
+ """
+ Initialization for class.
+ success_count keeps track of all successful tests.
+ can_call will only be set to true if an AGI script was called with AGI()
+ interrupt_agi is a temporary variable to deal with ASTERISK-23390
+ """
+ TestCase.__init__(self)
+ self.success_count = 0
+ self.can_call = False
+ self.interrupt_agi = False
+ self.create_asterisk()
-failure() {
- echo " . . . . . FAIL"
-}
+ def run(self):
+ """
+ Creates the AMI connection with Asterisk.
+ """
+ TestCase.run(self)
+ self.copy_files()
+ self.create_ami_factory()
-success() {
- echo " . . . . . OK"
-}
+ def copy_files(self):
+ """Copy testsuite files to the path of the current test"""
+ copy("%s/badinterpreter.agi" % PATH,
+ "%s/var/lib/asterisk/agi-bin/badinterpreter.agi" % self.ast[0].base)
+ copy("%s/badinterpreter2.agi" % PATH,
+ "%s/var/lib/asterisk/agi-bin/badinterpreter2.agi"
+ % self.ast[0].base)
+ copy("%s/badinterpreter3.agi" % PATH,
+ "%s/var/lib/asterisk/agi-bin/badinterpreter3.agi"
+ % self.ast[0].base)
+ copy("%s/donothing.agi" % PATH,
+ "%s/var/lib/asterisk/agi-bin/donothing.agi" % self.ast[0].base)
+ copy("%s/waiting.agi" % PATH,
+ "%s/var/lib/asterisk/agi-bin/waiting.agi" % self.ast[0].base)
+ copy("%s/executing.agi" % PATH,
+ "%s/var/lib/asterisk/agi-bin/executing.agi" % self.ast[0].base)
-echo -n " >>> Non-existent AGI"
-rm -f $testdir/userA/cdr-csv/Master.csv ; touch $testdir/userA/cdr-csv/Master.csv
+ def ami_connect(self, ami):
+ """
+ Sets up the AMI for Asterisk.
+ """
+ ami.registerEvent('UserEvent', self.user_event_handler)
+ ami.registerEvent('Newexten', self.new_exten_event_handler)
+ ami.registerEvent('Hangup', self.hangup_event_handler)
+ LOGGER.info("---Starting AGI exit_status test---")
+ deferred = ami.originate(channel="Local/doesnotexist at default",
+ application="Echo")
+ deferred.addErrback(self.handle_originate_failure)
-$ASTERISK -C $userA_tmpdir/asterisk.conf -rx "$ORIGINATE Local/02 at agi_exit_status extension doesnotexist at agi_exit_status"
+ def user_event_handler(self, result, event):
+ """
+ Checks to see if the behavior of the AGI script was as expected.
+ """
+ if event['userevent'] != 'TestResult':
+ return
+ result = event['result']
+ if result == "pass":
+ if event['exten'] != 'h':
+ LOGGER.info("%s.agi behaved as expected." % event['exten'])
+ else:
+ if event['context'] == 'waiting-extens':
+ LOGGER.info("waiting.agi behaved as expected.")
+ elif event['context'] == 'executing-extens':
+ LOGGER.info("executing.agi behaved as expected.")
+ self.success_count += 1
+ elif result == "fail":
+ if event['exten'] != 'h':
+ LOGGER.error("%s.agi did not behave as intended." % event['exten'])
+ else:
+ if event['context'] == 'waiting-extens':
+ LOGGER.error("waiting.agi did not behave as intended.")
+ elif event['context'] == 'executing-extens':
+ LOGGER.error("executing.agi did not behave as intended.")
+ LOGGER.info("Successful tests: %d" % self.success_count)
+ if self.success_count == EXPECTED_SUCCESSES:
+ self.stop_reactor()
-sleep 3
+ def new_exten_event_handler(self, ami, event):
+ """
+ Newexten event handler. Used to detect the start of an AGi script for
+ the specific purpose of hanging up the channel later.
+ """
-if test `grep -c $AGI_NOTFOUND $testdir/userA/cdr-csv/Master.csv` = 0; then
- failure
- if test $debug -gt 0; then
- echo " *** Non-existent test failed: did not find $AGI_NOTFOUND in $testdir/userA/cdr-csv/Master.csv"
- fi
- cleanup
- exit 1
-else
- success
-fi
+ def _handle_hangup_error(result):
+ """Handle a hangup error"""
+ LOGGER.warning("Error while hanging up channel: %s" % result)
+ self.stop_reactor()
-echo -n " >>> Non-existent AGI interpreter"
-rm -f $testdir/userA/cdr-csv/Master.csv ; touch $testdir/userA/cdr-csv/Master.csv
+ def _hangup_channel(ami, channel):
+ """Hangup the specified channel"""
+ LOGGER.debug("Hanging up channel %s" % channel)
+ ami.hangup(channel).addErrback(_handle_hangup_error)
-$ASTERISK -C $userA_tmpdir/asterisk.conf -rx "$ORIGINATE Local/10 at agi_exit_status extension badinterpreter at agi_exit_status"
+ if 'application' not in event or 'channel' not in event:
+ return
-sleep 2
+ if event['application'] != 'AGI':
+ return
-if test `grep -c FAILURE $testdir/userA/cdr-csv/Master.csv` = 0; then
- failure
- echo " *** Non-existent test failed: did not find FAILURE in $testdir/userA/cdr-csv/Master.csv"
- cleanup
- exit 1
-else
- success
-fi
+ self.can_call = True
+ LOGGER.info("Can call set to true.")
+ if self.interrupt_agi == False:
+ return
+ if event['exten'] == 'waiting' or event['exten'] == 'executing':
+ self.interrupt_agi = False
+ LOGGER.info("Detected channel %s in AGI" % event['channel'])
+ reactor.callLater(1, _hangup_channel, ami, event['channel'])
-echo -n " >>> Non-executable AGI script"
-rm -f $testdir/userA/cdr-csv/Master.csv ; touch $testdir/userA/cdr-csv/Master.csv
+ def hangup_event_handler(self, ami, event):
+ """
+ Hangup event handler. Detects when a channel hangs up so that a new
+ channel can start.
+ """
+ if event['event'] != 'Hangup' or 'channel' not in event:
+ return
+ LOGGER.info("Detected hangup for %s" % event['channel'])
+ if self.can_call == False:
+ return
+ if event['exten'] != 'waiting':
+ self.can_call = False
+ if event['exten'] == 'doesnotexist':
+ deferred = ami.originate(channel="Local/badinterpreter at default",
+ application="Echo")
+ deferred.addErrback(self.handle_originate_failure)
+ elif event['exten'] == 'badinterpreter':
+ deferred = ami.originate(channel=
+ "Local/badinterpreter2 at default",application="Echo")
+ deferred.addErrback(self.handle_originate_failure)
+ elif event['exten'] == 'badinterpreter2':
+ deferred = ami.originate(channel=
+ "Local/badinterpreter3 at default",application="Echo")
+ deferred.addErrback(self.handle_originate_failure)
+ elif event['exten'] == 'badinterpreter3':
+ deferred = ami.originate(channel="Local/donothing at default",
+ application="Echo")
+ deferred.addErrback(self.handle_originate_failure)
+ elif event['exten'] == 'donothing':
+ self.interrupt_agi = True
+ deferred = ami.originate(channel="Local/waiting at waiting-extens",
+ application="Echo")
+ deferred.addErrback(self.handle_originate_failure)
+ elif event['exten'] == 'h':
+ LOGGER.info("Hangup for h exten detected.")
+ if event['context'] == 'waiting-extens':
+ self.interrupt_agi = True
+ deferred = ami.originate(channel=
+ "Local/executing at executing-extens",application="Echo")
+ deferred.addErrback(self.handle_originate_failure)
-$ASTERISK -C $userA_tmpdir/asterisk.conf -rx "$ORIGINATE Local/10 at agi_exit_status extension badinterpreter2 at agi_exit_status"
-
-sleep 2
-
-if test `grep -c FAILURE $testdir/userA/cdr-csv/Master.csv` = 0; then
- failure
- echo " *** Non-existent test failed: did not find FAILURE in $testdir/userA/cdr-csv/Master.csv"
- cleanup
- exit 1
-else
- success
-fi
-
-echo -n " >>> Non-executable AGI interpreter"
-
-# Create a "shell" interpreter which is not executable
-for sh in /bin/true /usr/bin/true /usr/local/bin/true; do
- if test -f $sh; then
- cp -f $sh /tmp/bash
- chmod 600 /tmp/bash
- break
- fi
-done
-
-# Did we succeed?
-if test -e /tmp/bash; then :; else
- failure
- echo "Unable to create non-executable file for AGI test"
- cleanup
- exit 1
-fi
-
-rm -f $testdir/userA/cdr-csv/Master.csv ; touch $testdir/userA/cdr-csv/Master.csv
-
-$ASTERISK -C $userA_tmpdir/asterisk.conf -rx "$ORIGINATE Local/10 at agi_exit_status extension badinterpreter3 at agi_exit_status"
-
-sleep 2
-
-if test `grep -c FAILURE $testdir/userA/cdr-csv/Master.csv` = 0; then
- failure
- echo " *** Non-existent test failed: did not find FAILURE in $testdir/userA/cdr-csv/Master.csv"
- cleanup
- rm -f /tmp/bash
- exit 1
-else
- success
-fi
-
-echo -n " >>> AGI which will receive hangup while waiting for a command"
-rm -f $testdir/userA/cdr-csv/Master.csv ; touch $testdir/userA/cdr-csv/Master.csv
-$ASTERISK -C $userA_tmpdir/asterisk.conf -rx "$ORIGINATE Local/01 at agi_exit_status extension waiting at agi_exit_status"
-
-sleep 2
-
-if test `grep -c HANGUP $testdir/userA/cdr-csv/Master.csv` = 0; then
- failure
- echo " *** Command wait test failed: did not find HANGUP in $testdir/userA/cdr-csv/Master.csv"
- cleanup
- exit 1
-else
- success
-fi
-
-echo -n " >>> AGI which will receive hangup while executing a command"
-rm -f $testdir/userA/cdr-csv/Master.csv ; touch $testdir/userA/cdr-csv/Master.csv
-$ASTERISK -C $userA_tmpdir/asterisk.conf -rx "$ORIGINATE Local/01 at agi_exit_status extension executing at agi_exit_status"
-
-sleep 2
-
-# This is the result which is disputed in issue 17393
-if test `grep -c FAILURE $testdir/userA/cdr-csv/Master.csv` = 0; then
- failure
- echo " *** Command execute test failed: did not find FAILURE in $testdir/userA/cdr-csv/Master.csv"
- cleanup
- exit 1
-else
- success
-fi
-
-echo -n " >>> AGI which should exit normally"
-rm -f $testdir/userA/cdr-csv/Master.csv ; touch $testdir/userA/cdr-csv/Master.csv
-$ASTERISK -C $userA_tmpdir/asterisk.conf -rx "$ORIGINATE Local/01 at agi_exit_status extension donothing at agi_exit_status"
-
-sleep 2
-
-if test `grep -c SUCCESS $testdir/userA/cdr-csv/Master.csv` = 0; then
- failure
- echo " *** Do nothing test failed"
- cleanup
- exit 1
-else
- success
-fi
-
-echo " *** All tests were successful"
-
-cleanup
-
-exit 0
-
+def main():
+ """
+ Main method, run by default, determines if test passes or fails.
+ """
+ test = AGIExitStatusTest()
+ reactor.run()
+ if test.success_count != EXPECTED_SUCCESSES:
+ LOGGER.error("The expected amount of tests did not pass. Expected successes:"
+ " %d Actual: %d" % (EXPECTED_SUCCESSES, test.success_count))
+ return 1
+ return 0
+if __name__ == "__main__":
+ sys.exit(main() or 0)
Propchange: asterisk/trunk/tests/agi/exit_status/run-test
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 1 10:24:16 2014
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision
Modified: asterisk/trunk/tests/agi/exit_status/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/agi/exit_status/test-config.yaml?view=diff&rev=4923&r1=4922&r2=4923
==============================================================================
--- asterisk/trunk/tests/agi/exit_status/test-config.yaml (original)
+++ asterisk/trunk/tests/agi/exit_status/test-config.yaml Tue Apr 1 10:24:16 2014
@@ -1,10 +1,13 @@
testinfo:
- skip: 'Skip while failures are debugged'
summary: 'Test AGI exit status'
description: |
'This test verifies that the AGI application returns the correct exit status for each of several scenarios'
properties:
minversion: '1.8.0.0'
+ dependencies:
+ - python : 'twisted'
+ - python : 'starpy'
+ - asterisk : 'app_userevent'
tags:
- AGI
Propchange: asterisk/trunk/tests/agi/exit_status/test-config.yaml
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Tue Apr 1 10:24:16 2014
@@ -1,1 +1,1 @@
-'Date Author Id Revision Yoyo'
+Author Date Id Revision
Added: asterisk/trunk/tests/agi/exit_status/waiting.agi
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/agi/exit_status/waiting.agi?view=auto&rev=4923
==============================================================================
--- asterisk/trunk/tests/agi/exit_status/waiting.agi (added)
+++ asterisk/trunk/tests/agi/exit_status/waiting.agi Tue Apr 1 10:24:16 2014
@@ -1,0 +1,6 @@
+#!/usr/bin/env bash
+
+sleep 5
+
+exit 0
+
Propchange: asterisk/trunk/tests/agi/exit_status/waiting.agi
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/agi/exit_status/waiting.agi
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/agi/exit_status/waiting.agi
------------------------------------------------------------------------------
svn:mime-type = text/plain
More information about the asterisk-commits
mailing list