[asterisk-commits] dlee: testsuite/asterisk/trunk r4474 - in /asterisk/trunk: ./ lib/python/aste...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Dec 16 15:13:28 CST 2013


Author: dlee
Date: Mon Dec 16 15:13:26 2013
New Revision: 4474

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=4474
Log:
Testsuite tests for priv. escalation protections.

Review: http://reviewboard.digium.internal/r/430/

Added:
    asterisk/trunk/tests/manager/danger/
    asterisk/trunk/tests/manager/danger/dangerous/
    asterisk/trunk/tests/manager/danger/dangerous/run-test   (with props)
    asterisk/trunk/tests/manager/danger/dangerous/test-config.yaml   (with props)
    asterisk/trunk/tests/manager/danger/safe/
    asterisk/trunk/tests/manager/danger/safe/run-test   (with props)
    asterisk/trunk/tests/manager/danger/safe/test-config.yaml   (with props)
    asterisk/trunk/tests/manager/danger/tests.yaml   (with props)
    asterisk/trunk/tests/rest_api/danger/
    asterisk/trunk/tests/rest_api/danger/dangerous/
    asterisk/trunk/tests/rest_api/danger/dangerous/configs/
    asterisk/trunk/tests/rest_api/danger/dangerous/configs/ast1/
    asterisk/trunk/tests/rest_api/danger/dangerous/configs/ast1/extensions.conf   (with props)
    asterisk/trunk/tests/rest_api/danger/dangerous/dangerous.py   (with props)
    asterisk/trunk/tests/rest_api/danger/dangerous/test-config.yaml   (with props)
    asterisk/trunk/tests/rest_api/danger/safe/
    asterisk/trunk/tests/rest_api/danger/safe/configs/
    asterisk/trunk/tests/rest_api/danger/safe/configs/ast1/
    asterisk/trunk/tests/rest_api/danger/safe/configs/ast1/extensions.conf   (with props)
    asterisk/trunk/tests/rest_api/danger/safe/safe.py   (with props)
    asterisk/trunk/tests/rest_api/danger/safe/test-config.yaml   (with props)
    asterisk/trunk/tests/rest_api/danger/tests.yaml   (with props)
Modified:
    asterisk/trunk/lib/python/asterisk/TestCase.py
    asterisk/trunk/runtests.py
    asterisk/trunk/tests/manager/tests.yaml
    asterisk/trunk/tests/rest_api/tests.yaml

Modified: asterisk/trunk/lib/python/asterisk/TestCase.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/lib/python/asterisk/TestCase.py?view=diff&rev=4474&r1=4473&r2=4474
==============================================================================
--- asterisk/trunk/lib/python/asterisk/TestCase.py (original)
+++ asterisk/trunk/lib/python/asterisk/TestCase.py Mon Dec 16 15:13:26 2013
@@ -99,8 +99,13 @@
         self._pcap_callbacks = []
 
         """ Pull additional configuration from YAML config if possible """
-        if test_config and 'reactor-timeout' in test_config:
-            self.reactor_timeout = test_config['reactor-timeout']
+        if test_config:
+            if 'reactor-timeout' in test_config:
+                self.reactor_timeout = test_config['reactor-timeout']
+            self.ast_conf_options = test_config.get('ast-config-options')
+        else:
+            self.ast_conf_options = None
+
 
         os.makedirs(self.testlogdir)
 
@@ -184,7 +189,8 @@
         for c in range(count):
             logger.info("Creating Asterisk instance %d" % (c + 1))
             host = "127.0.0.%d" % (c + 1)
-            self.ast.append(Asterisk(base=self.base, host=host))
+            self.ast.append(Asterisk(base=self.base, host=host,
+                                     ast_conf_options=self.ast_conf_options))
             """ If a base configuration for this Asterisk instance has been
             provided, install it first"""
             if base_configs_path:

Modified: asterisk/trunk/runtests.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/runtests.py?view=diff&rev=4474&r1=4473&r2=4474
==============================================================================
--- asterisk/trunk/runtests.py (original)
+++ asterisk/trunk/runtests.py Mon Dec 16 15:13:26 2013
@@ -193,11 +193,11 @@
         try:
             f = open("%s/%s" % (test_dir, TESTS_CONFIG), "r")
         except IOError:
-            print "Failed to open %s" % TESTS_CONFIG
-            return
+            print "Failed to open %s/%s" % (test_dir, TESTS_CONFIG)
+            return tests
         except:
             print "Unexpected error: %s" % sys.exc_info()[0]
-            return
+            return tests
 
         config = yaml.load(f)
         f.close()

Added: asterisk/trunk/tests/manager/danger/dangerous/run-test
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/danger/dangerous/run-test?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/manager/danger/dangerous/run-test (added)
+++ asterisk/trunk/tests/manager/danger/dangerous/run-test Mon Dec 16 15:13:26 2013
@@ -1,0 +1,69 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2010, Digium, Inc.
+Russell Bryant <russell at digium.com>
+
+This program is free software, distributed under the terms of
+the GNU General Public License Version 2.
+'''
+
+import sys
+from twisted.internet import reactor
+import logging
+import logging.config
+
+sys.path.append("lib/python")
+from asterisk.asterisk import Asterisk
+from asterisk.TestCase import TestCase
+LOGGER = logging.getLogger(__name__)
+
+TEST_CONFIG={
+  'ast_conf_options': {
+    'live-dangerously': 'yes'
+  }
+}
+
+class AMILoginTest(TestCase):
+    def __init__(self):
+        TestCase.__init__(self, test_config=TEST_CONFIG)
+        self.create_asterisk()
+
+    def on_get_var(self, actual):
+        expected = "hi"
+        if expected == actual:
+            self.passed = True
+        else:
+            LOGGER.error(
+                "Dangerous execution failed. Expected: '%s' Actual: '%s'" %
+                (expected, actual))
+            self.passed = False
+        self.stop_reactor()
+
+    def on_failure(self):
+        LOGGER.error("Failed to execute GetVar")
+        self.passed = False
+        self.stop_reactor()
+
+    def ami_connect(self, ami):
+        d = self.ami[0].getVar(None, "SHELL(echo -n hi)")
+        d.addCallbacks(self.on_get_var, self.on_failure)
+
+    def run(self):
+        TestCase.run(self)
+        self.create_ami_factory()
+
+def main():
+    test = AMILoginTest()
+    test.start_asterisk()
+    reactor.run()
+    test.stop_asterisk()
+    if test.passed:
+        return 0
+    return 1
+
+
+if __name__ == "__main__":
+    sys.exit(main() or 0)
+
+
+# vim:sw=4:ts=4:expandtab:textwidth=79

Propchange: asterisk/trunk/tests/manager/danger/dangerous/run-test
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/danger/dangerous/run-test
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/danger/dangerous/run-test
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/manager/danger/dangerous/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/danger/dangerous/test-config.yaml?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/manager/danger/dangerous/test-config.yaml (added)
+++ asterisk/trunk/tests/manager/danger/dangerous/test-config.yaml Mon Dec 16 15:13:26 2013
@@ -1,0 +1,14 @@
+testinfo:
+    summary:     Test dangerous function execution from AMI.
+    description: |
+        Execute a global GetVar(SHELL(echo hi)), ensuring that the function
+        is executed.
+
+properties:
+    minversion: '1.8.23.0'
+    dependencies:
+        - python : 'twisted'
+        - python : 'starpy'
+        - asterisk : 'func_shell'
+    tags:
+        - AMI

Propchange: asterisk/trunk/tests/manager/danger/dangerous/test-config.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/danger/dangerous/test-config.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/danger/dangerous/test-config.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/manager/danger/safe/run-test
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/danger/safe/run-test?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/manager/danger/safe/run-test (added)
+++ asterisk/trunk/tests/manager/danger/safe/run-test Mon Dec 16 15:13:26 2013
@@ -1,0 +1,69 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2010, Digium, Inc.
+Russell Bryant <russell at digium.com>
+
+This program is free software, distributed under the terms of
+the GNU General Public License Version 2.
+'''
+
+import sys
+from twisted.internet import reactor
+import logging
+import logging.config
+
+sys.path.append("lib/python")
+from asterisk.asterisk import Asterisk
+from asterisk.TestCase import TestCase
+LOGGER = logging.getLogger(__name__)
+
+TEST_CONFIG={
+  'ast-config-options': {
+    'live_dangerously': 'no'
+  }
+}
+
+class AMILoginTest(TestCase):
+    def __init__(self):
+        TestCase.__init__(self, test_config=TEST_CONFIG)
+        self.create_asterisk()
+
+    def on_get_var(self, actual):
+        expected = ""
+        if expected == actual:
+            self.passed = True
+        else:
+            LOGGER.error(
+                "Dangerous execution failed. Expected: '%s' Actual: '%s'" %
+                (expected, actual))
+            self.passed = False
+        self.stop_reactor()
+
+    def on_failure(self):
+        LOGGER.error("Failed to execute GetVar")
+        self.passed = False
+        self.stop_reactor()
+
+    def ami_connect(self, ami):
+        d = self.ami[0].getVar(None, "SHELL(echo -n hi)")
+        d.addCallbacks(self.on_get_var, self.on_failure)
+
+    def run(self):
+        TestCase.run(self)
+        self.create_ami_factory()
+
+def main():
+    test = AMILoginTest()
+    test.start_asterisk()
+    reactor.run()
+    test.stop_asterisk()
+    if test.passed:
+        return 0
+    return 1
+
+
+if __name__ == "__main__":
+    sys.exit(main() or 0)
+
+
+# vim:sw=4:ts=4:expandtab:textwidth=79

Propchange: asterisk/trunk/tests/manager/danger/safe/run-test
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/danger/safe/run-test
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/danger/safe/run-test
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/manager/danger/safe/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/danger/safe/test-config.yaml?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/manager/danger/safe/test-config.yaml (added)
+++ asterisk/trunk/tests/manager/danger/safe/test-config.yaml Mon Dec 16 15:13:26 2013
@@ -1,0 +1,14 @@
+testinfo:
+    summary:     Test dangerous function execution from AMI.
+    description: |
+        Execute a global GetVar(SHELL(echo hi)), ensuring that the function
+        is executed.
+
+properties:
+    minversion: '1.8.23.0'
+    dependencies:
+        - python : 'twisted'
+        - python : 'starpy'
+        - asterisk : 'func_shell'
+    tags:
+        - AMI

Propchange: asterisk/trunk/tests/manager/danger/safe/test-config.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/danger/safe/test-config.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/danger/safe/test-config.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/manager/danger/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/danger/tests.yaml?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/manager/danger/tests.yaml (added)
+++ asterisk/trunk/tests/manager/danger/tests.yaml Mon Dec 16 15:13:26 2013
@@ -1,0 +1,4 @@
+# Enter tests here in the order they should be considered for execution:
+tests:
+    - test: 'dangerous'
+    - test: 'safe'

Propchange: asterisk/trunk/tests/manager/danger/tests.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/danger/tests.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/manager/danger/tests.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: asterisk/trunk/tests/manager/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/tests.yaml?view=diff&rev=4474&r1=4473&r2=4474
==============================================================================
--- asterisk/trunk/tests/manager/tests.yaml (original)
+++ asterisk/trunk/tests/manager/tests.yaml Mon Dec 16 15:13:26 2013
@@ -6,5 +6,6 @@
     - test: 'authtimeout'
     - test: 'acl-login'
     - test: 'bridge_actions'
+    - dir:  'danger'
     # Temporarily disabled while failures are debugged
     #- test: 'response-time'

Added: asterisk/trunk/tests/rest_api/danger/dangerous/configs/ast1/extensions.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rest_api/danger/dangerous/configs/ast1/extensions.conf?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/rest_api/danger/dangerous/configs/ast1/extensions.conf (added)
+++ asterisk/trunk/tests/rest_api/danger/dangerous/configs/ast1/extensions.conf Mon Dec 16 15:13:26 2013
@@ -1,0 +1,7 @@
+[default]
+
+exten => s,1,NoOp()
+	same => n,Answer()
+	same => n,Set(DP_SHELL=${SHELL(echo -n works)})
+	same => n,Stasis(testsuite)
+	same => n,Hangup()

Propchange: asterisk/trunk/tests/rest_api/danger/dangerous/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/rest_api/danger/dangerous/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/rest_api/danger/dangerous/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/rest_api/danger/dangerous/dangerous.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rest_api/danger/dangerous/dangerous.py?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/rest_api/danger/dangerous/dangerous.py (added)
+++ asterisk/trunk/tests/rest_api/danger/dangerous/dangerous.py Mon Dec 16 15:13:26 2013
@@ -1,0 +1,35 @@
+"""
+Copyright (C) 2013, Digium, Inc.
+David M. Lee, II <dlee at digium.com>
+
+This program is free software, distributed under the terms of
+the GNU General Public License Version 2.
+"""
+
+import logging
+
+LOGGER = logging.getLogger(__name__)
+
+def eq(expected, actual):
+    if expected != actual:
+        LOGGER.error("Unexpected response '%s' != '%s'" % (expected, actual))
+        raise ValueError("Test failed")
+
+def get_vars(ari, channel_id):
+    resp = ari.get('channels', channel_id, 'variable', variable='DP_SHELL')
+    actual = resp.json()["value"]
+    eq('works', actual)
+
+    resp = ari.get('channels', channel_id, 'variable', variable='SHELL(echo -n pass)')
+    actual = resp.json()["value"]
+    eq('pass', actual)
+
+
+def on_start(ari, event, test_object):
+    LOGGER.debug("on_start(%r)" % event)
+    channel_id = event["channel"]["id"]
+    try:
+        get_vars(ari, channel_id)
+        return True
+    finally:
+        ari.delete('channels', channel_id)

Propchange: asterisk/trunk/tests/rest_api/danger/dangerous/dangerous.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/rest_api/danger/dangerous/dangerous.py
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/rest_api/danger/dangerous/dangerous.py
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/rest_api/danger/dangerous/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rest_api/danger/dangerous/test-config.yaml?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/rest_api/danger/dangerous/test-config.yaml (added)
+++ asterisk/trunk/tests/rest_api/danger/dangerous/test-config.yaml Mon Dec 16 15:13:26 2013
@@ -1,0 +1,49 @@
+testinfo:
+    summary: Test whether dangerous functions can be allowed from ARI
+    description: |
+        From Stasis, attempt to execute the SHELL() function. Since
+        live_dangerously is set in asterisk.conf, it should work.
+
+test-modules:
+    add-test-to-search-path: True
+    test-object:
+        config-section: test-object-config
+        typename: ari.AriTestObject
+    modules:
+        -   config-section: ari-config
+            typename: ari.WebSocketEventModule
+
+ast-config-options:
+    live_dangerously: 'yes'
+
+ari-config:
+    events:
+        -   conditions:
+                match:
+                    type: StasisStart
+                    application: testsuite
+                    args: []
+            count: 1
+            callback:
+                module: dangerous
+                method: on_start
+        -   conditions:
+                match:
+                    type: StasisEnd
+                    application: testsuite
+            count: 1
+
+properties:
+    minversion: '12.0.0'
+    dependencies:
+        - python : autobahn.websocket
+        - python : requests
+        - python : twisted
+        - python : starpy
+        - asterisk : res_ari_channels
+        - asterisk : app_echo
+        - asterisk : func_shell
+    tags:
+        - ARI
+
+

Propchange: asterisk/trunk/tests/rest_api/danger/dangerous/test-config.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/rest_api/danger/dangerous/test-config.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/rest_api/danger/dangerous/test-config.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/rest_api/danger/safe/configs/ast1/extensions.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rest_api/danger/safe/configs/ast1/extensions.conf?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/rest_api/danger/safe/configs/ast1/extensions.conf (added)
+++ asterisk/trunk/tests/rest_api/danger/safe/configs/ast1/extensions.conf Mon Dec 16 15:13:26 2013
@@ -1,0 +1,7 @@
+[default]
+
+exten => s,1,NoOp()
+	same => n,Answer()
+	same => n,Set(DP_SHELL=${SHELL(echo -n works)})
+	same => n,Stasis(testsuite)
+	same => n,Hangup()

Propchange: asterisk/trunk/tests/rest_api/danger/safe/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/rest_api/danger/safe/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/rest_api/danger/safe/configs/ast1/extensions.conf
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/rest_api/danger/safe/safe.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rest_api/danger/safe/safe.py?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/rest_api/danger/safe/safe.py (added)
+++ asterisk/trunk/tests/rest_api/danger/safe/safe.py Mon Dec 16 15:13:26 2013
@@ -1,0 +1,35 @@
+"""
+Copyright (C) 2013, Digium, Inc.
+David M. Lee, II <dlee at digium.com>
+
+This program is free software, distributed under the terms of
+the GNU General Public License Version 2.
+"""
+
+import logging
+
+LOGGER = logging.getLogger(__name__)
+
+def eq(expected, actual):
+    if expected != actual:
+        LOGGER.error("Unexpected response '%s' != '%s'" % (expected, actual))
+        raise ValueError("Test failed")
+
+def get_vars(ari, channel_id):
+    resp = ari.get('channels', channel_id, 'variable', variable='DP_SHELL')
+    actual = resp.json()["value"]
+    eq('works', actual)
+
+    resp = ari.get('channels', channel_id, 'variable', variable='SHELL(echo -n fail)')
+    actual = resp.json()["value"]
+    eq('', actual)
+
+
+def on_start(ari, event, test_object):
+    LOGGER.debug("on_start(%r)" % event)
+    channel_id = event["channel"]["id"]
+    try:
+        get_vars(ari, channel_id)
+        return True
+    finally:
+        ari.delete('channels', channel_id)

Propchange: asterisk/trunk/tests/rest_api/danger/safe/safe.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/rest_api/danger/safe/safe.py
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/rest_api/danger/safe/safe.py
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/rest_api/danger/safe/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rest_api/danger/safe/test-config.yaml?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/rest_api/danger/safe/test-config.yaml (added)
+++ asterisk/trunk/tests/rest_api/danger/safe/test-config.yaml Mon Dec 16 15:13:26 2013
@@ -1,0 +1,46 @@
+testinfo:
+    summary: Test whether dangerous functions are inhibited from ARI
+    description: |
+        From Stasis, attempt to execute the SHELL() function. It should not
+        work.
+
+test-modules:
+    add-test-to-search-path: True
+    test-object:
+        config-section: test-object-config
+        typename: ari.AriTestObject
+    modules:
+        -   config-section: ari-config
+            typename: ari.WebSocketEventModule
+
+ari-config:
+    events:
+        -   conditions:
+                match:
+                    type: StasisStart
+                    application: testsuite
+                    args: []
+            count: 1
+            callback:
+                module: safe
+                method: on_start
+        -   conditions:
+                match:
+                    type: StasisEnd
+                    application: testsuite
+            count: 1
+
+properties:
+    minversion: '12.0.0'
+    dependencies:
+        - python : autobahn.websocket
+        - python : requests
+        - python : twisted
+        - python : starpy
+        - asterisk : res_ari_channels
+        - asterisk : app_echo
+        - asterisk : func_shell
+    tags:
+        - ARI
+
+

Propchange: asterisk/trunk/tests/rest_api/danger/safe/test-config.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/rest_api/danger/safe/test-config.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/rest_api/danger/safe/test-config.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/rest_api/danger/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rest_api/danger/tests.yaml?view=auto&rev=4474
==============================================================================
--- asterisk/trunk/tests/rest_api/danger/tests.yaml (added)
+++ asterisk/trunk/tests/rest_api/danger/tests.yaml Mon Dec 16 15:13:26 2013
@@ -1,0 +1,4 @@
+# Enter tests here in the order they should be considered for execution:
+tests:
+    - test: 'dangerous'
+    - test: 'safe'

Propchange: asterisk/trunk/tests/rest_api/danger/tests.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/rest_api/danger/tests.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: asterisk/trunk/tests/rest_api/danger/tests.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: asterisk/trunk/tests/rest_api/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rest_api/tests.yaml?view=diff&rev=4474&r1=4473&r2=4474
==============================================================================
--- asterisk/trunk/tests/rest_api/tests.yaml (original)
+++ asterisk/trunk/tests/rest_api/tests.yaml Mon Dec 16 15:13:26 2013
@@ -9,3 +9,4 @@
     - dir:  'recording'
     - dir:  'device_state'
     - test: 'request-bodies'
+    - dir:  'danger'




More information about the asterisk-commits mailing list