CI: fix merge request case
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
This commit is contained in:
+80
-70
@@ -49,23 +49,33 @@ class HTMLManagement():
|
|||||||
self.htmlFile = ''
|
self.htmlFile = ''
|
||||||
self.htmlHeaderCreated = False
|
self.htmlHeaderCreated = False
|
||||||
self.htmlFooterCreated = False
|
self.htmlFooterCreated = False
|
||||||
|
|
||||||
|
self.ranRepository = ''
|
||||||
|
self.ranBranch = ''
|
||||||
|
self.ranCommitID = ''
|
||||||
self.ranAllowMerge = False
|
self.ranAllowMerge = False
|
||||||
|
self.ranTargetBranch = ''
|
||||||
|
|
||||||
self.nbTestXMLfiles = 0
|
self.nbTestXMLfiles = 0
|
||||||
self.htmlTabRefs = []
|
self.htmlTabRefs = []
|
||||||
self.htmlTabNames = []
|
self.htmlTabNames = []
|
||||||
self.htmlTabIcons = []
|
self.htmlTabIcons = []
|
||||||
self.testXMLfiles = []
|
self.testXMLfiles = []
|
||||||
|
|
||||||
self.htmleNBFailureMsg = ''
|
self.htmleNBFailureMsg = ''
|
||||||
self.htmlUEFailureMsg = ''
|
self.htmlUEFailureMsg = ''
|
||||||
|
|
||||||
|
self.startTime = int(round(time.time() * 1000))
|
||||||
|
self.testCase_id = ''
|
||||||
|
self.desc = ''
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
# Setters and Getters
|
# Setters and Getters
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
def SethtmlUEFailureMsg(self,huefa):
|
def SethtmlUEFailureMsg(self,huefa):
|
||||||
self.htmlUEFailureMsg = huefa
|
self.htmlUEFailureMsg = huefa
|
||||||
def GethtmlUEFailureMsg(self):
|
def GethtmlUEFailureMsg(self):
|
||||||
return huefa
|
return self.htmlUEFailureMsg
|
||||||
|
|
||||||
|
|
||||||
def SetreseNB(self,rsenb):
|
def SetreseNB(self,rsenb):
|
||||||
self.reseNB = rsenb
|
self.reseNB = rsenb
|
||||||
@@ -386,76 +396,76 @@ class HTMLManagement():
|
|||||||
self.htmlFile.close()
|
self.htmlFile.close()
|
||||||
|
|
||||||
def CreateHtmlTestRow(self, options, status, processesStatus, machine='eNB'):
|
def CreateHtmlTestRow(self, options, status, processesStatus, machine='eNB'):
|
||||||
if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)):
|
print ('RD: calling CreateHtmlTestRow')
|
||||||
self.htmlFile = open('test_results.html', 'a')
|
self.htmlFile = open('test_results.html', 'a')
|
||||||
currentTime = int(round(time.time() * 1000)) - self.startTime
|
currentTime = int(round(time.time() * 1000)) - self.startTime
|
||||||
self.htmlFile.write(' <tr>\n')
|
self.htmlFile.write(' <tr>\n')
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcyan" >' + format(currentTime / 1000, '.1f') + '</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcyan" >' + format(currentTime / 1000, '.1f') + '</td>\n')
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcyan" >' + self.testCase_id + '</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcyan" >' + self.testCase_id + '</td>\n')
|
||||||
self.htmlFile.write(' <td>' + self.desc + '</td>\n')
|
self.htmlFile.write(' <td>' + self.desc + '</td>\n')
|
||||||
self.htmlFile.write(' <td>' + str(options) + '</td>\n')
|
self.htmlFile.write(' <td>' + str(options) + '</td>\n')
|
||||||
if (str(status) == 'OK'):
|
if (str(status) == 'OK'):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightgreen" >' + str(status) + '</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightgreen" >' + str(status) + '</td>\n')
|
||||||
elif (str(status) == 'KO'):
|
elif (str(status) == 'KO'):
|
||||||
if (processesStatus == 0):
|
if (processesStatus == 0):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >' + str(status) + '</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >' + str(status) + '</td>\n')
|
||||||
elif (processesStatus == ENB_PROCESS_FAILED):
|
elif (processesStatus == ENB_PROCESS_FAILED):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - eNB process not found</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - eNB process not found</td>\n')
|
||||||
elif (processesStatus == OAI_UE_PROCESS_FAILED):
|
elif (processesStatus == OAI_UE_PROCESS_FAILED):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - OAI UE process not found</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - OAI UE process not found</td>\n')
|
||||||
elif (processesStatus == ENB_PROCESS_SEG_FAULT) or (processesStatus == OAI_UE_PROCESS_SEG_FAULT):
|
elif (processesStatus == ENB_PROCESS_SEG_FAULT) or (processesStatus == OAI_UE_PROCESS_SEG_FAULT):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' process ended in Segmentation Fault</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' process ended in Segmentation Fault</td>\n')
|
||||||
elif (processesStatus == ENB_PROCESS_ASSERTION) or (processesStatus == OAI_UE_PROCESS_ASSERTION):
|
elif (processesStatus == ENB_PROCESS_ASSERTION) or (processesStatus == OAI_UE_PROCESS_ASSERTION):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' process ended in Assertion</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' process ended in Assertion</td>\n')
|
||||||
elif (processesStatus == ENB_PROCESS_REALTIME_ISSUE):
|
elif (processesStatus == ENB_PROCESS_REALTIME_ISSUE):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' process faced Real Time issue(s)</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' process faced Real Time issue(s)</td>\n')
|
||||||
elif (processesStatus == ENB_PROCESS_NOLOGFILE_TO_ANALYZE) or (processesStatus == OAI_UE_PROCESS_NOLOGFILE_TO_ANALYZE):
|
elif (processesStatus == ENB_PROCESS_NOLOGFILE_TO_ANALYZE) or (processesStatus == OAI_UE_PROCESS_NOLOGFILE_TO_ANALYZE):
|
||||||
self.htmlFile.write(' <td bgcolor = "orange" >OK?</td>\n')
|
self.htmlFile.write(' <td bgcolor = "orange" >OK?</td>\n')
|
||||||
elif (processesStatus == ENB_PROCESS_SLAVE_RRU_NOT_SYNCED):
|
elif (processesStatus == ENB_PROCESS_SLAVE_RRU_NOT_SYNCED):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' Slave RRU could not synch</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - ' + machine + ' Slave RRU could not synch</td>\n')
|
||||||
elif (processesStatus == OAI_UE_PROCESS_COULD_NOT_SYNC):
|
elif (processesStatus == OAI_UE_PROCESS_COULD_NOT_SYNC):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - UE could not sync</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - UE could not sync</td>\n')
|
||||||
elif (processesStatus == HSS_PROCESS_FAILED):
|
elif (processesStatus == HSS_PROCESS_FAILED):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - HSS process not found</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - HSS process not found</td>\n')
|
||||||
elif (processesStatus == MME_PROCESS_FAILED):
|
elif (processesStatus == MME_PROCESS_FAILED):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - MME process not found</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - MME process not found</td>\n')
|
||||||
elif (processesStatus == SPGW_PROCESS_FAILED):
|
elif (processesStatus == SPGW_PROCESS_FAILED):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - SPGW process not found</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - SPGW process not found</td>\n')
|
||||||
elif (processesStatus == UE_IP_ADDRESS_ISSUE):
|
elif (processesStatus == UE_IP_ADDRESS_ISSUE):
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - Could not retrieve UE IP address</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >KO - Could not retrieve UE IP address</td>\n')
|
||||||
else:
|
|
||||||
self.htmlFile.write(' <td bgcolor = "lightcoral" >' + str(status) + '</td>\n')
|
|
||||||
else:
|
else:
|
||||||
self.htmlFile.write(' <td bgcolor = "orange" >' + str(status) + '</td>\n')
|
self.htmlFile.write(' <td bgcolor = "lightcoral" >' + str(status) + '</td>\n')
|
||||||
if (len(str(self.htmleNBFailureMsg)) > 2):
|
else:
|
||||||
cellBgColor = 'white'
|
self.htmlFile.write(' <td bgcolor = "orange" >' + str(status) + '</td>\n')
|
||||||
result = re.search('ended with|faced real time issues', self.htmleNBFailureMsg)
|
if (len(str(self.htmleNBFailureMsg)) > 2):
|
||||||
if result is not None:
|
cellBgColor = 'white'
|
||||||
cellBgColor = 'red'
|
result = re.search('ended with|faced real time issues', self.htmleNBFailureMsg)
|
||||||
else:
|
if result is not None:
|
||||||
result = re.search('showed|Reestablishment|Could not copy eNB logfile', self.htmleNBFailureMsg)
|
cellBgColor = 'red'
|
||||||
if result is not None:
|
|
||||||
cellBgColor = 'orange'
|
|
||||||
self.htmlFile.write(' <td bgcolor = "' + cellBgColor + '" colspan=' + str(self.htmlUEConnected) + '><pre style="background-color:' + cellBgColor + '">' + self.htmleNBFailureMsg + '</pre></td>\n')
|
|
||||||
self.htmleNBFailureMsg = ''
|
|
||||||
elif (len(str(self.htmlUEFailureMsg)) > 2):
|
|
||||||
cellBgColor = 'white'
|
|
||||||
result = re.search('ended with|faced real time issues', self.htmlUEFailureMsg)
|
|
||||||
if result is not None:
|
|
||||||
cellBgColor = 'red'
|
|
||||||
else:
|
|
||||||
result = re.search('showed|Could not copy UE logfile|oaitun_ue1 interface is either NOT mounted or NOT configured', self.htmlUEFailureMsg)
|
|
||||||
if result is not None:
|
|
||||||
cellBgColor = 'orange'
|
|
||||||
self.htmlFile.write(' <td bgcolor = "' + cellBgColor + '" colspan=' + str(self.htmlUEConnected) + '><pre style="background-color:' + cellBgColor + '">' + self.htmlUEFailureMsg + '</pre></td>\n')
|
|
||||||
self.htmlUEFailureMsg = ''
|
|
||||||
else:
|
else:
|
||||||
i = 0
|
result = re.search('showed|Reestablishment|Could not copy eNB logfile', self.htmleNBFailureMsg)
|
||||||
while (i < self.htmlUEConnected):
|
if result is not None:
|
||||||
self.htmlFile.write(' <td>-</td>\n')
|
cellBgColor = 'orange'
|
||||||
i += 1
|
self.htmlFile.write(' <td bgcolor = "' + cellBgColor + '" colspan=' + str(self.htmlUEConnected) + '><pre style="background-color:' + cellBgColor + '">' + self.htmleNBFailureMsg + '</pre></td>\n')
|
||||||
self.htmlFile.write(' </tr>\n')
|
self.htmleNBFailureMsg = ''
|
||||||
self.htmlFile.close()
|
elif (len(str(self.htmlUEFailureMsg)) > 2):
|
||||||
|
cellBgColor = 'white'
|
||||||
|
result = re.search('ended with|faced real time issues', self.htmlUEFailureMsg)
|
||||||
|
if result is not None:
|
||||||
|
cellBgColor = 'red'
|
||||||
|
else:
|
||||||
|
result = re.search('showed|Could not copy UE logfile|oaitun_ue1 interface is either NOT mounted or NOT configured', self.htmlUEFailureMsg)
|
||||||
|
if result is not None:
|
||||||
|
cellBgColor = 'orange'
|
||||||
|
self.htmlFile.write(' <td bgcolor = "' + cellBgColor + '" colspan=' + str(self.htmlUEConnected) + '><pre style="background-color:' + cellBgColor + '">' + self.htmlUEFailureMsg + '</pre></td>\n')
|
||||||
|
self.htmlUEFailureMsg = ''
|
||||||
|
else:
|
||||||
|
i = 0
|
||||||
|
while (i < self.htmlUEConnected):
|
||||||
|
self.htmlFile.write(' <td>-</td>\n')
|
||||||
|
i += 1
|
||||||
|
self.htmlFile.write(' </tr>\n')
|
||||||
|
self.htmlFile.close()
|
||||||
|
|
||||||
def CreateHtmlTestRowQueue(self, options, status, ue_status, ue_queue):
|
def CreateHtmlTestRowQueue(self, options, status, ue_status, ue_queue):
|
||||||
if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)):
|
if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)):
|
||||||
|
|||||||
+2
-4
@@ -760,7 +760,6 @@ class OaiCiTest():
|
|||||||
else:
|
else:
|
||||||
SSH.command('ssh ' + self.UEDevicesRemoteUser[idx] + '@' + self.UEDevicesRemoteServer[idx] + ' \'adb -s ' + device_id + ' shell "dumpsys telephony.registry"\' | grep -m 1 mDataConnectionState', '\$', 60)
|
SSH.command('ssh ' + self.UEDevicesRemoteUser[idx] + '@' + self.UEDevicesRemoteServer[idx] + ' \'adb -s ' + device_id + ' shell "dumpsys telephony.registry"\' | grep -m 1 mDataConnectionState', '\$', 60)
|
||||||
result = re.search('mDataConnectionState.*=(?P<state>[0-9\-]+)', SSH.getBefore())
|
result = re.search('mDataConnectionState.*=(?P<state>[0-9\-]+)', SSH.getBefore())
|
||||||
print(SSH.getBefore()) #GP debugging
|
|
||||||
if result is None:
|
if result is None:
|
||||||
logging.debug('\u001B[1;37;41m mDataConnectionState Not Found! \u001B[0m')
|
logging.debug('\u001B[1;37;41m mDataConnectionState Not Found! \u001B[0m')
|
||||||
lock.acquire()
|
lock.acquire()
|
||||||
@@ -1069,12 +1068,10 @@ class OaiCiTest():
|
|||||||
phone_list_file.close()
|
phone_list_file.close()
|
||||||
|
|
||||||
if terminate_ue_flag == True:
|
if terminate_ue_flag == True:
|
||||||
print('terminate_ue_flag == True')
|
|
||||||
if len(self.UEDevices) == 0:
|
if len(self.UEDevices) == 0:
|
||||||
logging.debug('\u001B[1;37;41m UE Not Found! \u001B[0m')
|
logging.debug('\u001B[1;37;41m UE Not Found! \u001B[0m')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
if len(self.UEDevicesStatus) == 0:
|
if len(self.UEDevicesStatus) == 0:
|
||||||
print('len(self.UEDevicesStatus) == 0')
|
|
||||||
cnt = 0
|
cnt = 0
|
||||||
while cnt < len(self.UEDevices):
|
while cnt < len(self.UEDevices):
|
||||||
self.UEDevicesStatus.append(CONST.UE_STATUS_DETACHED)
|
self.UEDevicesStatus.append(CONST.UE_STATUS_DETACHED)
|
||||||
@@ -3250,6 +3247,7 @@ while len(argvs) > 1:
|
|||||||
else:
|
else:
|
||||||
matchReg = re.match('^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE)
|
matchReg = re.match('^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE)
|
||||||
RAN.SetranTargetBranch(matchReg.group(1))
|
RAN.SetranTargetBranch(matchReg.group(1))
|
||||||
|
HTML.SetranTargetBranch(matchReg.group(1))
|
||||||
elif re.match('^\-\-eNBIPAddress=(.+)$|^\-\-eNB[1-2]IPAddress=(.+)$', myArgv, re.IGNORECASE):
|
elif re.match('^\-\-eNBIPAddress=(.+)$|^\-\-eNB[1-2]IPAddress=(.+)$', myArgv, re.IGNORECASE):
|
||||||
if re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE):
|
if re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE):
|
||||||
matchReg = re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE)
|
matchReg = re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE)
|
||||||
@@ -3447,7 +3445,7 @@ elif re.match('^InitiateHtml$', mode, re.IGNORECASE):
|
|||||||
print("Error while parsing file: " + xml_test_file)
|
print("Error while parsing file: " + xml_test_file)
|
||||||
xmlRoot = xmlTree.getroot()
|
xmlRoot = xmlTree.getroot()
|
||||||
HTML.SethtmlTabRefs(xmlRoot.findtext('htmlTabRef',default='test-tab-' + str(count)))
|
HTML.SethtmlTabRefs(xmlRoot.findtext('htmlTabRef',default='test-tab-' + str(count)))
|
||||||
HTML.SethtmlTabNames(xmlRoot.findtext('htmlTabRef',default='test-tab-' + str(count)))
|
HTML.SethtmlTabNames(xmlRoot.findtext('htmlTabName',default='test-tab-' + str(count)))
|
||||||
HTML.SethtmlTabIcons(xmlRoot.findtext('htmlTabIcon',default='info-sign'))
|
HTML.SethtmlTabIcons(xmlRoot.findtext('htmlTabIcon',default='info-sign'))
|
||||||
#CiTestObj.htmlTabRefs.append(xmlRoot.findtext('htmlTabRef',default='test-tab-' + str(count)))
|
#CiTestObj.htmlTabRefs.append(xmlRoot.findtext('htmlTabRef',default='test-tab-' + str(count)))
|
||||||
#CiTestObj.htmlTabNames.append(xmlRoot.findtext('htmlTabName',default='Test-' + str(count)))
|
#CiTestObj.htmlTabNames.append(xmlRoot.findtext('htmlTabName',default='Test-' + str(count)))
|
||||||
|
|||||||
@@ -386,6 +386,7 @@ class RANManagement():
|
|||||||
|
|
||||||
def checkBuildeNB(self, lIpAddr, lUserName, lPassWord, lSourcePath, testcaseId):
|
def checkBuildeNB(self, lIpAddr, lUserName, lPassWord, lSourcePath, testcaseId):
|
||||||
myHTML = HTML.HTMLManagement()
|
myHTML = HTML.HTMLManagement()
|
||||||
|
myHTML.SettestCase_id(testcaseId)
|
||||||
mySSH = SSH.SSHConnection()
|
mySSH = SSH.SSHConnection()
|
||||||
mySSH.open(lIpAddr, lUserName, lPassWord)
|
mySSH.open(lIpAddr, lUserName, lPassWord)
|
||||||
mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 3)
|
mySSH.command('cd ' + lSourcePath + '/cmake_targets', '\$', 3)
|
||||||
|
|||||||
Reference in New Issue
Block a user