Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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 UE
Commits
92432782
Commit
92432782
authored
9 years ago
by
Rohit Gupta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updates for parallel execution to test case framework
parent
d0003e87
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
36 deletions
+85
-36
cmake_targets/autotests/openair.py
cmake_targets/autotests/openair.py
+4
-4
cmake_targets/autotests/run_exec_lte-softmodem_tests.py
cmake_targets/autotests/run_exec_lte-softmodem_tests.py
+79
-27
cmake_targets/autotests/test_case_list.xml
cmake_targets/autotests/test_case_list.xml
+2
-5
No files found.
cmake_targets/autotests/openair.py
View file @
92432782
...
@@ -164,15 +164,15 @@ class openair(core):
...
@@ -164,15 +164,15 @@ class openair(core):
def
kill
(
self
,
user
,
pw
):
def
kill
(
self
,
user
,
pw
):
try
:
try
:
if
user
==
'root'
:
if
user
==
'root'
:
os
.
system
(
'pkill oaisim'
)
os
.
system
(
'pkill oaisim
oaisim_nos1
'
)
os
.
system
(
'pkill cc1'
)
os
.
system
(
'pkill cc1'
)
time
.
sleep
(
1
)
time
.
sleep
(
1
)
os
.
system
(
'pkill oaisim'
)
os
.
system
(
'pkill oaisim
oaisim_nos1
'
)
else
:
else
:
os
.
system
(
'echo '
+
pw
+
' | sudo -S pkill oaisim'
)
os
.
system
(
'echo '
+
pw
+
' | sudo -S pkill oaisim
oaisim_nos1
'
)
os
.
system
(
'echo '
+
pw
+
' | sudo -S pkill cc1'
)
os
.
system
(
'echo '
+
pw
+
' | sudo -S pkill cc1'
)
time
.
sleep
(
1
)
time
.
sleep
(
1
)
os
.
system
(
'echo '
+
pw
+
' | sudo -S pkill oaisim'
)
os
.
system
(
'echo '
+
pw
+
' | sudo -S pkill oaisim
oaisim_nos1
'
)
except
Error
,
val
:
except
Error
,
val
:
print
"Error:"
,
val
print
"Error:"
,
val
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/run_exec_lte-softmodem_tests.py
View file @
92432782
...
@@ -211,47 +211,98 @@ class oaiThread (threading.Thread):
...
@@ -211,47 +211,98 @@ class oaiThread (threading.Thread):
print
"result = "
+
result
print
"result = "
+
result
print
"Exiting "
+
self
.
name
print
"Exiting "
+
self
.
name
#This class runs test cases with class
oaisim_noS1
, compilatation
#This class runs test cases with class
execution
, compilatation
class
testCaseThread_generic
(
threading
.
t
hread
):
class
testCaseThread_generic
(
threading
.
T
hread
):
def
__init__
(
self
,
threadID
,
name
,
oai
,
machine
,
logdirOAI5GRepo
,
oai5GRepoDirRemote
,
testcasename
,
oldprogramList
,
CleanupAluLteBox
,
username
,
password
,
timeout
):
def
__init__
(
self
,
threadID
,
name
,
machine
,
logdirOAI5GRepo
,
testcasename
,
oldprogramList
,
CleanupAluLteBox
,
password
,
timeout
):
threading
.
Thread
.
__init__
(
self
)
threading
.
Thread
.
__init__
(
self
)
self
.
threaID
=
threadID
self
.
threaID
=
threadID
self
.
name
=
name
self
.
name
=
name
self
.
oai
=
oai
self
.
testcasename
=
testcasename
self
.
testcasename
=
testcasename
self
.
timeout
=
timeout
self
.
timeout
=
timeout
self
.
machine
=
machine
self
.
machine
=
machine
self
.
oai5GRepoDirRemote
=
oai5GRepoDirRemote
self
.
logdirOAI5GRepo
=
logdirOAI5GRepo
self
.
logdirOAI5GRepo
=
logdirOAI5GRepo
self
.
username
=
username
self
.
oldprogramList
=
oldprogramList
self
.
password
=
password
self
.
CleanupAluLteBox
=
CleanupAluLteBox
self
.
password
=
password
def
run
(
self
):
def
run
(
self
):
try
:
try
:
mypassword
=
''
mypassword
=
''
#addsudo = 'echo \'' + mypassword + '\' | sudo -S -E '
#addsudo = 'echo \'' + mypassword + '\' | sudo -S -E '
addpass
=
'echo
\'
'
+
mypassword
+
'
\'
| '
addpass
=
'echo
\'
'
+
mypassword
+
'
\'
| '
user
=
getpass
.
getuser
()
user
=
getpass
.
getuser
()
print
"Starting test case : "
+
self
.
testcasename
+
" On machine "
+
machineName
print
"Starting test case : "
+
self
.
testcasename
+
" On machine "
+
self
.
machine
oai
=
openair
(
'localdomain'
,
machine
)
oai
.
connect
(
user
,
self
.
password
)
cleanOldPrograms
(
oai
,
oldprogramList
,
CleanUpAluLteBox
)
cleanOldPrograms
(
oai
,
oldprogramList
,
CleanUpAluLteBox
)
logdir_local_testcase
=
logdirOAI5GRepo
+
'/cmake_targets/autotests/log/'
+
testcasename
logdir_local
=
os
.
environ
.
get
(
'OPENAIR_DIR'
)
logdir_local_base
=
logdirOAI5GRepo
+
'/cmake_targets/autotests/log/'
logdir_local_testcase
=
logdir_local
+
'/cmake_targets/autotests/log/'
+
self
.
testcasename
logdir_remote_testcase
=
oai5GRepoDirRemote
+
'/cmake_targets/autotests/log'
+
self
.
testcasename
logdir_local_base
=
logdir_local
+
'/cmake_targets/autotests/log/'
logdir_remote_testcase
=
self
.
logdirOAI5GRepo
+
'/cmake_targets/autotests/log'
+
self
.
testcasename
logdir_remote
=
self
.
logdirOAI5GRepo
+
'/cmake_targets/autotests/log'
logfile_task_testcasename
=
logdir_local_testcase
+
'/test_task'
+
'_'
+
testcasename
+
'_.log'
logfile_task_testcasename_out
=
logdir_remote
+
'/test_task_out'
+
'_'
+
str
(
run
)
+
'_.log'
os
.
removedirs
(
logdir_testcase
)
os
.
removedirs
(
logdir_testcase
)
os
.
mkdir
(
logdir_testcase
)
os
.
mkdir
(
logdir_testcase
)
cmd
=
"( cd "
+
self
.
oai5GRepoDirRemote
+
"
\n
"
cmd
=
"( cd "
+
self
.
logdirOAI5GRepo
+
"
\n
"
cmd
=
cmd
+
"source oaienv
\n
"
cmd
=
cmd
+
"source oaienv
\n
"
cmd
=
cmd
+
"python run_test_case_generic -d "
+
self
.
oai5GRepoDirRemote
+
" -g "
+
"
\"
"
+
self
.
testcasename
+
"
\"
"
cmd
=
cmd
+
"$OPENAIR_DIR/cmake_targets/autotests/run_exec_autotets.bash --run-group
\"
"
+
"self.testcasename +
\"
"
cmd
=
cmd
+
" ) "
cmd
=
cmd
+
" ) >& "
+
logfile_task_testcasename_out
+
" ; "
+
" mv "
+
logfile_task_testcasename_out
+
logdir_remote_testcase
#Now we copy all the remote
write_file
(
logfile_task_testcasename
,
cmd
,
mode
=
"w"
)
ssh
=
SSHSession
(
self
.
machine
,
username
=
username
,
key_file
=
None
,
passsword
=
password
)
#Now we copy all the remote files
ssh
=
SSHSession
(
self
.
machine
,
username
=
user
,
key_file
=
None
,
password
=
password
)
ssh
.
get_all
(
logdir_remote_testcase
,
logdir_local_base
)
ssh
.
get_all
(
logdir_remote_testcase
,
logdir_local_base
)
print
"Finishing test case : "
+
self
.
testcasename
+
" On machine "
+
machineName
print
"Finishing test case : "
+
self
.
testcasename
+
" On machine "
+
machineName
cleanOldPrograms
(
oai
,
oldprogramList
,
CleanUpAluLteBox
)
oai
.
kill
()
oai
.
disconnect
()
except
Exception
,
e
:
error
=
''
error
=
error
+
' In function: '
+
sys
.
_getframe
().
f_code
.
co_name
+
': *** Caught exception: '
+
str
(
e
.
__class__
)
+
" : "
+
str
(
e
)
error
=
error
+
'
\n
threadID = '
+
self
.
threaID
+
'
\n
testcasename = '
+
self
.
testcasename
+
'
\n
timeout = '
+
self
.
timeout
+
'
\n
machine = '
+
self
.
machine
+
'
\n
logdirOAI5GRepo = '
+
self
.
logdirOAI5GRepo
+
'
\n
'
error
=
error
+
traceback
.
format_exc
()
def
addsudo
(
cmd
,
password
=
""
):
def
addsudo
(
cmd
,
password
=
""
):
cmd
=
'echo
\'
'
+
password
+
'
\'
| sudo -S -E bash -c
\'
'
+
cmd
+
'
\'
'
cmd
=
'echo
\'
'
+
password
+
'
\'
| sudo -S -E bash -c
\'
'
+
cmd
+
'
\'
'
return
cmd
return
cmd
def
handle_testcaseclass_generic
(
testcasename
,
threadListGeneric
,
oldprogramList
,
logdirOAI5GRepo
,
MachineList
,
password
,
CleanupAluLteBox
,
timeout
):
try
:
mypassword
=
password
MachineListFree
=
[]
while
MachineListFree
.
__len__
()
==
0
:
MachineListBusy
=
[]
#first we need to find the list of free machines that we could run our test case
if
threadListGeneric
.
__len__
()
==
0
:
#This means no thread is started yet
MachineListFree
=
MachineList
else
:
for
param
in
threadListGeneric
:
thread_id
=
param
[
"thread_id"
]
machine
=
param
[
"Machine"
]
testcasename
=
param
[
"testcasename"
]
thread_id
.
join
(
1
)
if
thread_id
.
isAlive
==
True
:
MachineListBusy
.
append
(
machine
)
else
:
threadListGeneric
.
remove
(
param
)
#Now we check if there is at least one free machine
MachineListFree
=
MachineList
for
machine
in
MachineListBusy
:
MachineListFree
.
remove
(
machine
)
machine
=
MachineListFree
[
0
]
thread
=
testCaseThread_generic
(
1
,
"Generic Thread"
,
machine
,
logdirOAI5GRepo
,
testcasename
,
oldprogramList
,
CleanupAluLteBox
,
password
,
timeout
)
param
=
{
"thread_id"
:
thread
,
"Machine"
:
machine
,
"testcasename"
:
testcasename
}
thread
.
start
()
threadListGeneric
.
append
(
param
)
return
threadListGeneric
except
Exception
,
e
:
error
=
''
error
=
error
+
' In function: '
+
sys
.
_getframe
().
f_code
.
co_name
+
': *** Caught exception: '
+
str
(
e
.
__class__
)
+
" : "
+
str
(
e
)
error
=
error
+
'
\n
testcasename = '
+
testcasename
+
'
\n
logdirOAI5GRepo = '
+
logdirOAI5GRepo
+
'
\n
MachineList = '
+
MachineList
+
'
\n
timeout = '
+
timeout
+
'
\n
'
error
=
error
+
traceback
.
format_exc
()
#Function to handle test case class : lte-softmodem
#Function to handle test case class : lte-softmodem
def
handle_testcaseclass_softmodem
(
testcase
,
oldprogramList
,
oai_list
,
logdirOAI5GRepo
,
logdirOpenaircnRepo
,
MachineList
,
password
,
CleanUpAluLteBox
):
def
handle_testcaseclass_softmodem
(
testcase
,
oldprogramList
,
oai_list
,
logdirOAI5GRepo
,
logdirOpenaircnRepo
,
MachineList
,
password
,
CleanUpAluLteBox
):
...
@@ -603,6 +654,7 @@ def search_test_case_group(testcasename, testcasegroup):
...
@@ -603,6 +654,7 @@ def search_test_case_group(testcasename, testcasegroup):
#thread1 = myThread(1, "Thread-1", 1)
#thread1 = myThread(1, "Thread-1", 1)
threadListGeneric
=
[]
debug
=
0
debug
=
0
pw
=
''
pw
=
''
i
=
0
i
=
0
...
@@ -714,6 +766,7 @@ GitOAI5GRepoBranch = xmlRoot.findtext('GitOAI5GRepoBranch',default='')
...
@@ -714,6 +766,7 @@ GitOAI5GRepoBranch = xmlRoot.findtext('GitOAI5GRepoBranch',default='')
GitOpenaircnRepoBranch
=
xmlRoot
.
findtext
(
'GitOpenair-cnRepoBranch'
,
default
=
''
)
GitOpenaircnRepoBranch
=
xmlRoot
.
findtext
(
'GitOpenair-cnRepoBranch'
,
default
=
''
)
CleanUpOldProgs
=
xmlRoot
.
findtext
(
'CleanUpOldProgs'
,
default
=
''
)
CleanUpOldProgs
=
xmlRoot
.
findtext
(
'CleanUpOldProgs'
,
default
=
''
)
CleanUpAluLteBox
=
xmlRoot
.
findtext
(
'CleanUpAluLteBox'
,
default
=
''
)
CleanUpAluLteBox
=
xmlRoot
.
findtext
(
'CleanUpAluLteBox'
,
default
=
''
)
Timeout_execution
=
int
(
xmlRoot
.
findtext
(
'Timeout_execution'
))
print
"MachineList = "
+
MachineList
print
"MachineList = "
+
MachineList
print
"GitOpenair-cnRepo = "
+
GitOpenaircnRepo
print
"GitOpenair-cnRepo = "
+
GitOpenaircnRepo
...
@@ -725,7 +778,7 @@ cmd = "git show-ref --heads -s "+ GitOAI5GRepoBranch
...
@@ -725,7 +778,7 @@ cmd = "git show-ref --heads -s "+ GitOAI5GRepoBranch
GitOAI5GHeadVersion
=
subprocess
.
check_output
([
cmd
],
shell
=
True
)
GitOAI5GHeadVersion
=
subprocess
.
check_output
([
cmd
],
shell
=
True
)
print
"GitOAI5GHeadVersion = "
+
GitOAI5GHeadVersion
print
"GitOAI5GHeadVersion = "
+
GitOAI5GHeadVersion
print
"CleanUpOldProgs = "
+
CleanUpOldProgs
print
"CleanUpOldProgs = "
+
CleanUpOldProgs
print
"Timeout_execution = "
+
str
(
Timeout_execution
)
MachineList
=
MachineList
.
split
()
MachineList
=
MachineList
.
split
()
...
@@ -897,6 +950,7 @@ for index in oai_list:
...
@@ -897,6 +950,7 @@ for index in oai_list:
sys
.
exit
(
1
)
sys
.
exit
(
1
)
#Now we wait for all the threads to complete
#Now we wait for all the threads to complete
index
=
0
index
=
0
for
t
in
threads_init_setup
:
for
t
in
threads_init_setup
:
...
@@ -922,7 +976,7 @@ for t in threads_init_setup:
...
@@ -922,7 +976,7 @@ for t in threads_init_setup:
#Now we process all the test cases
#Now we process all the test cases
threadListGeneric
=
[]
testcaseList
=
xmlRoot
.
findall
(
'testCase'
)
testcaseList
=
xmlRoot
.
findall
(
'testCase'
)
#print testcaseList
#print testcaseList
for
testcase
in
testcaseList
:
for
testcase
in
testcaseList
:
...
@@ -939,19 +993,17 @@ for testcase in testcaseList:
...
@@ -939,19 +993,17 @@ for testcase in testcaseList:
index_EPCMachine
=
MachineList
.
index
(
EPCMachine
)
index_EPCMachine
=
MachineList
.
index
(
EPCMachine
)
print
"testcasename = "
+
testcasename
+
" class = "
+
testcaseclass
print
"testcasename = "
+
testcasename
+
" class = "
+
testcaseclass
handle_testcaseclass_softmodem
(
testcase
,
CleanUpOldProgs
,
oai_list
,
logdirOAI5GRepo
,
logdirOpenaircnRepo
,
MachineList
,
pw
,
CleanUpAluLteBox
)
handle_testcaseclass_softmodem
(
testcase
,
CleanUpOldProgs
,
oai_list
,
logdirOAI5GRepo
,
logdirOpenaircnRepo
,
MachineList
,
pw
,
CleanUpAluLteBox
)
elif
(
testcaseclass
==
'compilation'
):
elif
testcaseclass
==
'compilation'
:
handle_testcaseclass_generic
(
testcasename
,
threadListGeneric
,
oldprogramList
,
logdirOAI5GRepo
,
MachineList
,
pw
,
CleanupAluLteBox
,
Timeout_execution
)
continue
elif
(
testcaseclass
==
'execution'
):
handle_testcaseclass_compilation
(
testcase
)
handle_testcaseclass_generic
(
testcasename
,
threadListGeneric
,
oldprogramList
,
logdirOAI5GRepo
,
MachineList
,
pw
,
CleanupAluLteBox
,
Timeout_execution
)
elif
testcaseclass
==
'execution'
:
continue
handle_testcaseclass_oaisim
(
testcase
)
else
:
else
:
print
"Unknown test case class: "
+
testcaseclass
print
"Unknown test case class: "
+
testcaseclass
sys
.
exit
()
sys
.
exit
()
print
"Exiting the test cases execution now..."
print
"Exiting the test cases execution now..."
sys
.
exit
()
sys
.
exit
()
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/test_case_list.xml
View file @
92432782
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
<GitOpenair-cnRepoBranch>
feature-17-test_framework
</GitOpenair-cnRepoBranch>
<GitOpenair-cnRepoBranch>
feature-17-test_framework
</GitOpenair-cnRepoBranch>
<CleanUpOldProgs>
oaisim* oaisim_nos1* lte-softmodem* lte-softmodem-nos1* mme_gw* run_epc* run_hss* iperf* hss hss_sim configure_cots_bandrich_ue* wvdial*
</CleanUpOldProgs>
<CleanUpOldProgs>
oaisim* oaisim_nos1* lte-softmodem* lte-softmodem-nos1* mme_gw* run_epc* run_hss* iperf* hss hss_sim configure_cots_bandrich_ue* wvdial*
</CleanUpOldProgs>
<CleanUpAluLteBox>
/opt/ltebox/tools/stop_ltebox
</CleanUpAluLteBox>
<CleanUpAluLteBox>
/opt/ltebox/tools/stop_ltebox
</CleanUpAluLteBox>
<Timeout_execution>
1800
</Timeout_execution>
<testCase
id=
"010101"
>
<testCase
id=
"010101"
>
<class>
compilation
</class>
<class>
compilation
</class>
<desc>
Build oaisim.Rel8
</desc>
<desc>
Build oaisim.Rel8
</desc>
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
<search_expr_true></search_expr_true>
<search_expr_true></search_expr_true>
<search_expr_false></search_expr_false>
<search_expr_false></search_expr_false>
<tags>
oaisim.Rel8
</tags>
<tags>
oaisim.Rel8
</tags>
<nruns>
2
</nruns>
<nruns>
1
</nruns>
</testCase>
</testCase>
<testCase
id=
"010102"
>
<testCase
id=
"010102"
>
...
@@ -928,7 +928,6 @@
...
@@ -928,7 +928,6 @@
<eNB>
calisson
</eNB>
<eNB>
calisson
</eNB>
<UE>
stevens
</UE>
<UE>
stevens
</UE>
<EPC>
amerique
</EPC>
<EPC>
amerique
</EPC>
<cleanupScript>
oaisim* oaisim_nos1* lte-softmodem* lte-softmodem-nos1* mme_gw* run_epc* run_hss* iperf* ltebox*
</cleanupScript>
<TimeOut_cmd>
60
</TimeOut_cmd>
<TimeOut_cmd>
60
</TimeOut_cmd>
<eNB_working_dir>
/tmp
</eNB_working_dir>
<eNB_working_dir>
/tmp
</eNB_working_dir>
<eNB_config_file>
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf tracking_area_code \"1\"
<eNB_config_file>
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf tracking_area_code \"1\"
...
@@ -1000,7 +999,6 @@
...
@@ -1000,7 +999,6 @@
<eNB>
calisson
</eNB>
<eNB>
calisson
</eNB>
<UE>
stevens
</UE>
<UE>
stevens
</UE>
<EPC>
nano
</EPC>
<EPC>
nano
</EPC>
<cleanupScript>
oaisim* oaisim_nos1* lte-softmodem* lte-softmodem-nos1* mme_gw* run_epc* run_hss* iperf* ltebox*
</cleanupScript>
<TimeOut_cmd>
60
</TimeOut_cmd>
<TimeOut_cmd>
60
</TimeOut_cmd>
<eNB_working_dir>
/tmp
</eNB_working_dir>
<eNB_working_dir>
/tmp
</eNB_working_dir>
<eNB_config_file>
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf tracking_area_code \"1\"
<eNB_config_file>
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf tracking_area_code \"1\"
...
@@ -1079,7 +1077,6 @@
...
@@ -1079,7 +1077,6 @@
<eNB>
calisson
</eNB>
<eNB>
calisson
</eNB>
<UE>
stevens
</UE>
<UE>
stevens
</UE>
<EPC>
calisson
</EPC>
<EPC>
calisson
</EPC>
<cleanupScript>
oaisim* oaisim_nos1* lte-softmodem* lte-softmodem-nos1* mme_gw* run_epc* run_hss* iperf* ltebox*
</cleanupScript>
<TimeOut_cmd>
60
</TimeOut_cmd>
<TimeOut_cmd>
60
</TimeOut_cmd>
<eNB_working_dir>
/tmp
</eNB_working_dir>
<eNB_working_dir>
/tmp
</eNB_working_dir>
<eNB_config_file>
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf tracking_area_code \"1\"
<eNB_config_file>
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf tracking_area_code \"1\"
...
...
This diff is collapsed.
Click to expand it.
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