Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangjie
OpenXG-RAN
Commits
bc01744e
Commit
bc01744e
authored
Sep 10, 2019
by
Raphael Defosseux
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CI: improving 5G-NR framework
Signed-off-by:
Raphael Defosseux
<
raphael.defosseux@eurecom.fr
>
parent
3ac6e3e5
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
83 additions
and
12 deletions
+83
-12
ci-scripts/main.py
ci-scripts/main.py
+37
-11
ci-scripts/xml_files/gnb_nr_ue_usrp_run.xml
ci-scripts/xml_files/gnb_nr_ue_usrp_run.xml
+2
-1
ci-scripts/xml_files/gnb_nr_ue_usrp_terminate.xml
ci-scripts/xml_files/gnb_nr_ue_usrp_terminate.xml
+44
-0
No files found.
ci-scripts/main.py
View file @
bc01744e
...
@@ -56,6 +56,7 @@ OAI_UE_PROCESS_COULD_NOT_SYNC = -21
...
@@ -56,6 +56,7 @@ OAI_UE_PROCESS_COULD_NOT_SYNC = -21
OAI_UE_PROCESS_ASSERTION
=
-
22
OAI_UE_PROCESS_ASSERTION
=
-
22
OAI_UE_PROCESS_FAILED
=
-
23
OAI_UE_PROCESS_FAILED
=
-
23
OAI_UE_PROCESS_NO_TUNNEL_INTERFACE
=
-
24
OAI_UE_PROCESS_NO_TUNNEL_INTERFACE
=
-
24
OAI_UE_PROCESS_SEG_FAULT
=
-
25
OAI_UE_PROCESS_OK
=
+
6
OAI_UE_PROCESS_OK
=
+
6
UE_STATUS_DETACHED
=
0
UE_STATUS_DETACHED
=
0
...
@@ -987,14 +988,20 @@ class SSHConnection():
...
@@ -987,14 +988,20 @@ class SSHConnection():
tunnelInterfaceStatus
=
False
tunnelInterfaceStatus
=
False
else
:
else
:
tunnelInterfaceStatus
=
True
tunnelInterfaceStatus
=
True
else
:
tunnelInterfaceStatus
=
True
self
.
close
()
self
.
close
()
if
fullSyncStatus
and
gotSyncStatus
and
tunnelInterfaceStatus
:
if
fullSyncStatus
and
gotSyncStatus
and
tunnelInterfaceStatus
:
self
.
CreateHtmlTestRow
(
self
.
Initialize_OAI_UE_args
,
'OK'
,
ALL_PROCESSES_OK
,
'OAI UE'
)
self
.
CreateHtmlTestRow
(
self
.
Initialize_OAI_UE_args
,
'OK'
,
ALL_PROCESSES_OK
,
'OAI UE'
)
logging
.
debug
(
'
\u001B
[1m Initialize OAI UE Completed
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1m Initialize OAI UE Completed
\u001B
[0m'
)
else
:
else
:
if
self
.
air_interface
==
'lte'
:
self
.
htmlUEFailureMsg
=
'oaitun_ue1 interface is either NOT mounted or NOT configured'
self
.
htmlUEFailureMsg
=
'oaitun_ue1 interface is either NOT mounted or NOT configured'
self
.
CreateHtmlTestRow
(
self
.
Initialize_OAI_UE_args
,
'KO'
,
OAI_UE_PROCESS_NO_TUNNEL_INTERFACE
,
'OAI UE'
)
self
.
CreateHtmlTestRow
(
self
.
Initialize_OAI_UE_args
,
'KO'
,
OAI_UE_PROCESS_NO_TUNNEL_INTERFACE
,
'OAI UE'
)
else
:
self
.
htmlUEFailureMsg
=
'nr-uesoftmodem did NOT synced'
self
.
CreateHtmlTestRow
(
self
.
Initialize_OAI_UE_args
,
'KO'
,
OAI_UE_PROCESS_COULD_NOT_SYNC
,
'OAI UE'
)
logging
.
error
(
'
\033
[91mInitialize OAI UE Failed!
\033
[0m'
)
logging
.
error
(
'
\033
[91mInitialize OAI UE Failed!
\033
[0m'
)
self
.
AutoTerminateUEandeNB
()
self
.
AutoTerminateUEandeNB
()
...
@@ -3134,6 +3141,10 @@ class SSHConnection():
...
@@ -3134,6 +3141,10 @@ class SSHConnection():
statMsg
=
'UE showed '
+
str
(
nrCRCOK
)
+
' PDSCH decoding message(s)'
statMsg
=
'UE showed '
+
str
(
nrCRCOK
)
+
' PDSCH decoding message(s)'
logging
.
debug
(
'
\u001B
[1;30;43m '
+
statMsg
+
'
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1;30;43m '
+
statMsg
+
'
\u001B
[0m'
)
self
.
htmlUEFailureMsg
+=
statMsg
+
'
\n
'
self
.
htmlUEFailureMsg
+=
statMsg
+
'
\n
'
if
not
frequency_found
:
statMsg
=
'NR-UE could NOT synch!'
logging
.
error
(
'
\u001B
[1;30;43m '
+
statMsg
+
'
\u001B
[0m'
)
self
.
htmlUEFailureMsg
+=
statMsg
+
'
\n
'
if
uciStatMsgCount
>
0
:
if
uciStatMsgCount
>
0
:
statMsg
=
'UE showed '
+
str
(
uciStatMsgCount
)
+
' "uci->stat" message(s)'
statMsg
=
'UE showed '
+
str
(
uciStatMsgCount
)
+
' "uci->stat" message(s)'
logging
.
debug
(
'
\u001B
[1;30;43m '
+
statMsg
+
'
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1;30;43m '
+
statMsg
+
'
\u001B
[0m'
)
...
@@ -3148,16 +3159,28 @@ class SSHConnection():
...
@@ -3148,16 +3159,28 @@ class SSHConnection():
self
.
htmlUEFailureMsg
+=
statMsg
+
'
\n
'
self
.
htmlUEFailureMsg
+=
statMsg
+
'
\n
'
if
foundSegFault
:
if
foundSegFault
:
logging
.
debug
(
'
\u001B
[1;37;41m UE ended with a Segmentation Fault!
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1;37;41m UE ended with a Segmentation Fault!
\u001B
[0m'
)
return
ENB_PROCESS_SEG_FAULT
if
not
nrUEFlag
:
return
OAI_UE_PROCESS_SEG_FAULT
else
:
if
not
frequency_found
:
return
OAI_UE_PROCESS_SEG_FAULT
if
foundAssertion
:
if
foundAssertion
:
logging
.
debug
(
'
\u001B
[1;30;43m UE showed an assertion!
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1;30;43m UE showed an assertion!
\u001B
[0m'
)
self
.
htmlUEFailureMsg
+=
'UE showed an assertion!
\n
'
self
.
htmlUEFailureMsg
+=
'UE showed an assertion!
\n
'
if
not
nrUEFlag
:
if
not
mib_found
or
not
frequency_found
:
if
not
mib_found
or
not
frequency_found
:
return
OAI_UE_PROCESS_ASSERTION
return
OAI_UE_PROCESS_ASSERTION
else
:
if
not
frequency_found
:
return
OAI_UE_PROCESS_ASSERTION
if
foundRealTimeIssue
:
if
foundRealTimeIssue
:
logging
.
debug
(
'
\u001B
[1;37;41m UE faced real time issues!
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1;37;41m UE faced real time issues!
\u001B
[0m'
)
self
.
htmlUEFailureMsg
+=
'UE faced real time issues!
\n
'
self
.
htmlUEFailureMsg
+=
'UE faced real time issues!
\n
'
#return ENB_PROCESS_REALTIME_ISSUE
#return ENB_PROCESS_REALTIME_ISSUE
if
nrUEFlag
:
if
not
frequency_found
:
return
OAI_UE_PROCESS_COULD_NOT_SYNC
else
:
if
no_cell_sync_found
and
not
mib_found
:
if
no_cell_sync_found
and
not
mib_found
:
logging
.
debug
(
'
\u001B
[1;37;41m UE could not synchronize !
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1;37;41m UE could not synchronize !
\u001B
[0m'
)
self
.
htmlUEFailureMsg
+=
'UE could not synchronize!
\n
'
self
.
htmlUEFailureMsg
+=
'UE could not synchronize!
\n
'
...
@@ -3384,13 +3407,16 @@ class SSHConnection():
...
@@ -3384,13 +3407,16 @@ class SSHConnection():
logging
.
debug
(
'
\u001B
[1m'
+
ueAction
+
' Failed
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1m'
+
ueAction
+
' Failed
\u001B
[0m'
)
self
.
htmlUEFailureMsg
=
'<b>'
+
ueAction
+
' Failed</b>
\n
'
+
self
.
htmlUEFailureMsg
self
.
htmlUEFailureMsg
=
'<b>'
+
ueAction
+
' Failed</b>
\n
'
+
self
.
htmlUEFailureMsg
self
.
CreateHtmlTestRow
(
'N/A'
,
'KO'
,
logStatus
,
'UE'
)
self
.
CreateHtmlTestRow
(
'N/A'
,
'KO'
,
logStatus
,
'UE'
)
# for NR-UE at the moment keep running
if
self
.
air_interface
==
'lte'
:
if
self
.
air_interface
==
'lte'
:
# In case of sniffing on commercial eNBs we have random results
# In case of sniffing on commercial eNBs we have random results
# Not an error then
# Not an error then
if
(
logStatus
!=
OAI_UE_PROCESS_COULD_NOT_SYNC
)
or
(
ueAction
!=
'Sniffing'
):
if
(
logStatus
!=
OAI_UE_PROCESS_COULD_NOT_SYNC
)
or
(
ueAction
!=
'Sniffing'
):
self
.
Initialize_OAI_UE_args
=
''
self
.
Initialize_OAI_UE_args
=
''
self
.
AutoTerminateUEandeNB
()
self
.
AutoTerminateUEandeNB
()
else
:
if
(
logStatus
==
OAI_UE_PROCESS_COULD_NOT_SYNC
):
self
.
Initialize_OAI_UE_args
=
''
self
.
AutoTerminateUEandeNB
()
else
:
else
:
logging
.
debug
(
'
\u001B
[1m'
+
ueAction
+
' Completed
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1m'
+
ueAction
+
' Completed
\u001B
[0m'
)
self
.
htmlUEFailureMsg
=
'<b>'
+
ueAction
+
' Completed</b>
\n
'
+
self
.
htmlUEFailureMsg
self
.
htmlUEFailureMsg
=
'<b>'
+
ueAction
+
' Completed</b>
\n
'
+
self
.
htmlUEFailureMsg
...
@@ -3943,7 +3969,7 @@ class SSHConnection():
...
@@ -3943,7 +3969,7 @@ class SSHConnection():
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
):
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
'
)
...
...
ci-scripts/xml_files/gnb_nr_ue_usrp_run.xml
View file @
bc01744e
...
@@ -24,8 +24,9 @@
...
@@ -24,8 +24,9 @@
<htmlTabRef>
run-OAI-gNB-NR-UE-USRP
</htmlTabRef>
<htmlTabRef>
run-OAI-gNB-NR-UE-USRP
</htmlTabRef>
<htmlTabName>
run OAI gNB and OAI NR UE USRP
</htmlTabName>
<htmlTabName>
run OAI gNB and OAI NR UE USRP
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
4
</repeatCount>
<TestCaseRequestedList>
<TestCaseRequestedList>
090101
090101
000001 090102 000002 090108 090109
</TestCaseRequestedList>
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<TestCaseExclusionList></TestCaseExclusionList>
...
...
ci-scripts/xml_files/gnb_nr_ue_usrp_terminate.xml
0 → 100644
View file @
bc01744e
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>
run-OAI-gNB-NR-UE-USRP
</htmlTabRef>
<htmlTabName>
run OAI gNB and OAI NR UE USRP
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<TestCaseRequestedList>
090108 090109
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"090108"
>
<class>
Terminate_OAI_UE
</class>
<desc>
Terminate NR UE
</desc>
<air_interface>
NR
</air_interface>
</testCase>
<testCase
id=
"090109"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate gNB
</desc>
<air_interface>
NR
</air_interface>
</testCase>
</testCaseList>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment