123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- import random
- import config_site
- import socket
- import errno
- import time
- DEFAULT_ECHO = True
- DEFAULT_TRACE = True
- DEFAULT_START_SIP_PORT = 50000
- DEFAULT_TELNET = True
- DEFAULT_START_TELNET_PORT = 60000
- ARGS = []
- HAS_SND_DEV = config_site.HAS_SND_DEV
- class InstanceParam:
-
- name = ""
-
- arg = ""
-
- telnet_enabled = DEFAULT_TELNET
-
- telnet_port = 0
-
- echo_enabled = DEFAULT_ECHO
-
- trace_enabled = DEFAULT_TRACE
-
- uri = ""
-
- sip_port = 0
-
-
- have_reg = False
-
- have_publish = False
-
- enable_buffer = False
- def __init__( self,
- name,
- arg,
- uri="",
- uri_param="",
- telnet_port=0,
- sip_port=0,
- have_reg=False,
- have_publish=False,
- echo_enabled=DEFAULT_ECHO,
- trace_enabled=DEFAULT_TRACE,
- telnet_enabled = DEFAULT_TELNET,
- enable_buffer = False):
-
- self.name = name
-
- if telnet_enabled and telnet_port==0:
-
- cnt = 0
- port = 0
- while cnt < 10:
- cnt = cnt + 1
- port = random.randint(DEFAULT_START_TELNET_PORT, 65534)
- s = socket.socket(socket.AF_INET)
- try:
- s.bind(("0.0.0.0", port))
- except socket.error as serr:
- s.close()
- if serr.errno == errno.EADDRINUSE or serr.errno == errno.EACCES:
- continue
- s.close()
- break;
- self.telnet_port = port
- else:
- self.telnet_port = telnet_port
-
- if sip_port==0:
-
- cnt = 0
- port = 0
- while cnt < 10:
- port = random.randint(DEFAULT_START_SIP_PORT, 60000)
- if port==self.telnet_port:
- continue
- cnt = cnt + 1
- s = socket.socket(socket.AF_INET)
- try:
- s.bind(("0.0.0.0", port))
- except socket.error as serr:
- s.close()
- if serr.errno == errno.EADDRINUSE or serr.errno == errno.EACCES:
- continue
- s.close()
- break;
- self.sip_port = port
-
- time.sleep(0.5)
- else:
- self.sip_port = sip_port
-
- self.uri = uri
- if self.uri=="":
- self.uri = "sip:pjsip@127.0.0.1:" + str(self.sip_port)
-
- self.uri = self.uri + uri_param
-
- if self.uri[0] != "<":
- self.uri = "<" + self.uri + ">"
-
- self.arg = arg + " --local-port=" + str(self.sip_port)
- self.have_reg = have_reg
- self.have_publish = have_publish
- if have_publish and have_reg and not ("--publish" in self.arg):
- self.arg = self.arg + " --publish"
- self.echo_enabled = echo_enabled
- self.trace_enabled = trace_enabled
- self.enable_buffer = enable_buffer
- class TestParam:
- title = ""
-
- inst_params = []
-
- skip = None
-
-
- process = []
-
- test_func = None
- post_func = None
- def __init__( self,
- title,
- inst_params,
- func=None,
- skip=False,
- post_func=None,
- need_stdout_buffer=False):
- self.title = title
- self.inst_params = inst_params
- self.skip = skip
- self.test_func = func
- self.post_func = post_func
- class TestError(Exception):
- desc = ""
- def __init__(self, desc):
- self.desc = desc
|