[0-9\.]+)%\))', str(self.ssh.before))
- if result is not None:
- bitrate = result.group('bitrate')
- packetloss = result.group('packetloss')
- lock.acquire()
- logging.debug('\u001B[1;37;44m iperf result (' + UE_IPAddress + ') \u001B[0m')
- if bitrate is not None:
- logging.debug('\u001B[1;34m Bitrate : ' + bitrate + '\u001B[0m')
- if packetloss is not None:
- logging.debug('\u001B[1;34m Packet Loss : ' + packetloss + '%\u001B[0m')
- if float(packetloss) > float(self.iperf_packetloss_threshold):
- logging.debug('\u001B[1;37;41m Packet Loss too high \u001B[0m')
- lock.release()
- sys.exit(1)
- lock.release()
+ clientStatus = self.Iperf_analyzeV2Output(lock, UE_IPAddress, device_id, statusQueue, modified_options)
self.close()
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
@@ -627,6 +1080,12 @@ class SSHConnection():
pid_iperf = result.group('pid')
self.command('stdbuf -o0 adb -s ' + device_id + ' shell kill -KILL ' + pid_iperf, '\$', 5)
self.close()
+ if (clientStatus == -1):
+ time.sleep(1)
+ if (os.path.isfile('iperf_server_' + SSH.testCase_id + '_' + device_id + '.log')):
+ os.remove('iperf_server_' + SSH.testCase_id + '_' + device_id + '.log')
+ self.copy(self.ADBIPAddress, self.ADBUserName, self.ADBPassword, self.EPCSourceCodePath + '/scripts/iperf_server_' + SSH.testCase_id + '_' + device_id + '.log', '.')
+ self.Iperf_analyzeV2Server(lock, UE_IPAddress, device_id, statusQueue, modified_options)
except:
os.kill(os.getppid(),signal.SIGUSR1)
@@ -635,15 +1094,20 @@ class SSHConnection():
Usage()
sys.exit('Insufficient Parameter')
initialize_eNB_flag = False
- self.CheckProcessExist(initialize_eNB_flag)
+ pStatus = self.CheckProcessExist(initialize_eNB_flag)
+ if (pStatus < 0):
+ self.CreateHtmlTestRow(self.iperf_args, 'KO', pStatus)
+ self.CreateHtmlFooter()
+ sys.exit(1)
self.GetAllUEIPAddresses()
multi_jobs = []
i = 0
ue_num = len(self.UEIPAddresses)
lock = Lock()
+ status_queue = SimpleQueue()
for UE_IPAddress in self.UEIPAddresses:
device_id = self.UEDevices[i]
- p = Process(target = SSH.Iperf_common, args = (lock,UE_IPAddress,device_id,ue_num,))
+ p = Process(target = SSH.Iperf_common, args = (lock,UE_IPAddress,device_id,i,ue_num,status_queue,))
p.daemon = True
p.start()
multi_jobs.append(p)
@@ -651,41 +1115,83 @@ class SSHConnection():
for job in multi_jobs:
job.join()
+ if (status_queue.empty()):
+ self.CreateHtmlTestRow(self.iperf_args, 'KO', 0)
+ self.CreateHtmlFooter()
+ sys.exit(1)
+ else:
+ iperf_status = True
+ iperf_noperf = False
+ html_queue = SimpleQueue()
+ while (not status_queue.empty()):
+ count = status_queue.get()
+ if (count < 0):
+ iperf_status = False
+ if (count > 0):
+ iperf_noperf = True
+ device_id = status_queue.get()
+ ip_addr = status_queue.get()
+ message = status_queue.get()
+ html_cell = "UE (" + device_id + ")\nIP Address : " + ip_addr + "\n" + message + ""
+ html_queue.put(html_cell)
+ if (iperf_noperf and iperf_status):
+ self.CreateHtmlTestRowQueue(self.iperf_args, 'PERF NOT MET', len(self.UEDevices), html_queue)
+ elif (iperf_status):
+ self.CreateHtmlTestRowQueue(self.iperf_args, 'OK', len(self.UEDevices), html_queue)
+ else:
+ self.CreateHtmlTestRowQueue(self.iperf_args, 'KO', len(self.UEDevices), html_queue)
+ self.CreateHtmlFooter()
+ sys.exit(1)
+
def CheckProcessExist(self, initialize_eNB_flag):
multi_jobs = []
- p = Process(target = SSH.CheckHSSProcess, args = ())
+ status_queue = SimpleQueue()
+ p = Process(target = SSH.CheckHSSProcess, args = (status_queue,))
p.daemon = True
p.start()
multi_jobs.append(p)
- p = Process(target = SSH.CheckMMEProcess, args = ())
+ p = Process(target = SSH.CheckMMEProcess, args = (status_queue,))
p.daemon = True
p.start()
multi_jobs.append(p)
- p = Process(target = SSH.CheckSPGWProcess, args = ())
+ p = Process(target = SSH.CheckSPGWProcess, args = (status_queue,))
p.daemon = True
p.start()
multi_jobs.append(p)
if initialize_eNB_flag == False:
- p = Process(target = SSH.CheckeNBProcess, args = ())
+ p = Process(target = SSH.CheckeNBProcess, args = (status_queue,))
p.daemon = True
p.start()
multi_jobs.append(p)
for job in multi_jobs:
job.join()
- def CheckeNBProcess(self):
+ if (status_queue.empty()):
+ return -15
+ else:
+ result = 0
+ while (not status_queue.empty()):
+ status = status_queue.get()
+ if (status < 0):
+ result = status
+ return result
+
+ def CheckeNBProcess(self, status_queue):
try:
self.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword)
self.command('stdbuf -o0 ps -aux | grep -v grep | grep --color=never lte-softmodem', '\$', 5)
result = re.search('lte-softmodem', str(self.ssh.before))
if result is None:
logging.debug('\u001B[1;37;41m eNB Process Not Found! \u001B[0m')
- sys.exit(1)
+ #sys.exit(1)
+ status_queue.put(-1)
+ else:
+ status_queue.put(1)
self.close()
except:
os.kill(os.getppid(),signal.SIGUSR1)
- def CheckHSSProcess(self):
+ def CheckHSSProcess(self, status_queue):
try:
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
self.command('stdbuf -o0 ps -aux | grep -v grep | grep --color=never hss', '\$', 5)
@@ -695,12 +1201,15 @@ class SSHConnection():
result = re.search('hss_sim s6as diam_hss', str(self.ssh.before))
if result is None:
logging.debug('\u001B[1;37;41m HSS Process Not Found! \u001B[0m')
- sys.exit(1)
+ status_queue.put(-2)
+ #sys.exit(1)
+ else:
+ status_queue.put(2)
self.close()
except:
os.kill(os.getppid(),signal.SIGUSR1)
- def CheckMMEProcess(self):
+ def CheckMMEProcess(self, status_queue):
try:
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
self.command('stdbuf -o0 ps -aux | grep -v grep | grep --color=never mme', '\$', 5)
@@ -710,12 +1219,15 @@ class SSHConnection():
result = re.search('mme', str(self.ssh.before))
if result is None:
logging.debug('\u001B[1;37;41m MME Process Not Found! \u001B[0m')
- sys.exit(1)
+ status_queue.put(-3)
+ #sys.exit(1)
+ else:
+ status_queue.put(3)
self.close()
except:
os.kill(os.getppid(),signal.SIGUSR1)
- def CheckSPGWProcess(self):
+ def CheckSPGWProcess(self, status_queue):
try:
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
if re.match('OAI', self.EPCType, re.IGNORECASE):
@@ -726,13 +1238,19 @@ class SSHConnection():
result = re.search('xGw', str(self.ssh.before))
if result is None:
logging.debug('\u001B[1;37;41m SPGW Process Not Found! \u001B[0m')
- sys.exit(1)
+ status_queue.put(-4)
+ #sys.exit(1)
+ else:
+ status_queue.put(4)
self.close()
except:
os.kill(os.getppid(),signal.SIGUSR1)
def TerminateeNB(self):
self.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword)
+ self.command('cd ' + self.eNBSourceCodePath + '/cmake_targets', '\$', 5)
+ self.command('echo ' + self.eNBPassword + ' | sudo -S daemon --name=enb_daemon --stop', '\$', 5)
+ self.command('rm -f my-lte-softmodem-run.sh', '\$', 5)
self.command('echo ' + self.eNBPassword + ' | sudo -S killall --signal SIGINT lte-softmodem || true', '\$', 5)
time.sleep(5)
self.command('stdbuf -o0 ps -aux | grep -v grep | grep lte-softmodem', '\$', 5)
@@ -740,6 +1258,7 @@ class SSHConnection():
if result is not None:
self.command('echo ' + self.eNBPassword + ' | sudo -S killall --signal SIGKILL lte-softmodem || true', '\$', 5)
self.close()
+ self.CreateHtmlTestRow('N/A', 'OK', 0)
def TerminateHSS(self):
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
@@ -761,6 +1280,7 @@ class SSHConnection():
self.command('echo ' + self.EPCPassword + ' | sudo -S ./kill_hss.sh', '\$', 5)
self.command('rm ./kill_hss.sh', '\$', 5)
self.close()
+ self.CreateHtmlTestRow('N/A', 'OK', 0)
def TerminateMME(self):
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
@@ -775,6 +1295,7 @@ class SSHConnection():
self.command('cd /opt/ltebox/tools', '\$', 5)
self.command('echo ' + self.EPCPassword + ' | sudo -S ./stop_mme', '\$', 5)
self.close()
+ self.CreateHtmlTestRow('N/A', 'OK', 0)
def TerminateSPGW(self):
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
@@ -789,6 +1310,7 @@ class SSHConnection():
self.command('cd /opt/ltebox/tools', '\$', 5)
self.command('echo ' + self.EPCPassword + ' | sudo -S ./stop_xGw', '\$', 5)
self.close()
+ self.CreateHtmlTestRow('N/A', 'OK', 0)
def TerminateUE_common(self, device_id):
try:
@@ -816,27 +1338,31 @@ class SSHConnection():
multi_jobs.append(p)
for job in multi_jobs:
job.join()
+ self.CreateHtmlTestRow('N/A', 'OK', 0)
def LogCollectBuild(self):
self.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword)
self.command('cd ' + self.eNBSourceCodePath, '\$', 5)
self.command('cd cmake_targets', '\$', 5)
+ self.command('rm -f build.log.zip', '\$', 5)
self.command('zip build.log.zip build_log_*/*', '\$', 60)
- self.command('rm -rf build_log_*', '\$', 5)
+ self.command('echo ' + self.eNBPassword + ' | sudo -S rm -rf build_log_*', '\$', 5)
self.close()
def LogCollecteNB(self):
self.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword)
self.command('cd ' + self.eNBSourceCodePath, '\$', 5)
self.command('cd cmake_targets', '\$', 5)
+ self.command('rm -f enb.log.zip', '\$', 5)
self.command('zip enb.log.zip enb*.log', '\$', 60)
- self.command('rm enb*.log', '\$', 5)
+ self.command('echo ' + self.eNBPassword + ' | sudo -S rm enb*.log', '\$', 5)
self.close()
def LogCollectPing(self):
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
self.command('cd ' + self.EPCSourceCodePath, '\$', 5)
self.command('cd scripts', '\$', 5)
+ self.command('rm -f ping.log.zip', '\$', 5)
self.command('zip ping.log.zip ping*.log', '\$', 60)
self.command('rm ping*.log', '\$', 5)
self.close()
@@ -845,6 +1371,7 @@ class SSHConnection():
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
self.command('cd ' + self.EPCSourceCodePath, '\$', 5)
self.command('cd scripts', '\$', 5)
+ self.command('rm -f iperf.log.zip', '\$', 5)
self.command('zip iperf.log.zip iperf*.log', '\$', 60)
self.command('rm iperf*.log', '\$', 5)
self.close()
@@ -853,6 +1380,7 @@ class SSHConnection():
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
self.command('cd ' + self.EPCSourceCodePath, '\$', 5)
self.command('cd scripts', '\$', 5)
+ self.command('rm -f hss.log.zip', '\$', 5)
if re.match('OAI', self.EPCType, re.IGNORECASE):
self.command('zip hss.log.zip hss*.log', '\$', 60)
self.command('rm hss*.log', '\$', 5)
@@ -865,6 +1393,7 @@ class SSHConnection():
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
self.command('cd ' + self.EPCSourceCodePath, '\$', 5)
self.command('cd scripts', '\$', 5)
+ self.command('rm -f mme.log.zip', '\$', 5)
if re.match('OAI', self.EPCType, re.IGNORECASE):
self.command('zip mme.log.zip mme*.log', '\$', 60)
self.command('rm mme*.log', '\$', 5)
@@ -877,6 +1406,7 @@ class SSHConnection():
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
self.command('cd ' + self.EPCSourceCodePath, '\$', 5)
self.command('cd scripts', '\$', 5)
+ self.command('rm -f spgw.log.zip', '\$', 5)
if re.match('OAI', self.EPCType, re.IGNORECASE):
self.command('zip spgw.log.zip spgw*.log', '\$', 60)
self.command('rm spgw*.log', '\$', 5)
@@ -885,6 +1415,152 @@ class SSHConnection():
self.command('zip spgw.log.zip xGwLog.0', '\$', 60)
self.close()
#-----------------------------------------------------------
+# HTML Reporting....
+#-----------------------------------------------------------
+ def CreateHtmlHeader(self):
+ if (not self.htmlHeaderCreated):
+ self.htmlFile = open('test_results.html', 'w')
+ self.htmlFile.write('\n')
+ self.htmlFile.write('\n')
+ self.htmlFile.write('\n')
+ self.htmlFile.write(' Test Results for TEMPLATE_JOB_NAME job build #TEMPLATE_BUILD_ID\n')
+ self.htmlFile.write(' \n')
+ self.htmlFile.write('\n')
+ self.htmlFile.write('\n')
+ self.htmlFile.write(' \n')
+ self.htmlFile.write('
\n')
+ self.htmlFile.write(' \n')
+ self.htmlFile.write(' \n')
+ self.htmlFile.write(' | GIT Repository | \n')
+ self.htmlFile.write(' ' + SSH.eNBRepository + ' | \n')
+ self.htmlFile.write('
\n')
+ self.htmlFile.write(' \n')
+ self.htmlFile.write(' | Job Trigger | \n')
+ if (SSH.eNB_AllowMerge):
+ self.htmlFile.write(' Merge-Request | \n')
+ else:
+ self.htmlFile.write(' Push to Branch | \n')
+ self.htmlFile.write('
\n')
+ self.htmlFile.write(' \n')
+ if (SSH.eNB_AllowMerge):
+ self.htmlFile.write(' | Source Branch | \n')
+ else:
+ self.htmlFile.write(' Branch | \n')
+ self.htmlFile.write(' ' + SSH.eNBBranch + ' | \n')
+ self.htmlFile.write('
\n')
+ self.htmlFile.write(' \n')
+ if (SSH.eNB_AllowMerge):
+ self.htmlFile.write(' | Source Commit ID | \n')
+ else:
+ self.htmlFile.write(' Commit ID | \n')
+ self.htmlFile.write(' ' + SSH.eNBCommitID + ' | \n')
+ self.htmlFile.write('
\n')
+ if (SSH.eNB_AllowMerge):
+ self.htmlFile.write(' \n')
+ self.htmlFile.write(' | Target Branch | \n')
+ self.htmlFile.write(' develop | \n')
+ self.htmlFile.write('
\n')
+ self.htmlFile.write('
\n')
+
+ terminate_ue_flag = True
+ SSH.GetAllUEDevices(terminate_ue_flag)
+ self.htmlUEConnected = len(self.UEDevices)
+ self.htmlFile.write('' + str(self.htmlUEConnected) + ' UE(s) is(are) connected to ADB bench server
\n')
+
+ self.htmlFile.write('
\n')
+ self.htmlFile.write(' Test Summary for ' + SSH.testXMLfile + '
\n')
+ self.htmlFile.write(' \n')
+ self.htmlFile.write(' \n')
+ self.htmlFile.write(' | Test Id | \n')
+ self.htmlFile.write(' Test Desc | \n')
+ self.htmlFile.write(' Test Options | \n')
+ self.htmlFile.write(' Test Status | \n')
+ i = 0
+ while (i < self.htmlUEConnected):
+ self.htmlFile.write(' UE' + str(i) + ' Status | \n')
+ i += 1
+ self.htmlFile.write('
\n')
+ self.htmlHeaderCreated = True
+
+ def CreateHtmlFooter(self):
+ if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)):
+ self.htmlFile.write('
\n')
+ self.htmlFile.write('\n')
+ self.htmlFile.write('\n')
+ self.htmlFile.close()
+ self.htmlFooterCreated = False
+
+ def CreateHtmlTestRow(self, options, status, processesStatus):
+ if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)):
+ self.htmlFile.write(' \n')
+ self.htmlFile.write(' | ' + SSH.testCase_id + ' | \n')
+ self.htmlFile.write(' ' + SSH.desc + ' | \n')
+ self.htmlFile.write(' ' + str(options) + ' | \n')
+ if (str(status) == 'OK'):
+ self.htmlFile.write(' ' + str(status) + ' | \n')
+ elif (str(status) == 'KO'):
+ if (processesStatus == 0):
+ self.htmlFile.write(' ' + str(status) + ' | \n')
+ elif (processesStatus == -1):
+ self.htmlFile.write(' KO - eNB process not found | \n')
+ elif (processesStatus == -2):
+ self.htmlFile.write(' KO - HSS process not found | \n')
+ elif (processesStatus == -3):
+ self.htmlFile.write(' KO - MME process not found | \n')
+ elif (processesStatus == -4):
+ self.htmlFile.write(' KO - SPGW process not found | \n')
+ else:
+ self.htmlFile.write(' ' + str(status) + ' | \n')
+ else:
+ self.htmlFile.write(' ' + str(status) + ' | \n')
+ i = 0
+ while (i < self.htmlUEConnected):
+ self.htmlFile.write(' - | \n')
+ i += 1
+ self.htmlFile.write('
\n')
+
+ def CreateHtmlTestRowQueue(self, options, status, ue_status, ue_queue):
+ if ((not self.htmlFooterCreated) and (self.htmlHeaderCreated)):
+ addOrangeBK = False
+ self.htmlFile.write(' \n')
+ self.htmlFile.write(' | ' + SSH.testCase_id + ' | \n')
+ self.htmlFile.write(' ' + SSH.desc + ' | \n')
+ self.htmlFile.write(' ' + str(options) + ' | \n')
+ if (str(status) == 'OK'):
+ self.htmlFile.write(' ' + str(status) + ' | \n')
+ elif (str(status) == 'KO'):
+ self.htmlFile.write(' ' + str(status) + ' | \n')
+ else:
+ addOrangeBK = True
+ self.htmlFile.write(' ' + str(status) + ' | \n')
+ i = 0
+ while (i < self.htmlUEConnected):
+ if (i < ue_status):
+ if (not ue_queue.empty()):
+ if (addOrangeBK):
+ self.htmlFile.write(' ' + str(ue_queue.get()) + ' | \n')
+ else:
+ self.htmlFile.write(' ' + str(ue_queue.get()) + ' | \n')
+ else:
+ self.htmlFile.write(' - | \n')
+ else:
+ self.htmlFile.write(' - | \n')
+ i += 1
+ self.htmlFile.write('
\n')
+
+#-----------------------------------------------------------
# Usage()
#-----------------------------------------------------------
def Usage():
@@ -895,8 +1571,8 @@ def Usage():
print(' --help Show this help.')
print(' --mode=[Mode]')
print(' TesteNB')
- print(' TerminateeNB, TerminateEPC')
- print(' LogCollectBuild, LogCollecteNB, LogCollectEPC, LogCollectADB')
+ print(' TerminateeNB, TerminateUE, TerminateHSS, TerminateMME, TerminateSPGW')
+ print(' LogCollectBuild, LogCollecteNB, LogCollectHSS, LogCollectMME, LogCollectSPGW, LogCollectPing, LogCollectIperf')
print(' --eNBIPAddress=[eNB\'s IP Address]')
print(' --eNBRepository=[eNB\'s Repository URL]')
print(' --eNBBranch=[eNB\'s Branch Name]')
@@ -944,6 +1620,13 @@ def GetParametersFromXML(action):
if action == 'Iperf':
SSH.iperf_args = test.findtext('iperf_args')
SSH.iperf_packetloss_threshold = test.findtext('iperf_packetloss_threshold')
+ SSH.iperf_profile = test.findtext('iperf_profile')
+ if (SSH.iperf_profile is None):
+ SSH.iperf_profile = 'balanced'
+ else:
+ if SSH.iperf_profile != 'balanced' and SSH.iperf_profile != 'unbalanced' and SSH.iperf_profile != 'single-ue':
+ logging.debug('ERROR: test-case has wrong profile ' + SSH.iperf_profile)
+ SSH.iperf_profile = 'balanced'
#check if given test is in list
#it is in list if one of the strings in 'list' is at the beginning of 'test'
@@ -980,6 +1663,11 @@ while len(argvs) > 1:
elif re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE)
SSH.eNBRepository = matchReg.group(1)
+ elif re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE):
+ matchReg = re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE)
+ doMerge = matchReg.group(1)
+ if ((doMerge == 'true') or (doMerge == 'True')):
+ SSH.eNB_AllowMerge = True
elif re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE)
SSH.eNBBranch = matchReg.group(1)
@@ -1098,6 +1786,8 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE):
Usage()
sys.exit('Insufficient Parameter')
+ SSH.CreateHtmlHeader()
+
#read test_case_list.xml file
# if no parameters for XML file, use default value
if SSH.testXMLfile == '':
@@ -1196,6 +1886,8 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE):
SSH.TerminateSPGW()
else:
sys.exit('Invalid action')
+
+ SSH.CreateHtmlFooter()
else:
Usage()
sys.exit('Invalid mode')
diff --git a/ci-scripts/reportBuildLocally.sh b/ci-scripts/reportBuildLocally.sh
index f8a48d9c17..609af5f166 100755
--- a/ci-scripts/reportBuildLocally.sh
+++ b/ci-scripts/reportBuildLocally.sh
@@ -105,7 +105,7 @@ function details_table {
do
if [[ $MESSAGE == *"/home/ubuntu/tmp"* ]]
then
- FILENAME=`echo $MESSAGE | sed -e "s#^/home/ubuntu/tmp/##" | awk -F ":" '{print $1}'`
+ FILENAME=`echo $MESSAGE | sed -e "s#^/home/ubuntu/tmp/##" -e "s#^.*/tmp/CI-eNB/##" | awk -F ":" '{print $1}'`
LINENB=`echo $MESSAGE | awk -F ":" '{print $2}'`
if [ "$COMPLETE_MESSAGE" != "start" ]
then
@@ -498,6 +498,8 @@ then
echo " " >> ./build_results.html
fi
+echo " Ubuntu 16.04 LTS -- Summary
" >> ./build_results.html
+
sca_summary_table_header "OAI Static Code Analysis with CPPCHECK"
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized variable" uninitvar
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized struct member" uninitStructMember
@@ -547,6 +549,15 @@ summary_table_row "RB Tools - Release 14" ./archives/ue_eth/rb_tool.Rel14.txt "B
summary_table_row "NAS Mesh - Release 14" ./archives/ue_eth/nasmesh.Rel14.txt "Built target nasmesh" ./ue_eth_row6.html
summary_table_footer
+echo " Red Hat (CentOS Linux release 7.4.1708) -- Summary
" >> ./build_results.html
+
+summary_table_header "Red Hat -- OAI Build eNB -- USRP option"
+summary_table_row "LTE SoftModem - Release 14" ./archives/red_hat/lte-softmodem.Rel14.txt "Built target lte-softmodem" ./enb_usrp_rh_row1.html
+summary_table_row "Coding - Release 14" ./archives/red_hat/coding.Rel14.txt "Built target coding" ./enb_usrp_rh_row2.html
+summary_table_row "OAI USRP device if - Release 14" ./archives/red_hat/oai_usrpdevif.Rel14.txt "Built target oai_usrpdevif" ./enb_usrp_rh_row3.html
+summary_table_row "Parameters Lib Config - Release 14" ./archives/red_hat/params_libconfig.Rel14.txt "Built target params_libconfig" ./enb_usrp_rh_row4.html
+summary_table_footer
+
echo " Details
" >> ./build_results.html
for DETAILS_TABLE in `ls ./enb_usrp_row*.html`
@@ -569,7 +580,11 @@ for DETAILS_TABLE in `ls ./ue_eth_row*.html`
do
cat $DETAILS_TABLE >> ./build_results.html
done
-rm -f ./enb_usrp_row*.html ./basic_sim_row*.html ./phy_sim_row*.html ./enb_eth_row*.html ./ue_eth_row*.html
+for DETAILS_TABLE in `ls ./enb_usrp_rh_row*.html`
+do
+ cat $DETAILS_TABLE >> ./build_results.html
+done
+rm -f ./enb_usrp_row*.html ./basic_sim_row*.html ./phy_sim_row*.html ./enb_eth_row*.html ./ue_eth_row*.html ./enb_usrp_rh_row*.html
echo "