Changeset 4183


Ignore:
Timestamp:
Jun 28, 2012 9:16:03 AM (12 years ago)
Author:
nanang
Message:

Re #1523:

  • runall.py: fix option parser
  • run.py: avoid double newlines in logging
  • mod_sipp.py: redirect sipp output to /dev/null & add sipp error string
  • misc fixes on sipp scenarios, e.g: regex to get via branch, file rename.
Location:
pjproject/trunk/tests/pjsua
Files:
8 edited
2 moved

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/tests/pjsua/mod_sipp.py

    r4179 r4183  
    1717    G_INUNIX = True 
    1818 
     19# /dev/null handle, for redirecting output when SIPP is not in background mode 
     20FDEVNULL = None 
     21 
    1922# SIPp executable path and param 
    2023#SIPP_PATH = '"C:\\Program Files (x86)\\Sipp_3.2\\sipp.exe"' 
     
    2528# On non-BG mode, on win, it needs env var: "TERMINFO=c:\cygwin\usr\share\terminfo" 
    2629# TODO: on unix with BG mode, waitpid() always fails, need to be fixed 
    27 #SIPP_BG_MODE = True 
    28 SIPP_BG_MODE = not G_INUNIX 
     30SIPP_BG_MODE = False 
     31#SIPP_BG_MODE = not G_INUNIX 
    2932 
    3033# Will be updated based on configuration file (a .py file whose the same name as SIPp XML file) 
     
    8083        sipp_proc = subprocess.Popen(fullcmd, bufsize=0, stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=G_INUNIX, universal_newlines=False) 
    8184    else: 
    82         sipp_proc = subprocess.Popen(fullcmd, shell=G_INUNIX) 
     85        # redirect output to NULL 
     86        global FDEVNULL 
     87        FDEVNULL  = open(os.devnull, 'w') 
     88        sipp_proc = subprocess.Popen(fullcmd, shell=G_INUNIX, stdout=FDEVNULL, stderr=FDEVNULL) 
    8389 
    8490    if not SIPP_BG_MODE: 
     
    115121def wait_sipp(sipp): 
    116122    if not SIPP_BG_MODE: 
     123        global FDEVNULL 
    117124        sipp.wait() 
     125        FDEVNULL.close() 
    118126        return sipp.returncode 
    119127 
     
    176184    # Ideally the poll should be done contiunously until SIPp process is 
    177185    # terminated. 
    178     ua[0].expect(inc_const.STDOUT_REFRESH, raise_on_error = False) 
     186    for ua_idx in range(len(ua)): 
     187        ua[ua_idx].expect(inc_const.STDOUT_REFRESH, raise_on_error = False) 
    179188 
    180189    return ua_err_st 
     190 
     191 
     192def sipp_err_to_str(err_code): 
     193    if err_code == 0: 
     194        return "All calls were successful" 
     195    elif err_code == 1: 
     196        return "At least one call failed" 
     197    elif err_code == 97: 
     198        return "exit on internal command. Calls may have been processed" 
     199    elif err_code == 99: 
     200        return "Normal exit without calls processed" 
     201    elif err_code == -1: 
     202        return "Fatal error (timeout)" 
     203    elif err_code == -2: 
     204        return "Fatal error binding a socket" 
     205    else: 
     206        return "Unknown error" 
    181207 
    182208 
     
    199225 
    200226    if sipp_ret_code: 
    201         raise TestError("SIPp returned error " + str(sipp_ret_code)) 
     227        rc = ctypes.c_byte(sipp_ret_code).value 
     228        raise TestError("SIPp returned error " + str(rc) + ": " + sipp_err_to_str(rc)) 
    202229 
    203230 
  • pjproject/trunk/tests/pjsua/run.py

    r3475 r4183  
    144144                        # Print the line if echo is ON 
    145145                        if self.echo: 
    146                                 print self.name + ": " + line, 
     146                                print self.name + ": " + line.rstrip() 
    147147                        # Trap assertion error 
    148148                        if self.ra.search(line) != None: 
  • pjproject/trunk/tests/pjsua/runall.py

    r4177 r4183  
    9494                        resume_script=sys.argv[1] 
    9595                        sys.argv.pop(0) 
    96                         sys.argv.pop(1) 
     96                        sys.argv.pop(0) 
    9797                else: 
    9898                        sys.argv.pop(0) 
     
    120120                        shell_cmd = sys.argv[1] 
    121121                        sys.argv.pop(0) 
    122                         sys.argv.pop(1) 
     122                        sys.argv.pop(0) 
    123123                else: 
    124124                        sys.argv.pop(0) 
    125125                        sys.stderr.write("Error: argument value required") 
    126126                        sys.exit(1) 
     127        else: 
     128                # should be run.py options 
     129                break 
    127130 
    128131 
    129132# Generate arguments for run.py 
    130 argv_st = " ".join(sys.argv) 
     133argv_st = " ".join(sys.argv) + " " 
    131134 
    132135# Init vars 
  • pjproject/trunk/tests/pjsua/scripts-sipp/transfer-attended.py

    r4178 r4183  
    1212                 [0, "", "m"], 
    1313                 [0, "", "sip:localhost:5062"], 
     14                 [0, const.STATE_CALLING, ""], 
    1415                 [1, const.EVENT_INCOMING_CALL, "a"], 
    1516                 [1, "", "200"], 
     
    2526                 [1, "", "m"], 
    2627                 [1, "", "sip:localhost:5064"], 
     28                 [1, const.STATE_CALLING, ""], 
    2729                 [2, const.EVENT_INCOMING_CALL, "a"], 
    2830                 [2, "", "200"], 
     
    4749                 [0, const.MEDIA_ACTIVE, ""], 
    4850                 [2, const.MEDIA_ACTIVE, ""], 
    49                  [1, "", " "], 
    50                  [1, "have 0 active call", ""], 
     51                 [1, const.STATE_DISCONNECTED, ""] 
    5152                ] 
  • pjproject/trunk/tests/pjsua/scripts-sipp/transfer-unattended.py

    r4178 r4183  
    1212                 [0, "", "m"], 
    1313                 [0, "", "sip:localhost:5062"], 
     14                 [0, const.STATE_CALLING, ""], 
    1415                 [1, const.EVENT_INCOMING_CALL, "a"], 
    1516                 [1, "", "200"], 
     
    2627                 [2, const.MEDIA_ACTIVE, ""], 
    2728                 [1, "call transfered successfully", ""], 
    28                  [1, "", " "], 
    29                  [1, "have 0 active call", ""], 
     29                 [1, const.STATE_DISCONNECTED, ""] 
    3030                ] 
  • pjproject/trunk/tests/pjsua/scripts-sipp/uas-forked-100rel.xml

    r3841 r4183  
    2323  <recv request="INVITE" crlf="true"> 
    2424   <action> 
    25     <ereg regexp="branch=([0-9a-zA-Z\-]*)" 
     25    <ereg regexp="branch=([^;]*)" 
    2626          search_in="hdr" 
    27           header="Via" 
     27          header="Via" 
    2828          assign_to="1,2"/> 
    2929    <assign assign_to="1" variable="2"/> 
  • pjproject/trunk/tests/pjsua/scripts-sipp/uas-forked-200.xml

    r4177 r4183  
    2323  <recv request="INVITE" crlf="true"> 
    2424   <action> 
    25     <ereg regexp="branch=([0-9a-zA-Z]*)" 
     25    <ereg regexp="branch=([^;]*)" 
    2626          search_in="hdr" 
    27           header="Via" 
     27          header="Via" 
    2828          assign_to="1,2"/> 
    2929    <assign assign_to="1" variable="2"/> 
  • pjproject/trunk/tests/pjsua/scripts-sipp/uas-prack_fork.xml

    r4177 r4183  
    2323  <recv request="INVITE" crlf="true"> 
    2424   <action> 
    25     <ereg regexp="branch=([0-9a-zA-Z]*)" 
    26           search_in="msg" 
     25    <ereg regexp="branch=([^;]*)" 
     26          search_in="hdr" 
     27          header="Via" 
    2728          assign_to="3"/> 
    2829    <ereg regexp="CSeq: ([0-9a-zA-Z ]*)" 
Note: See TracChangeset for help on using the changeset viewer.