Commit 6a7bf803 authored by Rohit Gupta's avatar Rohit Gupta

Merge branch 'feature-34-test_framework' into develop

parents 96365966 6066ebb7
...@@ -98,43 +98,54 @@ Obj.# Case# Test# Description ...@@ -98,43 +98,54 @@ Obj.# Case# Test# Description
01 55 lte-softmodem tests with USRP B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX, 2TX/2RX 01 55 lte-softmodem tests with USRP B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX, 2TX/2RX
01 55 00 Band 7 FDD 5MHz UL Throughput for 60 sec for 1TX/1RX 01 55 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 55 01 Band 7 FDD 10MHz UL Throughput for 60 sec for 1TX/1RX 01 55 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 55 02 Band 7 FDD 20MHz UL Throughput for 60 sec for 1TX/1RX 01 55 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
01 55 03 Band 7 FDD 5MHz DL Throughput for 60 sec for 1TX/1RX 01 55 03 Band 7 FDD 5MHz DL Throughput for 300 sec for 1TX/1RX
01 55 04 Band 7 FDD 10MHz DL Throughput for 60 sec for 1TX/1RX 01 55 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 55 05 Band 7 FDD 20MHz DL Throughput for 60 sec for 1TX/1RX 01 55 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 55 06 Band 7 FDD 5MHz UL Throughput for 60 sec for 2TX/2RX 01 55 06 Band 7 FDD 5MHz UL Throughput for 300 sec for 2TX/2RX
01 55 07 Band 7 FDD 10MHz UL Throughput for 60 sec for 2TX/2RX 01 55 07 Band 7 FDD 10MHz UL Throughput for 300 sec for 2TX/2RX
01 55 08 Band 7 FDD 20MHz UL Throughput for 60 sec for 2TX/2RX 01 55 08 Band 7 FDD 20MHz UL Throughput for 300 sec for 2TX/2RX
01 55 09 Band 7 FDD 5MHz DL Throughput for 60 sec for 2TX/2RX 01 55 09 Band 7 FDD 5MHz DL Throughput for 300 sec for 2TX/2RX
01 55 10 Band 7 FDD 10MHz DL Throughput for 60 sec for 2TX/2RX 01 55 10 Band 7 FDD 10MHz DL Throughput for 300 sec for 2TX/2RX
01 55 11 Band 7 FDD 20MHz DL Throughput for 60 sec for 2TX/2RX 01 55 11 Band 7 FDD 20MHz DL Throughput for 300 sec for 2TX/2RX
01 56 lte-softmodem tests with USRP B210 RF as eNB and OAI EPC (eNB and EPC are on same machines) w/ Bandrich COTS UE 01 56 lte-softmodem tests with USRP B210 RF as eNB and OAI EPC (eNB and EPC are on same machines) w/ Bandrich COTS UE
01 56 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 56 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 56 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
01 56 03 Band 7 FDD 5MHz DL Throughput for 300 sec for 1TX/1RX
01 56 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 56 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 57 lte-softmodem tests with USRP B210 RF as eNB and OAI EPC (eNB and EPC are on different machines) w/ Bandrich COTS UE 01 57 lte-softmodem tests with USRP B210 RF as eNB and OAI EPC (eNB and EPC are on different machines) w/ Bandrich COTS UE
01 57 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 57 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 57 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
01 57 03 Band 7 FDD 5MHz DL Throughput for 300 sec for 1TX/1RX
01 57 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 57 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 58 lte-softmodem tests with USRP X310 RF as eNB and ALU EPC w/ Bandrich COTS UE for `TX/1RX, 2TX/2RX 01 58 lte-softmodem tests with USRP X310 RF as eNB and ALU EPC w/ Bandrich COTS UE for `TX/1RX, 2TX/2RX
01 58 00 Band 7 FDD 5MHz UL Throughput for 60 sec for 1TX/1RX 01 58 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 58 01 Band 7 FDD 10MHz UL Throughput for 60 sec for 1TX/1RX 01 58 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 58 02 Band 7 FDD 20MHz UL Throughput for 60 sec for 1TX/1RX 01 58 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
01 58 03 Band 7 FDD 5MHz DL Throughput for 60 sec for 1TX/1RX 01 58 03 Band 7 FDD 5MHz DL Throughput for 300 sec for 1TX/1RX
01 58 04 Band 7 FDD 10MHz DL Throughput for 60 sec for 1TX/1RX 01 58 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 58 05 Band 7 FDD 20MHz DL Throughput for 60 sec for 1TX/1RX 01 58 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 59 lte-softmodem tests with USRP X310 RF as eNB and OAI EPC (eNB and EPC are on same machines) w/ Bandrich COTS UE 01 59 lte-softmodem tests with USRP X310 RF as eNB and OAI EPC (eNB and EPC are on same machines) w/ Bandrich COTS UE
01 61 lte-softmodem tests with USRP X310 RF as eNB and OAI EPC (eNB and EPC are on different machines) w/ Bandrich COTS UE 01 61 lte-softmodem tests with USRP X310 RF as eNB and OAI EPC (eNB and EPC are on different machines) w/ Bandrich COTS UE
01 61 lte-softmodem tests with EXMIMO RF as eNB and ALU EPC w/ Bandrich COTS UE for `TX/1RX, 2TX/2RX 01 61 lte-softmodem tests with EXMIMO RF as eNB and ALU EPC w/ Bandrich COTS UE for `TX/1RX, 2TX/2RX
01 61 00 Band 7 FDD 5MHz UL Throughput for 60 sec for 1TX/1RX 01 61 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 61 01 Band 7 FDD 10MHz UL Throughput for 60 sec for 1TX/1RX 01 61 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 61 02 Band 7 FDD 20MHz UL Throughput for 60 sec for 1TX/1RX 01 61 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
01 61 03 Band 7 FDD 5MHz DL Throughput for 60 sec for 1TX/1RX 01 61 03 Band 7 FDD 5MHz DL Throughput for 300 sec for 1TX/1RX
01 61 04 Band 7 FDD 10MHz DL Throughput for 60 sec for 1TX/1RX 01 61 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 61 05 Band 7 FDD 20MHz DL Throughput for 60 sec for 1TX/1RX 01 61 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 62 lte-softmodem tests with EXMIMO RF as eNB and OAI EPC (eNB and EPC are on same machines) w/ Bandrich COTS UE 01 62 lte-softmodem tests with EXMIMO RF as eNB and OAI EPC (eNB and EPC are on same machines) w/ Bandrich COTS UE
01 63 lte-softmodem tests with EXMIMO RF as eNB and OAI EPC (eNB and EPC are on different machines) w/ Bandrich COTS UE 01 63 lte-softmodem tests with EXMIMO RF as eNB and OAI EPC (eNB and EPC are on different machines) w/ Bandrich COTS UE
......
...@@ -192,6 +192,7 @@ class core: ...@@ -192,6 +192,7 @@ class core:
if index == 0 or index == 1 : if index == 0 or index == 1 :
return self.oai.before return self.oai.before
else: else:
print "command = " + command + "rsp1 = " + rsp1 + " rsp2 = " + rsp2 + " index = " + str(index)
raise log.err(self.failed(command, rsp1 + ' or ' + rsp2,debug)) raise log.err(self.failed(command, rsp1 + ' or ' + rsp2,debug))
...@@ -240,7 +241,7 @@ class core: ...@@ -240,7 +241,7 @@ class core:
if (rsp.find(expect) == -1): if (rsp.find(expect) == -1):
return 'OK' return 'OK'
else: else:
print "command = " + cmd + "expect = " + expect + "rsp = " + rsp print "command = " + command + "expect = " + expect + "rsp = " + rsp
raise log.err(self.failed(command, expect,debug)) raise log.err(self.failed(command, expect,debug))
......
...@@ -258,17 +258,17 @@ def finalize_deploy_script (timeout_cmd, terminate_missing_procs='True'): ...@@ -258,17 +258,17 @@ def finalize_deploy_script (timeout_cmd, terminate_missing_procs='True'):
# \param logdirRepo directory of remote repository # \param logdirRepo directory of remote repository
# \param python_script python script location # \param python_script python script location
def update_config_file(oai, config_string, logdirRepo, python_script): def update_config_file(oai, config_string, logdirRepo, python_script):
cmd=""
if config_string : if config_string :
stringArray = config_string.splitlines() stringArray = config_string.splitlines()
cmd=""
#python_script = '$OPENAIR_DIR/targets/autotests/tools/search_repl.py' #python_script = '$OPENAIR_DIR/targets/autotests/tools/search_repl.py'
for string in stringArray: for string in stringArray:
#split the string based on space now #split the string based on space now
string1=string.split() string1=string.split()
cmd = cmd + 'python ' + python_script + ' ' + logdirRepo+'/'+string1[0] + ' ' + string1[1] + ' '+ string1[2] + '\n' cmd = cmd + 'python ' + python_script + ' ' + logdirRepo+'/'+string1[0] + ' ' + string1[1] + ' '+ string1[2] + '\n'
#cmd = cmd + 'perl -p -i -e \'s/'+ string1[1] + '\\s*=\\s*"\\S*"\\s*/' + string1[1] + ' = "' + string1[2] +'"' + '/g\' ' + logdirRepo + '/' +string1[0] + '\n' #cmd = cmd + 'perl -p -i -e \'s/'+ string1[1] + '\\s*=\\s*"\\S*"\\s*/' + string1[1] + ' = "' + string1[2] +'"' + '/g\' ' + logdirRepo + '/' +string1[0] + '\n'
return cmd return cmd
#result = oai.send_recv(cmd) #result = oai.send_recv(cmd)
# \brief thread safe sshsession wrapper due to occasional connection issues with ssh # \brief thread safe sshsession wrapper due to occasional connection issues with ssh
# \param machine name of machine # \param machine name of machine
...@@ -323,7 +323,7 @@ def cleanOldPrograms(oai, programList, CleanUpAluLteBox, ExmimoRfStop): ...@@ -323,7 +323,7 @@ def cleanOldPrograms(oai, programList, CleanUpAluLteBox, ExmimoRfStop):
#result = oai.send_recv(cmd) #result = oai.send_recv(cmd)
#print result #print result
result = oai.send_expect_false(cmd, 'Match found', False) result = oai.send_expect_false(cmd, 'Match found', False)
print result print "Looking for old programs..." + result
res=oai.send_recv(CleanUpAluLteBox, True) res=oai.send_recv(CleanUpAluLteBox, True)
res = oai.send_recv(ExmimoRfStop, False) res = oai.send_recv(ExmimoRfStop, False)
...@@ -359,7 +359,7 @@ class oaiThread (threading.Thread): ...@@ -359,7 +359,7 @@ class oaiThread (threading.Thread):
except Exception, e: except Exception, e:
error='' error=''
error = error + ' In class oaiThread, function: ' + sys._getframe().f_code.co_name + ': *** Caught exception: ' + str(e.__class__) + " : " + str( e) error = error + ' In class oaiThread, function: ' + sys._getframe().f_code.co_name + ': *** Caught exception: ' + str(e.__class__) + " : " + str( e)
error = error + '\n threadID = ' + str(self.threadID) + '\n threadname = ' + self.threadname + '\n timeout = ' + self.timeout + '\n machine = ' + self.machine + '\n cmd = ' + self.cmd + '\n timeout = ' + str(self.timeout) + '\n username = ' + self.username + '\n' error = error + '\n threadID = ' + str(self.threadID) + '\n threadname = ' + self.threadname + '\n timeout = ' + str(self.timeout) + '\n machine = ' + self.machine + '\n cmd = ' + self.cmd + '\n timeout = ' + str(self.timeout) + '\n username = ' + self.username + '\n'
error = error + traceback.format_exc() error = error + traceback.format_exc()
print error print error
...@@ -548,7 +548,7 @@ def wait_testcaseclass_generic_threads(threadListGeneric, timeout = 1): ...@@ -548,7 +548,7 @@ def wait_testcaseclass_generic_threads(threadListGeneric, timeout = 1):
# \param CleanupAluLteBox string that contains commands to stop ALU Bell Labs LTEBox (specified in test_case_list.xml) # \param CleanupAluLteBox string that contains commands to stop ALU Bell Labs LTEBox (specified in test_case_list.xml)
# \param ExmimoRfStop command to stop EXMIMO Card # \param ExmimoRfStop command to stop EXMIMO Card
# \param nruns_lte-softmodem global parameter to override number of runs (nruns) within the test case # \param nruns_lte-softmodem global parameter to override number of runs (nruns) within the test case
def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , logdirOpenaircnRepo, MachineList, user, password, CleanUpAluLteBox, ExmimoRfStop, nruns_lte_softmodem): def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , logdirOpenaircnRepo, MachineList, user, password, CleanUpAluLteBox, ExmimoRfStop, nruns_lte_softmodem, timeout_cmd):
#We ignore the password sent to this function for secuirity reasons for password present in log files #We ignore the password sent to this function for secuirity reasons for password present in log files
#It is recommended to add a line in /etc/sudoers that looks something like below. The line below will run sudo without password prompt #It is recommended to add a line in /etc/sudoers that looks something like below. The line below will run sudo without password prompt
# your_user_name ALL=(ALL:ALL) NOPASSWD: ALL # your_user_name ALL=(ALL:ALL) NOPASSWD: ALL
...@@ -558,7 +558,8 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , ...@@ -558,7 +558,8 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
#user = getpass.getuser() #user = getpass.getuser()
testcasename = testcase.get('id') testcasename = testcase.get('id')
testcaseclass = testcase.findtext('class',default='') testcaseclass = testcase.findtext('class',default='')
timeout_cmd = testcase.findtext('TimeOut_cmd',default='') if timeout_cmd == '':
timeout_cmd = testcase.findtext('TimeOut_cmd',default='')
timeout_cmd = int(float(timeout_cmd)) timeout_cmd = int(float(timeout_cmd))
#Timeout_thread is more than that of cmd to have room for compilation time, etc #Timeout_thread is more than that of cmd to have room for compilation time, etc
timeout_thread = timeout_cmd + 300 timeout_thread = timeout_cmd + 300
...@@ -580,6 +581,8 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , ...@@ -580,6 +581,8 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
eNB_traffic_exec_args = testcase.findtext('eNB_traffic_exec_args',default='') eNB_traffic_exec_args = testcase.findtext('eNB_traffic_exec_args',default='')
eNB_terminate_missing_procs = testcase.findtext('eNB_terminate_missing_procs',default='True') eNB_terminate_missing_procs = testcase.findtext('eNB_terminate_missing_procs',default='True')
eNB_search_expr_true = testcase.findtext('eNB_search_expr_true','') eNB_search_expr_true = testcase.findtext('eNB_search_expr_true','')
if re.compile('\w+').match(eNB_search_expr_true) != None:
eNB_search_expr_true = eNB_search_expr_true + ' duration=' + str(timeout_cmd-90) + 's'
UEMachine = testcase.findtext('UE',default='') UEMachine = testcase.findtext('UE',default='')
UE_config_file = testcase.findtext('UE_config_file',default='') UE_config_file = testcase.findtext('UE_config_file',default='')
...@@ -594,6 +597,8 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , ...@@ -594,6 +597,8 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
UE_terminate_missing_procs = testcase.findtext('UE_terminate_missing_procs',default='True') UE_terminate_missing_procs = testcase.findtext('UE_terminate_missing_procs',default='True')
UE_search_expr_true = testcase.findtext('UE_search_expr_true','') UE_search_expr_true = testcase.findtext('UE_search_expr_true','')
UE_stop_script = testcase.findtext('UE_stop_script','') UE_stop_script = testcase.findtext('UE_stop_script','')
if re.compile('\w+').match(UE_search_expr_true) != None:
UE_search_expr_true = UE_search_expr_true + ' duration=' + str(timeout_cmd-90) + 's'
EPCMachine = testcase.findtext('EPC',default='') EPCMachine = testcase.findtext('EPC',default='')
EPC_config_file = testcase.findtext('EPC_config_file',default='') EPC_config_file = testcase.findtext('EPC_config_file',default='')
...@@ -612,6 +617,8 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , ...@@ -612,6 +617,8 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
EPC_traffic_exec_args = testcase.findtext('EPC_traffic_exec_args',default='') EPC_traffic_exec_args = testcase.findtext('EPC_traffic_exec_args',default='')
EPC_terminate_missing_procs = testcase.findtext('EPC_terminate_missing_procs',default='True') EPC_terminate_missing_procs = testcase.findtext('EPC_terminate_missing_procs',default='True')
EPC_search_expr_true = testcase.findtext('EPC_search_expr_true','') EPC_search_expr_true = testcase.findtext('EPC_search_expr_true','')
if re.compile('\w+').match(EPC_search_expr_true) != None:
EPC_search_expr_true = EPC_search_expr_true + ' duration=' + str(timeout_cmd-90) + 's'
index_eNBMachine = MachineList.index(eNBMachine) index_eNBMachine = MachineList.index(eNBMachine)
index_UEMachine = MachineList.index(UEMachine) index_UEMachine = MachineList.index(UEMachine)
...@@ -680,6 +687,10 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , ...@@ -680,6 +687,10 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
logfile_task_eNB_out = logdir_eNB + '/eNB_task_out' + '_' + str(run) + '_.log' logfile_task_eNB_out = logdir_eNB + '/eNB_task_out' + '_' + str(run) + '_.log'
logfile_task_eNB = logdir_local_testcase + '/eNB_task' + '_' + str(run) + '_.log' logfile_task_eNB = logdir_local_testcase + '/eNB_task' + '_' + str(run) + '_.log'
logfile_local_traffic_eNB_out = logdir_local_testcase + '/eNB_traffic' + '_' + str(run) + '_.log' logfile_local_traffic_eNB_out = logdir_local_testcase + '/eNB_traffic' + '_' + str(run) + '_.log'
logfile_tshark_eNB = logdir_eNB + '/eNB_tshark' + '_' + str(run) + '_.log'
logfile_pcap_eNB = logdir_eNB + '/eNB_tshark' + '_' + str(run) + '_.pcap'
logfile_pcap_zip_eNB = logdir_eNB + '/eNB_tshark' + '_' + str(run) + '_.pcap.zip'
logfile_pcap_tmp_eNB = '/tmp/' + '/eNB_tshark' + '_' + str(run) + '_.pcap'
task_eNB_compile = ' ( uname -a ; date \n' task_eNB_compile = ' ( uname -a ; date \n'
task_eNB_compile = task_eNB_compile + 'cd ' + logdirOAI5GRepo + ' ; source oaienv ; source cmake_targets/tools/build_helper \n' task_eNB_compile = task_eNB_compile + 'cd ' + logdirOAI5GRepo + ' ; source oaienv ; source cmake_targets/tools/build_helper \n'
...@@ -701,9 +712,16 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , ...@@ -701,9 +712,16 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
task_eNB = task_eNB + 'array_exec_pid+=($!) \n' task_eNB = task_eNB + 'array_exec_pid+=($!) \n'
task_eNB = task_eNB + 'echo eNB_main_exec PID = $! \n' task_eNB = task_eNB + 'echo eNB_main_exec PID = $! \n'
if eNB_traffic_exec != "": if eNB_traffic_exec != "":
task_eNB = task_eNB + ' (date; ' + eNB_traffic_exec + ' ' + eNB_traffic_exec_args + ' ) > ' + logfile_traffic_eNB + ' 2>&1 & \n ' cmd_traffic = eNB_traffic_exec + ' ' + eNB_traffic_exec_args
if cmd_traffic.find('-c') >= 0:
cmd_traffic = cmd_traffic + ' -t ' + str(timeout_cmd - 60)
task_eNB = task_eNB + ' (date; ' + cmd_traffic + ' ) > ' + logfile_traffic_eNB + ' 2>&1 & \n'
task_eNB = task_eNB + 'array_exec_pid+=($!) \n' task_eNB = task_eNB + 'array_exec_pid+=($!) \n'
task_eNB = task_eNB + 'echo eNB_traffic_exec PID = $! \n' task_eNB = task_eNB + 'echo eNB_traffic_exec PID = $! \n'
task_eNB = task_eNB + ' (date; sudo rm -f ' + logfile_pcap_tmp_eNB + ' ; sudo -E tshark -i any -s 65535 -a duration:' + str(timeout_cmd-10)+ ' -w ' + logfile_pcap_tmp_eNB+ ' ; sudo -E chown ' + user + ' ' + logfile_pcap_tmp_eNB + ' ; zip -j -9 ' + logfile_pcap_zip_eNB + ' ' + logfile_pcap_tmp_eNB + ' ) > ' + logfile_tshark_eNB + ' 2>&1 & \n '
task_eNB = task_eNB + 'array_exec_pid+=($!) \n'
task_eNB = task_eNB + 'echo eNB_tshark_exec PID = $! \n'
#terminate the eNB test case after timeout_cmd seconds #terminate the eNB test case after timeout_cmd seconds
task_eNB = task_eNB + finalize_deploy_script (timeout_cmd, eNB_terminate_missing_procs) + ' \n' task_eNB = task_eNB + finalize_deploy_script (timeout_cmd, eNB_terminate_missing_procs) + ' \n'
#task_eNB = task_eNB + 'sleep ' + str(timeout_cmd) + ' \n' #task_eNB = task_eNB + 'sleep ' + str(timeout_cmd) + ' \n'
...@@ -747,7 +765,10 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , ...@@ -747,7 +765,10 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
task_UE = task_UE + 'array_exec_pid+=($!) \n' task_UE = task_UE + 'array_exec_pid+=($!) \n'
task_UE = task_UE + 'echo UE_main_exec PID = $! \n' task_UE = task_UE + 'echo UE_main_exec PID = $! \n'
if UE_traffic_exec != "": if UE_traffic_exec != "":
task_UE = task_UE + ' ( date; ' + UE_traffic_exec + ' ' + UE_traffic_exec_args + ' ) >' + logfile_traffic_UE + ' 2>&1 & \n' cmd_traffic = UE_traffic_exec + ' ' + UE_traffic_exec_args
if cmd_traffic.find('-c') >= 0:
cmd_traffic = cmd_traffic + ' -t ' + str(timeout_cmd - 60)
task_UE = task_UE + ' ( date; ' + cmd_traffic + ' ) >' + logfile_traffic_UE + ' 2>&1 & \n'
task_UE = task_UE + 'array_exec_pid+=($!) \n' task_UE = task_UE + 'array_exec_pid+=($!) \n'
task_UE = task_UE + 'echo UE_traffic_exec PID = $! \n' task_UE = task_UE + 'echo UE_traffic_exec PID = $! \n'
#terminate the UE test case after timeout_cmd seconds #terminate the UE test case after timeout_cmd seconds
...@@ -797,7 +818,10 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , ...@@ -797,7 +818,10 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
task_EPC = task_EPC + 'array_exec_pid+=($!) \n' task_EPC = task_EPC + 'array_exec_pid+=($!) \n'
task_EPC = task_EPC + 'echo EPC_main_exec PID = $! \n' task_EPC = task_EPC + 'echo EPC_main_exec PID = $! \n'
if EPC_traffic_exec != "": if EPC_traffic_exec != "":
task_EPC = task_EPC + '( date; ' + EPC_traffic_exec + ' ' + EPC_traffic_exec_args + ' ) > ' + logfile_traffic_EPC + ' 2>&1 & \n' cmd_traffic = EPC_traffic_exec + ' ' + EPC_traffic_exec_args
if cmd_traffic.find('-c') >= 0:
cmd_traffic = cmd_traffic + ' -t ' + str(timeout_cmd - 60)
task_EPC = task_EPC + '( date; ' + cmd_traffic + ' ) > ' + logfile_traffic_EPC + ' 2>&1 & \n'
task_EPC = task_EPC + 'array_exec_pid+=($!) \n' task_EPC = task_EPC + 'array_exec_pid+=($!) \n'
task_EPC = task_EPC + 'echo EPC_traffic_exec PID = $! \n' task_EPC = task_EPC + 'echo EPC_traffic_exec PID = $! \n'
#terminate the EPC test case after timeout_cmd seconds #terminate the EPC test case after timeout_cmd seconds
...@@ -861,6 +885,19 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , ...@@ -861,6 +885,19 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
thread_UE.start() thread_UE.start()
thread_UE.join() thread_UE.join()
#Now we change the permissions of the logfiles to avoid some of them being with root permissions
cmd = 'sudo -E chown -R ' + user + ' ' + logdir_eNB
res= oai_eNB.send_recv(cmd)
print "Changing permissions of logdir <" + logdir_eNB + "> in eNB machine..." + res
cmd = 'sudo -E chown -R ' + user + ' ' + logdir_UE
res= oai_UE.send_recv(cmd)
print "Changing permissions of logdir <" + logdir_UE + "> in UE machine..." + res
cmd = 'sudo -E chown -R ' + user + ' ' + logdir_EPC
res= oai_EPC.send_recv(cmd)
print "Changing permissions of logdir <" + logdir_EPC + "> in EPC machine..." + res
print "Copying files from EPCMachine : " + EPCMachine + "logdir_EPC = " + logdir_EPC print "Copying files from EPCMachine : " + EPCMachine + "logdir_EPC = " + logdir_EPC
#ssh = SSHSession(EPCMachine , username=user, key_file=None, password=password) #ssh = SSHSession(EPCMachine , username=user, key_file=None, password=password)
...@@ -1019,7 +1056,8 @@ MachineListGeneric='' ...@@ -1019,7 +1056,8 @@ MachineListGeneric=''
flag_remove_logdir=False flag_remove_logdir=False
flag_start_testcase=False flag_start_testcase=False
nruns_lte_softmodem='' nruns_lte_softmodem=''
flag_skip_git_head_check=False
Timeout_cmd=''
print "Number of arguments argc = " + str(len(sys.argv)) print "Number of arguments argc = " + str(len(sys.argv))
#for index in range(1,len(sys.argv) ): #for index in range(1,len(sys.argv) ):
# print "argv_" + str(index) + " : " + sys.argv[index] # print "argv_" + str(index) + " : " + sys.argv[index]
...@@ -1073,6 +1111,11 @@ while i < len (sys.argv): ...@@ -1073,6 +1111,11 @@ while i < len (sys.argv):
MachineListGeneric = MachineListGeneric.replace("\"","") MachineListGeneric = MachineListGeneric.replace("\"","")
MachineListGeneric = MachineListGeneric.replace("\'","") MachineListGeneric = MachineListGeneric.replace("\'","")
i = i +1 i = i +1
elif arg == '--skip-git-head-check':
flag_skip_git_head_check=True
elif arg == '--timeout_cmd':
Timeout_cmd = sys.argv[i+1]
i = i +1
elif arg == '-h' : elif arg == '-h' :
print "-s: This flag *MUST* be set to start the test cases" print "-s: This flag *MUST* be set to start the test cases"
print "-r: Remove the log directory in autotests" print "-r: Remove the log directory in autotests"
...@@ -1086,6 +1129,8 @@ while i < len (sys.argv): ...@@ -1086,6 +1129,8 @@ while i < len (sys.argv):
print "--nrun_lte_softmodem: Set the number of runs for lte-softmodem test case class" print "--nrun_lte_softmodem: Set the number of runs for lte-softmodem test case class"
print "-MachineList : overrides the MachineList parameter in test_case_list.xml" print "-MachineList : overrides the MachineList parameter in test_case_list.xml"
print "-MachineListGeneric : overrides the MachineListGeneric parameter in test_case_list.xml" print "-MachineListGeneric : overrides the MachineListGeneric parameter in test_case_list.xml"
print "--skip-git-head-check: skip checking of GitHead remote/local branch (only for debugging)"
print "--timeout_cmd: Override the default parameter (timeout_cmd) in test_case_list.xml. This parameter is in seconds and should be > 120"
sys.exit() sys.exit()
else : else :
print "Unrecongnized Option: <" + arg + ">. Use -h to see valid options" print "Unrecongnized Option: <" + arg + ">. Use -h to see valid options"
...@@ -1186,6 +1231,7 @@ print "GitOAI5GBranch = " + GitOAI5GRepoBranch ...@@ -1186,6 +1231,7 @@ print "GitOAI5GBranch = " + GitOAI5GRepoBranch
print "GitOpenaircnRepoBranch = " + GitOpenaircnRepoBranch print "GitOpenaircnRepoBranch = " + GitOpenaircnRepoBranch
print "NFSResultsShare = " + NFSResultsShare print "NFSResultsShare = " + NFSResultsShare
print "nruns_lte_softmodem = " + nruns_lte_softmodem print "nruns_lte_softmodem = " + nruns_lte_softmodem
print "Timeout_cmd = " + Timeout_cmd
if GitOAI5GHeadVersion == '': if GitOAI5GHeadVersion == '':
cmd = "git show-ref --heads -s "+ GitOAI5GRepoBranch cmd = "git show-ref --heads -s "+ GitOAI5GRepoBranch
...@@ -1289,7 +1335,10 @@ for oai in oai_list: ...@@ -1289,7 +1335,10 @@ for oai in oai_list:
cmd = cmd + 'git_head=${git_head[0]} \n' cmd = cmd + 'git_head=${git_head[0]} \n'
cmd = cmd + 'echo \"GitOAI5GHeadVersion_remote = $git_head\"' cmd = cmd + 'echo \"GitOAI5GHeadVersion_remote = $git_head\"'
cmd = cmd + 'echo \"GitOAI5GHeadVersion_local = ' + GitOAI5GHeadVersion + '\" \n' cmd = cmd + 'echo \"GitOAI5GHeadVersion_local = ' + GitOAI5GHeadVersion + '\" \n'
cmd = cmd + 'if [ \"$git_head\" != \"'+ GitOAI5GHeadVersion + '\" ]; then echo \"error: Git openairinterface5g head version does not match\" ; fi \n' if flag_skip_git_head_check==True:
cmd = cmd + 'echo \"skipping GitHead check...\" \n '
else:
cmd = cmd + 'if [ \"$git_head\" != \"'+ GitOAI5GHeadVersion + '\" ]; then echo \"error: Git openairinterface5g head version does not match\" ; fi \n'
cmd = cmd + 'source oaienv' + '\n' cmd = cmd + 'source oaienv' + '\n'
cmd = cmd + 'cd ' + logdirOpenaircnRepo + '\n' cmd = cmd + 'cd ' + logdirOpenaircnRepo + '\n'
cmd = cmd + 'git checkout ' + GitOpenaircnRepoBranch + '\n' cmd = cmd + 'git checkout ' + GitOpenaircnRepoBranch + '\n'
...@@ -1375,8 +1424,8 @@ for testcase in testcaseList: ...@@ -1375,8 +1424,8 @@ for testcase in testcaseList:
print "eNBMachine : " + eNBMachine + "UEMachine : " + UEMachine + "EPCMachine : " + EPCMachine + "MachineList : " + ','.join(MachineList) print "eNBMachine : " + eNBMachine + "UEMachine : " + UEMachine + "EPCMachine : " + EPCMachine + "MachineList : " + ','.join(MachineList)
print "testcasename = " + testcasename + " class = " + testcaseclass print "testcasename = " + testcasename + " class = " + testcaseclass
threadListGlobal = wait_testcaseclass_generic_threads(threadListGlobal, Timeout_execution) threadListGlobal = wait_testcaseclass_generic_threads(threadListGlobal, Timeout_execution)
cleanOldProgramsAllMachines(oai_list, CleanUpOldProgs, CleanUpAluLteBox, ExmimoRfStop) #cleanOldProgramsAllMachines(oai_list, CleanUpOldProgs, CleanUpAluLteBox, ExmimoRfStop)
handle_testcaseclass_softmodem (testcase, CleanUpOldProgs, logdirOAI5GRepo, logdirOpenaircnRepo, MachineList, user, pw, CleanUpAluLteBox, ExmimoRfStop, nruns_lte_softmodem ) handle_testcaseclass_softmodem (testcase, CleanUpOldProgs, logdirOAI5GRepo, logdirOpenaircnRepo, MachineList, user, pw, CleanUpAluLteBox, ExmimoRfStop, nruns_lte_softmodem, Timeout_cmd )
elif (testcaseclass == 'compilation'): elif (testcaseclass == 'compilation'):
threadListGlobal = handle_testcaseclass_generic (testcasename, threadListGlobal, CleanUpOldProgs, logdirOAI5GRepo, MachineListGeneric, user, pw, CleanUpAluLteBox,Timeout_execution, ExmimoRfStop) threadListGlobal = handle_testcaseclass_generic (testcasename, threadListGlobal, CleanUpOldProgs, logdirOAI5GRepo, MachineListGeneric, user, pw, CleanUpAluLteBox,Timeout_execution, ExmimoRfStop)
elif (testcaseclass == 'execution'): elif (testcaseclass == 'execution'):
...@@ -1412,7 +1461,7 @@ cmd = ' rm -fr ' + NFSTestsResultsDir + ' ; mkdir -p ' + NFSTestsResultsDir ...@@ -1412,7 +1461,7 @@ cmd = ' rm -fr ' + NFSTestsResultsDir + ' ; mkdir -p ' + NFSTestsResultsDir
res = oai_localhost.send_recv(cmd) res = oai_localhost.send_recv(cmd)
print "Deleting NFSTestResults Dir..." + res print "Deleting NFSTestResults Dir..." + res
print "Copying files from GilabCI Runner Machine : " + host + "locallogdir = " + locallogdir + ", NFSTestsResultsDir = " + NFSTestsResultsDir print "Copying files from GilabCI Runner Machine : " + host + " .locallogdir = " + locallogdir + ", NFSTestsResultsDir = " + NFSTestsResultsDir
SSHSessionWrapper('localhost', user, None, pw , NFSTestsResultsDir , locallogdir, "put_all") SSHSessionWrapper('localhost', user, None, pw , NFSTestsResultsDir , locallogdir, "put_all")
sys.exit() sys.exit()
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -126,8 +126,8 @@ def start_ue () : ...@@ -126,8 +126,8 @@ def start_ue () :
break break
ip = IPRoute() ip = IPRoute()
idx = ip.link_lookup(ifname=iface)[0] idx = ip.link_lookup(ifname=iface)[0]
os.system ('route add 192.172.0.1 ppp0') os.system ('route add ' + gw + ' ppp0')
os.system ('ping 192.172.0.1') os.system ('ping ' + gw)
break break
except Exception, e: except Exception, e:
error = ' Interface ' + iface + 'does not exist...' error = ' Interface ' + iface + 'does not exist...'
...@@ -188,7 +188,10 @@ def find_usb_path(idVendor, idProduct): ...@@ -188,7 +188,10 @@ def find_usb_path(idVendor, idProduct):
return tmpdir return tmpdir
return '' return ''
for arg in sys.argv[1:]: i=1
gw='192.172.0.1'
while i < len(sys.argv):
arg=sys.argv[i]
if arg == '--start-ue' : if arg == '--start-ue' :
find_open_port() find_open_port()
print 'Using Serial port : ' + serial_port print 'Using Serial port : ' + serial_port
...@@ -199,8 +202,17 @@ for arg in sys.argv[1:]: ...@@ -199,8 +202,17 @@ for arg in sys.argv[1:]:
stop_ue() stop_ue()
elif arg == '--reset-ue' : elif arg == '--reset-ue' :
reset_ue() reset_ue()
elif arg == '-gw' :
gw = sys.argv[i+1]
i=i+1
elif arg == '-h' :
print "--reset-ue: Reset the UE on USB Bus. Similar to unplugging and plugging the UE"
print "--stop-ue: Stop the UE. Send DETACH command"
print "--start-ue: Start the UE. Send ATTACH command"
print "-gw: Specify the default gw as sometimes the gateway/route arguments are not set properly via wvdial"
else : else :
print " Script called with wrong arguments, arg = " + arg print " Script called with wrong arguments, arg = " + arg
sys.exit() sys.exit()
i = i +1
...@@ -19,9 +19,11 @@ file.close() ...@@ -19,9 +19,11 @@ file.close()
if keyword == 'mme_ip_address': if keyword == 'mme_ip_address':
#string = (re.sub(r"mme_ip_address\s*=\s*\([^\$]+)\)\s*;\s*", r"<% tex \1 %>", t, re.M)
replacement_text = keyword + ' = ( { ' + replacement_text + ' } ) ; ' replacement_text = keyword + ' = ( { ' + replacement_text + ' } ) ; '
string = re.sub(r"mme_ip_address\s*=\s*\(([^\$]+?)\)\s*;", replacement_text, string, re.M) string = re.sub(r"mme_ip_address\s*=\s*\(([^\$]+?)\)\s*;", replacement_text, string, re.M)
elif keyword == 'IPV4_LIST':
replacement_text = keyword + ' = ( ' + replacement_text + ' ) ; '
string = re.sub(r"IPV4_LIST\s*=\s*\(([^\$]+?)\)\s*;", replacement_text, string, re.M)
else : else :
replacement_text = keyword + ' = ' + replacement_text + ' ; ' replacement_text = keyword + ' = ' + replacement_text + ' ; '
string = re.sub(r"%s\s*=\s*([^\$]+?)\s*;" % keyword , replacement_text, string, re.M) string = re.sub(r"%s\s*=\s*([^\$]+?)\s*;" % keyword , replacement_text, string, re.M)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment