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
lizhongxiao
OpenXG-RAN
Commits
c94ba6ec
Commit
c94ba6ec
authored
Feb 20, 2023
by
Jaroslava Fiedlerova
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CI test for T1 LDPC offload on caracal
parent
914b4703
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
125 additions
and
20 deletions
+125
-20
ci-scripts/cls_physim.py
ci-scripts/cls_physim.py
+52
-0
ci-scripts/main.py
ci-scripts/main.py
+6
-2
ci-scripts/xml_class_list.yml
ci-scripts/xml_class_list.yml
+1
-0
ci-scripts/xml_files/gnb_usrp_build.xml
ci-scripts/xml_files/gnb_usrp_build.xml
+1
-1
ci-scripts/xml_files/t1_offload_test.xml
ci-scripts/xml_files/t1_offload_test.xml
+65
-17
No files found.
ci-scripts/cls_physim.py
View file @
c94ba6ec
...
@@ -88,6 +88,40 @@ class PhySim:
...
@@ -88,6 +88,40 @@ class PhySim:
HTML
.
CreateHtmlTestRowQueue
(
self
.
runargs
,
'OK'
,
1
,
html_queue
)
HTML
.
CreateHtmlTestRowQueue
(
self
.
runargs
,
'OK'
,
1
,
html_queue
)
return
HTML
return
HTML
def
__CheckResults_LDPCt1Test
(
self
,
HTML
,
CONST
,
testcase_id
):
thrs_NOK
=
500
thrs_KO
=
1000
mySSH
=
sshconnection
.
SSHConnection
()
mySSH
.
open
(
self
.
eNBIpAddr
,
self
.
eNBUserName
,
self
.
eNBPassWord
)
#retrieve run log file and store it locally$
mySSH
.
copyin
(
self
.
eNBIpAddr
,
self
.
eNBUserName
,
self
.
eNBPassWord
,
self
.
__workSpacePath
+
self
.
__runLogFile
,
'.'
)
mySSH
.
close
()
#parse results looking for Decoding values
runResultsT1
=
[]
with
open
(
self
.
__runLogFile
)
as
g
:
for
line
in
g
:
if
'decoding time'
in
line
:
runResultsT1
.
append
(
line
)
info
=
runResultsT1
[
0
][
15
:
-
13
]
result
=
int
(
''
.
join
(
filter
(
str
.
isdigit
,
info
)))
/
100
#once parsed move the local logfile to its folder for tidiness
os
.
system
(
'mv '
+
self
.
__runLogFile
+
' '
+
self
.
__runLogPath
+
'/.'
)
#updating the HTML with results
html_cell
=
'<pre style="background-color:white">'
+
info
+
'</pre>'
html_queue
=
SimpleQueue
()
html_queue
.
put
(
html_cell
)
if
result
<
thrs_NOK
:
HTML
.
CreateHtmlTestRowQueue
(
self
.
runargs
,
'OK'
,
1
,
html_queue
)
elif
result
>
thrs_KO
:
error_msg
=
f'Decoding time exceeds a limit of
{
thrs_KO
}
us'
logging
.
error
(
error_msg
)
html_queue
.
put
(
f'<pre style="background-color:white">
{
error_msg
}
</pre>'
)
HTML
.
CreateHtmlTestRowQueue
(
self
.
runargs
,
'KO'
,
1
,
html_queue
)
self
.
exitStatus
=
1
else
:
HTML
.
CreateHtmlTestRowQueue
(
self
.
runargs
,
'NOK'
,
1
,
html_queue
)
return
HTML
def
__CheckResults_NRulsimTest
(
self
,
HTML
,
CONST
,
testcase_id
):
def
__CheckResults_NRulsimTest
(
self
,
HTML
,
CONST
,
testcase_id
):
html_queue
=
SimpleQueue
()
html_queue
=
SimpleQueue
()
#retrieve run log file and store it locally
#retrieve run log file and store it locally
...
@@ -216,6 +250,24 @@ class PhySim:
...
@@ -216,6 +250,24 @@ class PhySim:
lHTML
=
self
.
__CheckResults_LDPCTest
(
htmlObj
,
constObj
,
testcase_id
)
lHTML
=
self
.
__CheckResults_LDPCTest
(
htmlObj
,
constObj
,
testcase_id
)
return
lHTML
return
lHTML
def
Run_LDPCt1Test
(
self
,
htmlObj
,
constObj
,
testcase_id
):
self
.
__workSpacePath
=
self
.
eNBSourceCodePath
+
'/cmake_targets/'
#create run logs folder locally
os
.
system
(
'mkdir -p ./'
+
self
.
__runLogPath
)
#log file is tc_<testcase_id>.log remotely
self
.
__runLogFile
=
'physim_'
+
str
(
testcase_id
)
+
'.log'
#open a session for test run
mySSH
=
sshconnection
.
SSHConnection
()
mySSH
.
open
(
self
.
eNBIpAddr
,
self
.
eNBUserName
,
self
.
eNBPassWord
)
mySSH
.
command
(
'cd '
+
self
.
__workSpacePath
,
'\$'
,
5
)
#run and redirect the results to a log file
mySSH
.
command
(
f'sudo
{
self
.
__workSpacePath
}
ran_build/build/nr_ulsim
{
self
.
runargs
}
>
{
self
.
__runLogFile
}
2>&1'
,
'\$'
,
30
)
mySSH
.
close
()
#return updated HTML to main
lHTML
=
cls_oai_html
.
HTMLManagement
()
lHTML
=
self
.
__CheckResults_LDPCt1Test
(
htmlObj
,
constObj
,
testcase_id
)
return
lHTML
def
Run_NRulsimTest
(
self
,
htmlObj
,
constObj
,
testcase_id
):
def
Run_NRulsimTest
(
self
,
htmlObj
,
constObj
,
testcase_id
):
self
.
__workSpacePath
=
self
.
eNBSourceCodePath
+
'/cmake_targets/'
self
.
__workSpacePath
=
self
.
eNBSourceCodePath
+
'/cmake_targets/'
os
.
system
(
f'mkdir -p ./
{
self
.
__runLogPath
}
'
)
os
.
system
(
f'mkdir -p ./
{
self
.
__runLogPath
}
'
)
...
...
ci-scripts/main.py
View file @
c94ba6ec
...
@@ -43,7 +43,7 @@ import cls_physim #class PhySim for physical simulators build and
...
@@ -43,7 +43,7 @@ import cls_physim #class PhySim for physical simulators build and
import
cls_cots_ue
#class CotsUe for Airplane mode control
import
cls_cots_ue
#class CotsUe for Airplane mode control
import
cls_containerize
#class Containerize for all container-based operations on RAN/UE objects
import
cls_containerize
#class Containerize for all container-based operations on RAN/UE objects
import
cls_static_code_analysis
#class for static code analysis
import
cls_static_code_analysis
#class for static code analysis
import
cls_ci_ueinfra
#class defining the multi Ue infrastrucure
import
cls_ci_ueinfra
#class defining the multi Ue infrastrucure
import
cls_physim1
#class PhySim for physical simulators deploy and run
import
cls_physim1
#class PhySim for physical simulators deploy and run
import
cls_cluster
# class for building/deploying on cluster
import
cls_cluster
# class for building/deploying on cluster
...
@@ -472,7 +472,7 @@ def GetParametersFromXML(action):
...
@@ -472,7 +472,7 @@ def GetParametersFromXML(action):
if
(
string_field
is
not
None
):
if
(
string_field
is
not
None
):
CONTAINERS
.
cliOptions
=
string_field
CONTAINERS
.
cliOptions
=
string_field
elif
action
==
'Run_LDPCTest'
or
action
==
'Run_NRulsimTest'
:
elif
action
==
'Run_LDPCTest'
or
action
==
'Run_NRulsimTest'
or
action
==
'Run_LDPCt1Test'
:
ldpc
.
runargs
=
test
.
findtext
(
'physim_run_args'
)
ldpc
.
runargs
=
test
.
findtext
(
'physim_run_args'
)
elif
action
==
'LicenceAndFormattingCheck'
:
elif
action
==
'LicenceAndFormattingCheck'
:
...
@@ -963,6 +963,10 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
...
@@ -963,6 +963,10 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
HTML
=
ldpc
.
Run_LDPCTest
(
HTML
,
CONST
,
id
)
HTML
=
ldpc
.
Run_LDPCTest
(
HTML
,
CONST
,
id
)
if
ldpc
.
exitStatus
==
1
:
if
ldpc
.
exitStatus
==
1
:
RAN
.
prematureExit
=
True
RAN
.
prematureExit
=
True
elif
action
==
'Run_LDPCt1Test'
:
HTML
=
ldpc
.
Run_LDPCt1Test
(
HTML
,
CONST
,
id
)
if
ldpc
.
exitStatus
==
1
:
RAN
.
prematureExit
=
True
elif
action
==
'Run_NRulsimTest'
:
elif
action
==
'Run_NRulsimTest'
:
HTML
=
ldpc
.
Run_NRulsimTest
(
HTML
,
CONST
,
id
)
HTML
=
ldpc
.
Run_NRulsimTest
(
HTML
,
CONST
,
id
)
if
ldpc
.
exitStatus
==
1
:
if
ldpc
.
exitStatus
==
1
:
...
...
ci-scripts/xml_class_list.yml
View file @
c94ba6ec
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
-
Build_Cluster_Image
-
Build_Cluster_Image
-
Build_PhySim
-
Build_PhySim
-
Run_LDPCTest
-
Run_LDPCTest
-
Run_LDPCt1Test
-
Run_NRulsimTest
-
Run_NRulsimTest
-
Build_eNB
-
Build_eNB
-
WaitEndBuild_eNB
-
WaitEndBuild_eNB
...
...
ci-scripts/xml_files/gnb_usrp_build.xml
View file @
c94ba6ec
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
<mode>
TesteNB
</mode>
<mode>
TesteNB
</mode>
<class>
Build_eNB
</class>
<class>
Build_eNB
</class>
<desc>
Build gNB (USRP)
</desc>
<desc>
Build gNB (USRP)
</desc>
<Build_eNB_args>
--gNB -w USRP --ninja -c -P --build-lib "ldpc_cuda"
</Build_eNB_args>
<Build_eNB_args>
--gNB -w USRP --ninja -c -P --build-lib "ldpc_cuda
ldpc_t1
"
</Build_eNB_args>
<forced_workspace_cleanup>
True
</forced_workspace_cleanup>
<forced_workspace_cleanup>
True
</forced_workspace_cleanup>
</testCase>
</testCase>
...
...
ci-scripts/xml_files/t1_offload_test.xml
View file @
c94ba6ec
...
@@ -24,31 +24,79 @@
...
@@ -24,31 +24,79 @@
<htmlTabName>
Test T1 Offload
</htmlTabName>
<htmlTabName>
Test T1 Offload
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
000
001 000002 000003 000004
</TestCaseRequestedList>
<TestCaseRequestedList>
000
111 000112 000121 000122 000131 000132 000211 000212 000221 000222 000231 000232
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000
00
1"
>
<testCase
id=
"000
11
1"
>
<class>
Run_
NRulsim
Test
</class>
<class>
Run_
LDPCt1
Test
</class>
<desc>
Run
T1 Offload nr_ulsim
</desc>
<desc>
Run
nr_ulsim with CPU
</desc>
<physim_run_args>
-n
2 -s30 -m9 -r50 -R106 -o
</physim_run_args>
<physim_run_args>
-n
100 -s30 -m5 -r106 -R106 -C10 -P
</physim_run_args>
</testCase>
</testCase>
<testCase
id=
"000
00
2"
>
<testCase
id=
"000
11
2"
>
<class>
Run_
NRulsim
Test
</class>
<class>
Run_
LDPCt1
Test
</class>
<desc>
Run
T1 Offload nr_ulsim
</desc>
<desc>
Run
nr_ulsim with T1 LDPC offload
</desc>
<physim_run_args>
-n
2 -s30 -m9 -r106 -R106 -o
</physim_run_args>
<physim_run_args>
-n
100 -s30 -m5 -r106 -R106 -o -P
</physim_run_args>
</testCase>
</testCase>
<testCase
id=
"000
003
"
>
<testCase
id=
"000
121
"
>
<class>
Run_
NRulsim
Test
</class>
<class>
Run_
LDPCt1
Test
</class>
<desc>
Run
T1 Offload nr_ulsim
</desc>
<desc>
Run
nr_ulsim with CPU
</desc>
<physim_run_args>
-n
2 -s30 -m16 -r106 -R106 -o
</physim_run_args>
<physim_run_args>
-n
100 -s30 -m15 -r106 -R106 -C10 -P
</physim_run_args>
</testCase>
</testCase>
<testCase
id=
"000
004
"
>
<testCase
id=
"000
122
"
>
<class>
Run_
NRulsim
Test
</class>
<class>
Run_
LDPCt1
Test
</class>
<desc>
Run
T1 Offload nr_ulsim
</desc>
<desc>
Run
nr_ulsim with T1 LDPC offload
</desc>
<physim_run_args>
-n
2 -s30 -m9 -r273 -R273 -o
</physim_run_args>
<physim_run_args>
-n
100 -s30 -m15 -r106 -R106 -o -P
</physim_run_args>
</testCase>
</testCase>
<testCase
id=
"000131"
>
<class>
Run_LDPCt1Test
</class>
<desc>
Run nr_ulsim with CPU
</desc>
<physim_run_args>
-n100 -s30 -m25 -r106 -R106 -C10 -P
</physim_run_args>
</testCase>
<testCase
id=
"000132"
>
<class>
Run_LDPCt1Test
</class>
<desc>
Run nr_ulsim with T1 LDPC offload
</desc>
<physim_run_args>
-n100 -s30 -m25 -r106 -R106 -o -P
</physim_run_args>
</testCase>
<testCase
id=
"000211"
>
<class>
Run_LDPCt1Test
</class>
<desc>
Run nr_ulsim with CPU
</desc>
<physim_run_args>
-n100 -s30 -m5 -r273 -R273 -C10 -P
</physim_run_args>
</testCase>
<testCase
id=
"000212"
>
<class>
Run_LDPCt1Test
</class>
<desc>
Run nr_ulsim with T1 LDPC offload
</desc>
<physim_run_args>
-n100 -s30 -m5 -r273 -R273 -o -P
</physim_run_args>
</testCase>
<testCase
id=
"000221"
>
<class>
Run_LDPCt1Test
</class>
<desc>
Run nr_ulsim with CPU
</desc>
<physim_run_args>
-n100 -s30 -m15 -r273 -R273 -C10 -P
</physim_run_args>
</testCase>
<testCase
id=
"000222"
>
<class>
Run_LDPCt1Test
</class>
<desc>
Run nr_ulsim with T1 LDPC offload
</desc>
<physim_run_args>
-n100 -s30 -m15 -r273 -R273 -o -P
</physim_run_args>
</testCase>
<testCase
id=
"000231"
>
<class>
Run_LDPCt1Test
</class>
<desc>
Run nr_ulsim with CPU
</desc>
<physim_run_args>
-n100 -s30 -m25 -r273 -R273 -C10 -P
</physim_run_args>
</testCase>
<testCase
id=
"000232"
>
<class>
Run_LDPCt1Test
</class>
<desc>
Run nr_ulsim with T1 LDPC offload
</desc>
<physim_run_args>
-n100 -s30 -m25 -r273 -R273 -o -P
</physim_run_args>
</testCase>
</testCaseList>
</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