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
Michael Black
OpenXG UE
Commits
4bb2b8a2
Commit
4bb2b8a2
authored
Nov 08, 2018
by
Guy De Souza
Browse files
Options
Browse Files
Download
Plain Diff
Merge with develop-nr
parents
ae96e3dc
428fff04
Changes
17
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
2036 additions
and
2526 deletions
+2036
-2526
ci-scripts/Jenkinsfile-gitlab
ci-scripts/Jenkinsfile-gitlab
+24
-24
ci-scripts/buildOnVM.sh
ci-scripts/buildOnVM.sh
+101
-400
ci-scripts/createVM.sh
ci-scripts/createVM.sh
+21
-165
ci-scripts/destroyAllRunningVM.sh
ci-scripts/destroyAllRunningVM.sh
+24
-62
ci-scripts/oai-ci-vm-tool
ci-scripts/oai-ci-vm-tool
+573
-0
ci-scripts/reportBuildLocally.sh
ci-scripts/reportBuildLocally.sh
+239
-376
ci-scripts/reportTestLocally.sh
ci-scripts/reportTestLocally.sh
+325
-461
ci-scripts/runTestOnVM.sh
ci-scripts/runTestOnVM.sh
+524
-658
ci-scripts/waitBuildOnVM.sh
ci-scripts/waitBuildOnVM.sh
+95
-331
cmake_targets/autotests/test_case_list.xml
cmake_targets/autotests/test_case_list.xml
+1
-1
openair1/PHY/INIT/nr_init.c
openair1/PHY/INIT/nr_init.c
+2
-2
openair1/PHY/INIT/nr_init_ue.c
openair1/PHY/INIT/nr_init_ue.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+4
-4
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+48
-25
openair1/SIMULATION/NR_PHY/pbchsim.c
openair1/SIMULATION/NR_PHY/pbchsim.c
+9
-2
targets/RT/USER/nr-ue.c
targets/RT/USER/nr-ue.c
+44
-13
No files found.
ci-scripts/Jenkinsfile-gitlab
View file @
4bb2b8a2
...
@@ -118,7 +118,7 @@ pipeline {
...
@@ -118,7 +118,7 @@ pipeline {
stage
(
"Start VM -- basic-sim"
)
{
stage
(
"Start VM -- basic-sim"
)
{
steps
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
}
}
...
@@ -126,7 +126,7 @@ pipeline {
...
@@ -126,7 +126,7 @@ pipeline {
stage
(
"Start VM -- gnb-usrp"
)
{
stage
(
"Start VM -- gnb-usrp"
)
{
steps
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
}
}
...
@@ -134,7 +134,7 @@ pipeline {
...
@@ -134,7 +134,7 @@ pipeline {
stage
(
"Start VM -- nu-ue-usrp"
)
{
stage
(
"Start VM -- nu-ue-usrp"
)
{
steps
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
}
}
...
@@ -142,7 +142,7 @@ pipeline {
...
@@ -142,7 +142,7 @@ pipeline {
stage
(
"Start VM -- enb-usrp"
)
{
stage
(
"Start VM -- enb-usrp"
)
{
steps
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
}
}
...
@@ -150,7 +150,7 @@ pipeline {
...
@@ -150,7 +150,7 @@ pipeline {
stage
(
"Start VM -- enb-ethernet"
)
{
stage
(
"Start VM -- enb-ethernet"
)
{
steps
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
}
}
...
@@ -158,7 +158,7 @@ pipeline {
...
@@ -158,7 +158,7 @@ pipeline {
stage
(
"Start VM -- ue-ethernet"
)
{
stage
(
"Start VM -- ue-ethernet"
)
{
steps
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
}
}
...
@@ -166,7 +166,7 @@ pipeline {
...
@@ -166,7 +166,7 @@ pipeline {
stage
(
"Start VM -- phy-sim"
)
{
stage
(
"Start VM -- phy-sim"
)
{
steps
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
}
}
...
@@ -174,7 +174,7 @@ pipeline {
...
@@ -174,7 +174,7 @@ pipeline {
stage
(
"Start VM -- cppcheck"
)
{
stage
(
"Start VM -- cppcheck"
)
{
steps
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
}
}
}
...
@@ -185,7 +185,7 @@ pipeline {
...
@@ -185,7 +185,7 @@ pipeline {
steps
{
steps
{
gitlabCommitStatus
(
name:
"Analysis with cppcheck"
)
{
gitlabCommitStatus
(
name:
"Analysis with cppcheck"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
}
}
}
...
@@ -194,7 +194,7 @@ pipeline {
...
@@ -194,7 +194,7 @@ pipeline {
steps
{
steps
{
gitlabCommitStatus
(
name:
"Build eNb-USRP"
)
{
gitlabCommitStatus
(
name:
"Build eNb-USRP"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
}
}
}
...
@@ -203,7 +203,7 @@ pipeline {
...
@@ -203,7 +203,7 @@ pipeline {
steps
{
steps
{
gitlabCommitStatus
(
name:
"Build basic-sim"
)
{
gitlabCommitStatus
(
name:
"Build basic-sim"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
}
}
}
...
@@ -212,7 +212,7 @@ pipeline {
...
@@ -212,7 +212,7 @@ pipeline {
steps
{
steps
{
gitlabCommitStatus
(
name:
"Build eNb-ethernet"
)
{
gitlabCommitStatus
(
name:
"Build eNb-ethernet"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
}
}
}
...
@@ -221,7 +221,7 @@ pipeline {
...
@@ -221,7 +221,7 @@ pipeline {
steps
{
steps
{
gitlabCommitStatus
(
name:
"Build UE-ethernet"
)
{
gitlabCommitStatus
(
name:
"Build UE-ethernet"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
}
}
}
...
@@ -230,7 +230,7 @@ pipeline {
...
@@ -230,7 +230,7 @@ pipeline {
steps
{
steps
{
gitlabCommitStatus
(
name:
"Build gNb-usrp"
)
{
gitlabCommitStatus
(
name:
"Build gNb-usrp"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
}
}
}
...
@@ -239,7 +239,7 @@ pipeline {
...
@@ -239,7 +239,7 @@ pipeline {
steps
{
steps
{
gitlabCommitStatus
(
name:
"Build nr-UE-usrp"
)
{
gitlabCommitStatus
(
name:
"Build nr-UE-usrp"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
}
}
}
...
@@ -248,7 +248,7 @@ pipeline {
...
@@ -248,7 +248,7 @@ pipeline {
steps
{
steps
{
gitlabCommitStatus
(
name:
"Build phy-sim"
)
{
gitlabCommitStatus
(
name:
"Build phy-sim"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
}
}
}
...
@@ -286,7 +286,7 @@ pipeline {
...
@@ -286,7 +286,7 @@ pipeline {
archiveArtifacts
artifacts:
'archives/vm_build_logs.zip'
archiveArtifacts
artifacts:
'archives/vm_build_logs.zip'
}
}
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
sh
"./ci-scripts/
reportBuildLocally.sh
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
sh
"./ci-scripts/
oai-ci-vm-tool report-build --workspace $WORKSPACE
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
sh
"./ci-scripts/checkAddedWarnings.sh --src-branch ${env.gitlabSourceBranch} --target-branch ${env.gitlabTargetBranch}"
sh
"./ci-scripts/checkAddedWarnings.sh --src-branch ${env.gitlabSourceBranch} --target-branch ${env.gitlabTargetBranch}"
def
res
=
readFile
(
'./oai_warning_files.txt'
).
trim
();
def
res
=
readFile
(
'./oai_warning_files.txt'
).
trim
();
if
(
"0"
.
equals
(
res
))
{
if
(
"0"
.
equals
(
res
))
{
...
@@ -297,7 +297,7 @@ pipeline {
...
@@ -297,7 +297,7 @@ pipeline {
addGitLabMRComment
comment:
message
addGitLabMRComment
comment:
message
}
}
}
else
{
}
else
{
sh
"./ci-scripts/
reportBuildLocally.sh
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
sh
"./ci-scripts/
oai-ci-vm-tool report-build --workspace $WORKSPACE
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
}
}
if
(
fileExists
(
'build_results.html'
))
{
if
(
fileExists
(
'build_results.html'
))
{
sh
"sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' build_results.html"
sh
"sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' build_results.html"
...
@@ -314,7 +314,7 @@ pipeline {
...
@@ -314,7 +314,7 @@ pipeline {
steps
{
steps
{
gitlabCommitStatus
(
name:
"Test phy-sim"
)
{
gitlabCommitStatus
(
name:
"Test phy-sim"
)
{
timeout
(
time:
45
,
unit:
'MINUTES'
)
{
timeout
(
time:
45
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
runTestOnVM.sh
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool test
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
}
}
}
...
@@ -323,7 +323,7 @@ pipeline {
...
@@ -323,7 +323,7 @@ pipeline {
steps
{
steps
{
gitlabCommitStatus
(
name:
"Test basic-sim"
)
{
gitlabCommitStatus
(
name:
"Test basic-sim"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
runTestOnVM.sh --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive
"
sh
"./ci-scripts/
oai-ci-vm-tool test --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}
"
}
}
}
}
}
}
...
@@ -518,9 +518,9 @@ pipeline {
...
@@ -518,9 +518,9 @@ pipeline {
if
(
fileExists
(
'archives/vm_tests_logs.zip'
))
{
if
(
fileExists
(
'archives/vm_tests_logs.zip'
))
{
archiveArtifacts
artifacts:
'archives/vm_tests_logs.zip'
archiveArtifacts
artifacts:
'archives/vm_tests_logs.zip'
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
sh
"./ci-scripts/
reportTestLocally.sh
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
sh
"./ci-scripts/
oai-ci-vm-tool report-test --workspace $WORKSPACE
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
}
else
{
}
else
{
sh
"./ci-scripts/
reportTestLocally.sh
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
sh
"./ci-scripts/
oai-ci-vm-tool report-test --workspace $WORKSPACE
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
}
}
if
(
fileExists
(
'test_simulator_results.html'
))
{
if
(
fileExists
(
'test_simulator_results.html'
))
{
sh
"sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' test_simulator_results.html"
sh
"sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' test_simulator_results.html"
...
@@ -533,7 +533,7 @@ pipeline {
...
@@ -533,7 +533,7 @@ pipeline {
}
}
stage
(
"Destroy all Virtual Machines"
)
{
stage
(
"Destroy all Virtual Machines"
)
{
steps
{
steps
{
sh
"./ci-scripts/
destroyAllRunningVM.sh
--job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool destroy
--job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
}
}
}
...
@@ -541,7 +541,7 @@ pipeline {
...
@@ -541,7 +541,7 @@ pipeline {
always
{
always
{
script
{
script
{
// Stage destroy may not be run if error in previous stage
// Stage destroy may not be run if error in previous stage
sh
"./ci-scripts/
destroyAllRunningVM.sh
--job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool destroy
--job-name ${JOB_NAME} --build-id ${BUILD_ID}"
emailext
attachmentsPattern:
'*results*.html'
,
emailext
attachmentsPattern:
'*results*.html'
,
body:
'''Hi,
body:
'''Hi,
Here are attached HTML report files for $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
Here are attached HTML report files for $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
...
...
ci-scripts/buildOnVM.sh
View file @
4bb2b8a2
...
@@ -20,8 +20,8 @@
...
@@ -20,8 +20,8 @@
# * contact@openairinterface.org
# * contact@openairinterface.org
# */
# */
function
usage
{
function
build_
usage
{
echo
"OAI
VM Build Check
script"
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
echo
" -- uvtool uvtool-libvirt apt-cacher"
...
@@ -31,9 +31,9 @@ function usage {
...
@@ -31,9 +31,9 @@ function usage {
echo
""
echo
""
echo
"Usage:"
echo
"Usage:"
echo
"------"
echo
"------"
echo
"
buildOnVM.sh
[OPTIONS]"
echo
"
oai-ci-vm-tool build
[OPTIONS]"
echo
""
echo
""
echo
"Options:"
echo
"
Mandatory
Options:"
echo
"--------"
echo
"--------"
echo
" --job-name #### OR -jn ####"
echo
" --job-name #### OR -jn ####"
echo
" Specify the name of the Jenkins job."
echo
" Specify the name of the Jenkins job."
...
@@ -44,14 +44,9 @@ function usage {
...
@@ -44,14 +44,9 @@ function usage {
echo
" --workspace #### OR -ws ####"
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
" Specify the workspace."
echo
""
echo
""
echo
" --variant enb-usrp OR -v1"
echo
"Options:"
echo
" --variant basic-sim OR -v2"
echo
"--------"
echo
" --variant phy-sim OR -v3"
variant_usage
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
" Specify the variant to build."
echo
" Specify the variant to build."
echo
""
echo
""
echo
" --keep-vm-alive OR -k"
echo
" --keep-vm-alive OR -k"
...
@@ -65,280 +60,62 @@ function usage {
...
@@ -65,280 +60,62 @@ function usage {
echo
""
echo
""
}
}
function
variant_usage
{
function
build_on_vm
{
echo
"OAI VM Build Check script"
if
[
!
-f
$JENKINS_WKSP
/localZip.zip
]
echo
" Original Author: Raphael Defosseux"
then
echo
""
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
""
}
if
[
$#
-lt
1
]
||
[
$#
-gt
9
]
then
echo
"Syntax Error: not the correct number of arguments"
echo
""
usage
exit
1
fi
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
BUILD_ID
=
XX
VM_NAME
=
ci-enb-usrp
VM_MEMORY
=
2048
VM_CPU
=
4
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP"
KEEP_VM_ALIVE
=
0
DAEMON
=
0
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
-ws
|
--workspace
)
JENKINS_WKSP
=
"
$2
"
shift
shift
;;
-k
|
--keep-vm-alive
)
KEEP_VM_ALIVE
=
1
shift
;;
-D
|
--daemon
)
DAEMON
=
1
shift
;;
-v1
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
shift
;;
-v2
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
shift
;;
-v3
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
shift
;;
-v4
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
shift
;;
-v5
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
shift
;;
-v6
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
shift
;;
-v7
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
shift
;;
-v8
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
shift
;;
--variant
)
variant
=
"
$2
"
case
$variant
in
enb-usrp
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
;;
basic-sim
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
;;
phy-sim
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
;;
cppcheck
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
;;
gnb-usrp
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
;;
nu-ue-usrp
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
;;
enb-ethernet
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
;;
ue-ethernet
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
;;
*
)
echo
""
echo
"Syntax Error: Invalid Variant option ->
$variant
"
echo
""
variant_usage
exit
1
esac
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
!
-f
$JENKINS_WKSP
/localZip.zip
]
then
echo
"Missing localZip.zip file!"
echo
"Missing localZip.zip file!"
exit
1
STATUS
=
1
fi
return
if
[
!
-f
/etc/apt/apt.conf.d/01proxy
]
fi
then
if
[
!
-f
/etc/apt/apt.conf.d/01proxy
]
then
echo
"Missing /etc/apt/apt.conf.d/01proxy file!"
echo
"Missing /etc/apt/apt.conf.d/01proxy file!"
echo
"Is apt-cacher installed and configured?"
echo
"Is apt-cacher installed and configured?"
exit
1
STATUS
=
1
fi
return
fi
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
then
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#ci-#
$VM_TEMPLATE
#"
`
echo
"############################################################"
VM_CMDS
=
${
VM_NAME
}
_cmds.txt
echo
"OAI CI VM script"
ARCHIVES_LOC
=
${
JENKINS_WKSP
}
/archives/
${
ARCHIVES_LOC
}
echo
"############################################################"
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_CMD_FILE =
$VM_CMDS
"
echo
"VM_CMD_FILE =
$VM_CMDS
"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
echo
"BUILD_OPTIONS =
$BUILD_OPTIONS
"
echo
"BUILD_OPTIONS =
$BUILD_OPTIONS
"
IS_VM_ALIVE
=
`
uvt-kvm list |
grep
-c
$VM_NAME
`
IS_VM_ALIVE
=
`
uvt-kvm list |
grep
-c
$VM_NAME
`
if
[
$IS_VM_ALIVE
-eq
0
]
if
[
$IS_VM_ALIVE
-eq
0
]
then
then
echo
"VM_MEMORY =
$VM_MEMORY
MBytes"
echo
"VM_CPU =
$VM_CPU
"
echo
"############################################################"
echo
"############################################################"
echo
"Creating VM (
$VM_NAME
) on Ubuntu Cloud Image base"
echo
"Creating VM (
$VM_NAME
) on Ubuntu Cloud Image base"
echo
"############################################################"
echo
"############################################################"
uvt-kvm create
$VM_NAME
release
=
xenial
--memory
$VM_MEMORY
--cpu
$VM_CPU
--unsafe-caching
--template
ci-scripts/template-host.xml
uvt-kvm create
$VM_NAME
release
=
xenial
--memory
$VM_MEMORY
--cpu
$VM_CPU
--unsafe-caching
--template
ci-scripts/template-host.xml
fi
fi
echo
"Waiting for VM to be started"
echo
"Waiting for VM to be started"
uvt-kvm
wait
$VM_NAME
--insecure
uvt-kvm
wait
$VM_NAME
--insecure
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
echo
"############################################################"
echo
"############################################################"
echo
"Copying GIT repo into VM (
$VM_NAME
)"
echo
"Copying GIT repo into VM (
$VM_NAME
)"
echo
"############################################################"
echo
"############################################################"
scp
-o
StrictHostKeyChecking
=
no
localZip.zip ubuntu@
$VM_IP_ADDR
:/home/ubuntu
scp
-o
StrictHostKeyChecking
=
no
$JENKINS_WKSP
/
localZip.zip ubuntu@
$VM_IP_ADDR
:/home/ubuntu
scp
-o
StrictHostKeyChecking
=
no /etc/apt/apt.conf.d/01proxy ubuntu@
$VM_IP_ADDR
:/home/ubuntu
scp
-o
StrictHostKeyChecking
=
no /etc/apt/apt.conf.d/01proxy ubuntu@
$VM_IP_ADDR
:/home/ubuntu
echo
"############################################################"
echo
"############################################################"
echo
"Running install and build script on VM (
$VM_NAME
)"
echo
"Running install and build script on VM (
$VM_NAME
)"
echo
"############################################################"
echo
"############################################################"
echo
"sudo cp 01proxy /etc/apt/apt.conf.d/"
>
$VM_CMDS
echo
"sudo cp 01proxy /etc/apt/apt.conf.d/"
>
$VM_CMDS
echo
"touch /home/ubuntu/.hushlogin"
>>
$VM_CMDS
echo
"touch /home/ubuntu/.hushlogin"
>>
$VM_CMDS
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
then
if
[
$DAEMON
-eq
0
]
if
[
$DAEMON
-eq
0
]
then
then
echo
"echo
\"
sudo apt-get --yes --quiet install zip cppcheck
\"
"
>>
$VM_CMDS
echo
"echo
\"
sudo apt-get --yes --quiet install zip cppcheck
\"
"
>>
$VM_CMDS
...
@@ -349,7 +126,7 @@ then
...
@@ -349,7 +126,7 @@ then
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip daemon cppcheck >> zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip daemon cppcheck >> zip-install.txt 2>&1"
>>
$VM_CMDS
fi
fi
else
else
if
[
$DAEMON
-eq
0
]
if
[
$DAEMON
-eq
0
]
then
then
echo
"echo
\"
sudo apt-get --yes --quiet install zip subversion libboost-dev
\"
"
>>
$VM_CMDS
echo
"echo
\"
sudo apt-get --yes --quiet install zip subversion libboost-dev
\"
"
>>
$VM_CMDS
...
@@ -360,13 +137,13 @@ else
...
@@ -360,13 +137,13 @@ else
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip daemon subversion libboost-dev >> zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip daemon subversion libboost-dev >> zip-install.txt 2>&1"
>>
$VM_CMDS
fi
fi
fi
fi
echo
"mkdir tmp"
>>
$VM_CMDS
echo
"mkdir tmp"
>>
$VM_CMDS
echo
"cd tmp"
>>
$VM_CMDS
echo
"cd tmp"
>>
$VM_CMDS
echo
"echo
\"
unzip -qq -DD ../localZip.zip
\"
"
>>
$VM_CMDS
echo
"echo
\"
unzip -qq -DD ../localZip.zip
\"
"
>>
$VM_CMDS
echo
"unzip -qq -DD ../localZip.zip"
>>
$VM_CMDS
echo
"unzip -qq -DD ../localZip.zip"
>>
$VM_CMDS
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
then
echo
"mkdir cmake_targets/log"
>>
$VM_CMDS
echo
"mkdir cmake_targets/log"
>>
$VM_CMDS
echo
"chmod 777 cmake_targets/log"
>>
$VM_CMDS
echo
"chmod 777 cmake_targets/log"
>>
$VM_CMDS
echo
"cp /home/ubuntu/zip-install.txt cmake_targets/log"
>>
$VM_CMDS
echo
"cp /home/ubuntu/zip-install.txt cmake_targets/log"
>>
$VM_CMDS
...
@@ -379,7 +156,7 @@ then
...
@@ -379,7 +156,7 @@ then
echo
"chmod 775 ./my-vm-build.sh "
>>
$VM_CMDS
echo
"chmod 775 ./my-vm-build.sh "
>>
$VM_CMDS
echo
"sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp -O /home/ubuntu/tmp/cmake_targets/log/cppcheck_build.txt -E /home/ubuntu/tmp/cmake_targets/log/cppcheck.xml ./my-vm-build.sh"
>>
$VM_CMDS
echo
"sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp -O /home/ubuntu/tmp/cmake_targets/log/cppcheck_build.txt -E /home/ubuntu/tmp/cmake_targets/log/cppcheck.xml ./my-vm-build.sh"
>>
$VM_CMDS
fi
fi
else
else
echo
"echo
\"
source oaienv
\"
"
>>
$VM_CMDS
echo
"echo
\"
source oaienv
\"
"
>>
$VM_CMDS
echo
"source oaienv"
>>
$VM_CMDS
echo
"source oaienv"
>>
$VM_CMDS
echo
"cd cmake_targets/"
>>
$VM_CMDS
echo
"cd cmake_targets/"
>>
$VM_CMDS
...
@@ -396,83 +173,7 @@ else
...
@@ -396,83 +173,7 @@ else
echo
"echo
\"
sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh
\"
"
>>
$VM_CMDS
echo
"echo
\"
sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh
\"
"
>>
$VM_CMDS
echo
"sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh"
>>
$VM_CMDS
echo
"sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh"
>>
$VM_CMDS
fi
fi
fi
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
<
$VM_CMDS
if
[
$DAEMON
-eq
1
]
then
rm
-f
$VM_CMDS
echo
"STATUS is OK"
exit
0
fi
echo
"############################################################"
echo
"Creating a tmp folder to store results and artifacts"
echo
"############################################################"
if
[
!
-d
$JENKINS_WKSP
/archives
]
then
mkdir
$JENKINS_WKSP
/archives
fi
if
[
!
-d
$ARCHIVES_LOC
]
then
mkdir
$ARCHIVES_LOC
fi
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.txt
$ARCHIVES_LOC
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.xml
$ARCHIVES_LOC
fi
if
[
$KEEP_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"Destroying VM"
echo
"############################################################"
uvt-kvm destroy
$VM_NAME
ssh-keygen
-R
$VM_IP_ADDR
fi
rm
-f
$VM_CMDS
echo
"############################################################"
echo
"Checking build status"
echo
"############################################################"
LOG_FILES
=
`
ls
$ARCHIVES_LOC
/
*
.txt
$ARCHIVES_LOC
/
*
.xml
`
STATUS
=
0
NB_FOUND_FILES
=
0
for
FULLFILE
in
$LOG_FILES
do
if
[[
$FULLFILE
==
*
"
$LOG_PATTERN
"
*
]]
then
filename
=
$(
basename
--
"
$FULLFILE
"
)
if
[
"
$LOG_PATTERN
"
==
".Rel15.txt"
]
then
PASS_PATTERN
=
`
echo
$filename
|
sed
-e
"s#
$LOG_PATTERN
##"
`
fi
if
[
"
$LOG_PATTERN
"
==
"basic_simulator"
]
then
PASS_PATTERN
=
"lte-"
fi
if
[
"
$LOG_PATTERN
"
==
"cppcheck.xml"
]
then
PASS_PATTERN
=
"results version"
LOCAL_STAT
=
`
egrep
-c
"
$PASS_PATTERN
"
$FULLFILE
`
else
LOCAL_STAT
=
`
egrep
-c
"Built target
$PASS_PATTERN
"
$FULLFILE
`
fi
fi
if
[
$LOCAL_STAT
-eq
0
]
;
then
STATUS
=
-1
;
fi
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
<
$VM_CMDS
NB_FOUND_FILES
=
$((
NB_FOUND_FILES
+
1
))
rm
-f
$VM_CMDS
fi
}
done
if
[
$NB_PATTERN_FILES
-ne
$NB_FOUND_FILES
]
;
then
STATUS
=
-1
;
fi
if
[
$STATUS
-eq
0
]
then
echo
"STATUS seems OK"
else
echo
"STATUS failed?"
fi
exit
$STATUS
ci-scripts/createVM.sh
View file @
4bb2b8a2
...
@@ -20,8 +20,8 @@
...
@@ -20,8 +20,8 @@
# * contact@openairinterface.org
# * contact@openairinterface.org
# */
# */
function
usage
{
function
create_
usage
{
echo
"OAI
VM Creation
script"
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
echo
" -- uvtool uvtool-libvirt apt-cacher"
...
@@ -31,9 +31,9 @@ function usage {
...
@@ -31,9 +31,9 @@ function usage {
echo
""
echo
""
echo
"Usage:"
echo
"Usage:"
echo
"------"
echo
"------"
echo
"
createVM.sh
[OPTIONS]"
echo
"
oai-ci-vm-tool create
[OPTIONS]"
echo
""
echo
""
echo
"Options:"
echo
"
Mandatory
Options:"
echo
"--------"
echo
"--------"
echo
" --job-name #### OR -jn ####"
echo
" --job-name #### OR -jn ####"
echo
" Specify the name of the Jenkins job."
echo
" Specify the name of the Jenkins job."
...
@@ -41,14 +41,7 @@ function usage {
...
@@ -41,14 +41,7 @@ function usage {
echo
" --build-id #### OR -id ####"
echo
" --build-id #### OR -id ####"
echo
" Specify the build ID of the Jenkins job."
echo
" Specify the build ID of the Jenkins job."
echo
""
echo
""
echo
" --variant enb-usrp OR -v1"
variant_usage
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
" Specify the variant to build."
echo
" Specify the variant to build."
echo
""
echo
""
echo
" --help OR -h"
echo
" --help OR -h"
...
@@ -56,158 +49,21 @@ function usage {
...
@@ -56,158 +49,21 @@ function usage {
echo
""
echo
""
}
}
function
variant_usage
{
function
create_vm
{
echo
"OAI VM Build Check script"
echo
"############################################################"
echo
" Original Author: Raphael Defosseux"
echo
"OAI CI VM script"
echo
""
echo
"############################################################"
echo
" --variant enb-usrp OR -v1"
echo
"VM_NAME =
$VM_NAME
"
echo
" --variant basic-sim OR -v2"
echo
"VM_MEMORY =
$VM_MEMORY
MBytes"
echo
" --variant phy-sim OR -v3"
echo
"VM_CPU =
$VM_CPU
"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
""
}
if
[
$#
-lt
1
]
||
[
$#
-gt
6
]
then
echo
"Syntax Error: not the correct number of arguments"
echo
""
usage
exit
1
fi
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
BUILD_ID
=
XX
VM_NAME
=
ci-enb-usrp
VM_MEMORY
=
2048
VM_CPU
=
4
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
echo
"############################################################"
-h
|
--help
)
echo
"Creating VM (
$VM_NAME
) on Ubuntu Cloud Image base"
shift
echo
"############################################################"
usage
uvt-kvm create
$VM_NAME
release
=
xenial
--memory
$VM_MEMORY
--cpu
$VM_CPU
--unsafe-caching
--template
ci-scripts/template-host.xml
exit
0
echo
"Waiting for VM to be started"
;;
uvt-kvm
wait
$VM_NAME
--insecure
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
-v1
)
VM_NAME
=
ci-enb-usrp
shift
;;
-v2
)
VM_NAME
=
ci-basic-sim
VM_MEMORY
=
8192
shift
;;
-v3
)
VM_NAME
=
ci-phy-sim
shift
;;
-v4
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
shift
;;
-v5
)
VM_NAME
=
ci-gnb-usrp
shift
;;
-v6
)
VM_NAME
=
ci-ue-nr-usrp
shift
;;
-v7
)
VM_NAME
=
ci-enb-ethernet
shift
;;
-v8
)
VM_NAME
=
ci-ue-ethernet
shift
;;
--variant
)
variant
=
"
$2
"
case
$variant
in
enb-usrp
)
VM_NAME
=
ci-enb-usrp
;;
basic-sim
)
VM_NAME
=
ci-basic-sim
VM_MEMORY
=
8192
;;
phy-sim
)
VM_NAME
=
ci-phy-sim
;;
cppcheck
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
;;
gnb-usrp
)
VM_NAME
=
ci-gnb-usrp
;;
nu-ue-usrp
)
VM_NAME
=
ci-ue-nr-usrp
;;
enb-ethernet
)
VM_NAME
=
ci-enb-ethernet
;;
ue-ethernet
)
VM_NAME
=
ci-ue-ethernet
;;
*
)
echo
""
echo
"Syntax Error: Invalid Variant option ->
$variant
"
echo
""
variant_usage
exit
1
esac
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
then
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#ci-#
$VM_TEMPLATE
#"
`
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
VM_CMDS
=
${
VM_NAME
}
_cmds.txt
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
}
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_MEMORY =
$VM_MEMORY
MBytes"
echo
"VM_CPU =
$VM_CPU
"
echo
"############################################################"
echo
"Creating VM (
$VM_NAME
) on Ubuntu Cloud Image base"
echo
"############################################################"
uvt-kvm create
$VM_NAME
release
=
xenial
--memory
$VM_MEMORY
--cpu
$VM_CPU
--unsafe-caching
--template
ci-scripts/template-host.xml
echo
"Waiting for VM to be started"
uvt-kvm
wait
$VM_NAME
--insecure
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
exit
0
ci-scripts/destroyAllRunningVM.sh
View file @
4bb2b8a2
...
@@ -20,15 +20,17 @@
...
@@ -20,15 +20,17 @@
# * contact@openairinterface.org
# * contact@openairinterface.org
# */
# */
function
usage
{
function
destroy_
usage
{
echo
"OAI
VM Destroy
script"
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
echo
""
echo
""
echo
"Usage:"
echo
"Usage:"
echo
"------"
echo
"------"
echo
"
destroyAllRunningVM.sh
[OPTIONS]"
echo
"
oai-ci-vm-tool destroy
[OPTIONS]"
echo
""
echo
""
echo
"Options:"
echo
"
Mandatory
Options:"
echo
"--------"
echo
"--------"
echo
" --job-name #### OR -jn ####"
echo
" --job-name #### OR -jn ####"
echo
" Specify the name of the Jenkins job."
echo
" Specify the name of the Jenkins job."
...
@@ -36,66 +38,26 @@ function usage {
...
@@ -36,66 +38,26 @@ function usage {
echo
" --build-id #### OR -id ####"
echo
" --build-id #### OR -id ####"
echo
" Specify the build ID of the Jenkins job."
echo
" Specify the build ID of the Jenkins job."
echo
""
echo
""
echo
"Options:"
echo
"--------"
echo
" --help OR -h"
echo
" --help OR -h"
echo
" Print this help message."
echo
" Print this help message."
echo
""
echo
""
}
}
if
[
$#
-gt
4
]
function
destroy_vm
{
then
echo
"############################################################"
echo
"Syntax Error: not the correct number of arguments"
echo
"OAI CI VM script"
echo
""
echo
"############################################################"
usage
echo
"VM_TEMPLATE =
$VM_TEMPLATE
"
exit
1
fi
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
BUILD_ID
=
XX
while
[[
$#
-gt
0
]]
LIST_CI_VM
=
`
uvt-kvm list |
grep
$VM_TEMPLATE
`
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
for
CI_VM
in
$LIST_CI_VM
then
do
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
LIST_CI_VM
=
`
uvt-kvm list |
grep
$VM_TEMPLATE
`
for
CI_VM
in
$LIST_CI_VM
do
VM_IP_ADDR
=
`
uvt-kvm ip
$CI_VM
`
VM_IP_ADDR
=
`
uvt-kvm ip
$CI_VM
`
echo
"VM to destroy:
$CI_VM
-- IP
$VM_IP_ADDR
"
echo
"VM to destroy:
$CI_VM
-- IP
$VM_IP_ADDR
"
uvt-kvm destroy
$CI_VM
uvt-kvm destroy
$CI_VM
ssh-keygen
-R
$VM_IP_ADDR
ssh-keygen
-R
$VM_IP_ADDR
done
done
}
exit
0
ci-scripts/oai-ci-vm-tool
0 → 100755
View file @
4bb2b8a2
#!/bin/bash
#/*
# * 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
# */
function
top_usage
{
echo
"OAI CI VM script"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
echo
" -- xenial image already synced"
echo
""
echo
"Usage:"
echo
"------"
echo
" oai-ci-vm-tool (-h|--help) {create,destroy,build,wait,test,report-build,report-test} ..."
echo
""
}
function
variant_usage
{
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
}
MY_DIR
=
$(
dirname
$(
readlink
-f
$0
))
.
$MY_DIR
/createVM.sh
.
$MY_DIR
/buildOnVM.sh
.
$MY_DIR
/waitBuildOnVM.sh
.
$MY_DIR
/destroyAllRunningVM.sh
.
$MY_DIR
/runTestOnVM.sh
.
$MY_DIR
/reportBuildLocally.sh
.
$MY_DIR
/reportTestLocally.sh
if
[
$#
-lt
1
]
then
echo
"Syntax Error: too few arguments"
echo
""
top_usage
exit
1
fi
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
BUILD_ID
=
XX
VM_NAME
=
ci-enb-usrp
VM_MEMORY
=
2048
VM_CPU
=
4
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP"
KEEP_VM_ALIVE
=
0
RUN_OPTIONS
=
"none"
DAEMON
=
0
MR_TRIG
=
0
PU_TRIG
=
0
HELP_CMD
=
0
CREATE_CMD
=
0
BUILD_CMD
=
0
WAIT_CMD
=
0
DESTROY_CMD
=
0
TEST_CMD
=
0
REPORT_BUILD_CMD
=
0
REPORT_TEST_CMD
=
0
NBARGS
=
0
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
HELP_CMD
=
1
shift
;;
create
)
CREATE_CMD
=
1
# It is implied to keep the VM when creating it
KEEP_VM_ALIVE
=
1
shift
;;
build
)
BUILD_CMD
=
1
shift
;;
wait
)
WAIT_CMD
=
1
shift
;;
test
)
TEST_CMD
=
1
shift
;;
destroy
)
DESTROY_CMD
=
1
shift
;;
report-build
)
REPORT_BUILD_CMD
=
1
shift
;;
report-test
)
REPORT_TEST_CMD
=
1
shift
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
NBARGS
=
$[$NBARGS
+1]
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
NBARGS
=
$[$NBARGS
+2]
shift
shift
;;
-ws
|
--workspace
)
JENKINS_WKSP
=
"
$2
"
NBARGS
=
$[$NBARGS
+4]
shift
shift
;;
-k
|
--keep-vm-alive
)
KEEP_VM_ALIVE
=
1
NBARGS
=
$[$NBARGS
+8]
shift
;;
-D
|
--daemon
)
DAEMON
=
1
NBARGS
=
$[$NBARGS
+16]
shift
;;
-gu
|
--git-url
)
GIT_URL
=
"
$2
"
NBARGS
=
$[$NBARGS
+32]
shift
shift
;;
--trigger
)
TRIG
=
"
$2
"
case
$TRIG
in
merge-request
)
MR_TRIG
=
1
;;
push
)
PU_TRIG
=
1
;;
*
)
echo
""
echo
"Syntax Error: Invalid Trigger option ->
$TRIG
"
echo
""
trigger_usage
exit
;;
esac
NBARGS
=
$[$NBARGS
+64]
shift
shift
;;
-mr
)
MR_TRIG
=
1
NBARGS
=
$[$NBARGS
+64]
shift
;;
-pu
)
PU_TRIG
=
1
NBARGS
=
$[$NBARGS
+64]
shift
;;
-sb
|
--src-branch
)
SOURCE_BRANCH
=
"
$2
"
NBARGS
=
$[$NBARGS
+1024]
shift
shift
;;
-sc
|
--src-commit
)
SOURCE_COMMIT_ID
=
"
$2
"
NBARGS
=
$[$NBARGS
+2048]
shift
shift
;;
-tb
|
--target-branch
)
TARGET_BRANCH
=
"
$2
"
NBARGS
=
$[$NBARGS
+4096]
shift
shift
;;
-tc
|
--target-commit
)
TARGET_COMMIT_ID
=
"
$2
"
NBARGS
=
$[$NBARGS
+8192]
shift
shift
;;
-br
|
--branch
)
SOURCE_BRANCH
=
"
$2
"
NBARGS
=
$[$NBARGS
+16384]
shift
shift
;;
-co
|
--commit
)
SOURCE_COMMIT_ID
=
"
$2
"
NBARGS
=
$[$NBARGS
+32768]
shift
shift
;;
-v1
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v2
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
RUN_OPTIONS
=
"complex"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v3
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
RUN_OPTIONS
=
"./run_exec_autotests.bash -g
\"
01510*
\"
-q -np -b"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v4
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v5
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v6
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v7
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v8
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
NBARGS
=
$[$NBARGS
+256]
shift
;;
--variant
)
variant
=
"
$2
"
case
$variant
in
enb-usrp
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
NBARGS
=
$[$NBARGS
+256]
;;
basic-sim
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
RUN_OPTIONS
=
"complex"
NBARGS
=
$[$NBARGS
+256]
;;
phy-sim
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
RUN_OPTIONS
=
"./run_exec_autotests.bash -g
\"
01510*
\"
-q -np -b"
NBARGS
=
$[$NBARGS
+256]
;;
cppcheck
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
NBARGS
=
$[$NBARGS
+256]
;;
gnb-usrp
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
NBARGS
=
$[$NBARGS
+256]
;;
nu-ue-usrp
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
NBARGS
=
$[$NBARGS
+256]
;;
enb-ethernet
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
NBARGS
=
$[$NBARGS
+256]
;;
ue-ethernet
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
NBARGS
=
$[$NBARGS
+256]
;;
*
)
echo
""
echo
"Syntax Error: Invalid Variant option ->
$variant
"
echo
""
variant_usage
exit
1
esac
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
top_usage
exit
1
esac
done
MANY_CMDS
=
$[$CREATE_CMD
+
$BUILD_CMD
+
$WAIT_CMD
+
$DESTROY_CMD
+
$TEST_CMD
+
$REPORT_BUILD_CMD
+
$REPORT_TEST_CMD
]
if
[
$MANY_CMDS
-gt
1
]
then
echo
"Syntax Error: too many commands"
top_usage
exit
1
fi
if
[
$HELP_CMD
-eq
1
]
then
if
[
$MANY_CMDS
-eq
0
]
then
top_usage
exit
0
fi
if
[
$CREATE_CMD
-eq
1
]
then
create_usage
exit
0
fi
if
[
$BUILD_CMD
-eq
1
]
then
build_usage
exit
0
fi
if
[
$WAIT_CMD
-eq
1
]
then
wait_usage
exit
0
fi
if
[
$TEST_CMD
-eq
1
]
then
run_test_usage
exit
0
fi
if
[
$DESTROY_CMD
-eq
1
]
then
destroy_usage
exit
0
fi
if
[
$REPORT_BUILD_CMD
-eq
1
]
then
report_build_usage
exit
0
fi
if
[
$REPORT_TEST_CMD
-eq
1
]
then
report_test_usage
exit
0
fi
else
if
[
$MANY_CMDS
-eq
0
]
then
echo
"Syntax Error: no command"
top_usage
exit
1
fi
# For create, mandatory options: jn, id. Optional: variant
if
[
$CREATE_CMD
-eq
1
]
&&
[
$NBARGS
-ne
3
]
&&
[
$NBARGS
-ne
259
]
then
echo
"Syntax Error: unsupported option(s) for create command"
create_usage
exit
1
fi
# For build, mandatory options: jn, id, ws. Optional: variant, k, D
if
[
$BUILD_CMD
-eq
1
]
&&
[
$NBARGS
-ne
7
]
&&
[
$NBARGS
-ne
263
]
&&
[
$NBARGS
-ne
15
]
&&
[
$NBARGS
-ne
271
]
&&
[
$NBARGS
-ne
23
]
&&
[
$NBARGS
-ne
279
]
&&
[
$NBARGS
-ne
31
]
&&
[
$NBARGS
-ne
287
]
then
echo
"Syntax Error: unsupported option(s) for build command"
build_usage
exit
1
fi
# For wait, mandatory options: jn, id, ws. Optional: variant, k
if
[
$WAIT_CMD
-eq
1
]
&&
[
$NBARGS
-ne
7
]
&&
[
$NBARGS
-ne
263
]
&&
[
$NBARGS
-ne
15
]
&&
[
$NBARGS
-ne
271
]
then
echo
"Syntax Error: unsupported option(s) for wait command"
wait_usage
exit
1
fi
# For test, mandatory options: jn, id, ws. Optional: variant, k
if
[
$TEST_CMD
-eq
1
]
&&
[
$NBARGS
-ne
7
]
&&
[
$NBARGS
-ne
263
]
&&
[
$NBARGS
-ne
15
]
&&
[
$NBARGS
-ne
271
]
then
echo
"Syntax Error: unsupported option(s) for test command"
run_test_usage
exit
1
fi
# For destroy, mandatory options: jn, id.
if
[
$DESTROY_CMD
-eq
1
]
&&
[
$NBARGS
-ne
3
]
then
echo
"Syntax Error: unsupported option(s) for destroy command"
destroy_usage
exit
1
fi
# For report-build, mandatory options: jn, id, ws, gu, pu, br,co.
# or: jn, id, ws, gu, mr, sb, sc, tb, tc.
if
[
$REPORT_BUILD_CMD
-eq
1
]
&&
[
$NBARGS
-ne
15463
]
&&
[
$NBARGS
-ne
49255
]
then
echo
"Syntax Error: unsupported option(s) for report-build command"
report_build_usage
exit
1
fi
# For report-test, mandatory options: jn, id, ws, gu, pu, br,co.
# or: jn, id, ws, gu, mr, sb, sc, tb, tc.
if
[
$REPORT_TEST_CMD
-eq
1
]
&&
[
$NBARGS
-ne
15463
]
&&
[
$NBARGS
-ne
49255
]
then
echo
"Syntax Error: unsupported option(s) for report-test command"
report_test_usage
exit
1
fi
fi
# Checking uvt-kvm is installed
UVT_KVM_PATH
=
`
which uvt-kvm |
grep
-c
uvt-kvm
`
if
[
$UVT_KVM_PATH
-eq
0
]
then
echo
"Error: uvt-kvm is not installed"
top_usage
exit
1
fi
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
then
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#ci-#
$VM_TEMPLATE
#"
`
VM_CMDS
=
${
VM_NAME
}
_cmds.txt
ARCHIVES_LOC
=
${
JENKINS_WKSP
}
/archives/
${
ARCHIVES_LOC
}
STATUS
=
0
if
[
$CREATE_CMD
-eq
1
]
then
create_vm
fi
if
[
$BUILD_CMD
-eq
1
]
then
build_on_vm
if
[
$DAEMON
-eq
0
]
&&
[
$STATUS
-eq
0
]
then
check_on_vm_build
fi
fi
if
[
$WAIT_CMD
-eq
1
]
then
wait_on_vm_build
if
[
$STATUS
-eq
0
]
then
check_on_vm_build
fi
fi
if
[
$TEST_CMD
-eq
1
]
then
ARCHIVES_LOC
=
${
ARCHIVES_LOC
}
/test
run_test_on_vm
fi
if
[
$DESTROY_CMD
-eq
1
]
then
destroy_vm
fi
if
[
$REPORT_BUILD_CMD
-eq
1
]
then
report_build
fi
if
[
$REPORT_TEST_CMD
-eq
1
]
then
report_test
fi
# Did command pass or fail?
if
[
$STATUS
-eq
0
]
then
echo
"STATUS seems OK"
else
echo
"STATUS failed?"
fi
exit
$STATUS
ci-scripts/reportBuildLocally.sh
View file @
4bb2b8a2
...
@@ -20,14 +20,13 @@
...
@@ -20,14 +20,13 @@
# * contact@openairinterface.org
# * contact@openairinterface.org
# */
# */
function
usage
{
function
report_build_
usage
{
echo
"OAI
Local Build Report
script"
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
""
echo
"Usage:"
echo
"Usage:"
echo
"------"
echo
"------"
echo
""
echo
" oai-ci-vm-tool report-build [OPTIONS]"
echo
" reportBuildLocally.sh [OPTIONS]"
echo
""
echo
""
echo
"Options:"
echo
"Options:"
echo
"--------"
echo
"--------"
...
@@ -47,6 +46,9 @@ function usage {
...
@@ -47,6 +46,9 @@ function usage {
echo
" --build-id #### OR -id ####"
echo
" --build-id #### OR -id ####"
echo
" Specify the build ID of the Jenkins job."
echo
" Specify the build ID of the Jenkins job."
echo
""
echo
""
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
""
echo
" --trigger merge-request OR -mr"
echo
" --trigger merge-request OR -mr"
echo
" --trigger push OR -pu"
echo
" --trigger push OR -pu"
echo
" Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
echo
" Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
...
@@ -79,7 +81,7 @@ function usage {
...
@@ -79,7 +81,7 @@ function usage {
}
}
function
trigger_usage
{
function
trigger_usage
{
echo
"OAI
Local Build Report
script"
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
""
echo
" --trigger merge-request OR -mr"
echo
" --trigger merge-request OR -mr"
...
@@ -153,8 +155,8 @@ function summary_table_row {
...
@@ -153,8 +155,8 @@ function summary_table_row {
echo
" <td bgcolor =
\"
lightcyan
\"
>
$1
</th>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>
$1
</th>"
>>
./build_results.html
if
[
-f
$2
]
if
[
-f
$2
]
then
then
STATUS
=
`
egrep
-c
"
$3
"
$2
`
BUILD_
STATUS
=
`
egrep
-c
"
$3
"
$2
`
if
[
$STATUS
-eq
1
]
if
[
$
BUILD_
STATUS
-eq
1
]
then
then
echo
" <td bgcolor =
\"
green
\"
>OK</th>"
>>
./build_results.html
echo
" <td bgcolor =
\"
green
\"
>OK</th>"
>>
./build_results.html
else
else
...
@@ -263,195 +265,51 @@ function sca_summary_table_footer {
...
@@ -263,195 +265,51 @@ function sca_summary_table_footer {
echo
" <p style=
\"
margin-left: 30px
\"
>Graphical Interface tool : <strong><code>cppcheck-gui -l cppcheck/cppcheck.xml</code></strong></p>"
>>
./build_results.html
echo
" <p style=
\"
margin-left: 30px
\"
>Graphical Interface tool : <strong><code>cppcheck-gui -l cppcheck/cppcheck.xml</code></strong></p>"
>>
./build_results.html
}
}
jb_checker
=
0
function
report_build
{
mr_checker
=
0
echo
"############################################################"
pu_checker
=
0
echo
"OAI CI VM script"
MR_TRIG
=
0
echo
"############################################################"
PU_TRIG
=
0
while
[[
$#
-gt
0
]]
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
do
key
=
"
$1
"
cd
${
JENKINS_WKSP
}
echo
"<!DOCTYPE html>"
>
./build_results.html
case
$key
in
echo
"<html class=
\"
no-js
\"
lang=
\"
en-US
\"
>"
>>
./build_results.html
-h
|
--help
)
echo
"<head>"
>>
./build_results.html
shift
echo
" <title>Build Results for
$JOB_NAME
job build #
$BUILD_ID
</title>"
>>
./build_results.html
usage
echo
" <base href =
\"
http://www.openairinterface.org/
\"
/>"
>>
./build_results.html
exit
0
echo
"</head>"
>>
./build_results.html
;;
echo
"<body>"
>>
./build_results.html
-gu
|
--git-url
)
echo
" <table style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
GIT_URL
=
"
$2
"
echo
" <tr style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
let
"jb_checker|=0x1"
echo
" <td style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
shift
echo
" <a href=
\"
http://www.openairinterface.org/
\"
>"
>>
./build_results.html
shift
echo
" <img src=
\"
/wp-content/uploads/2016/03/cropped-oai_final_logo2.png
\"
alt=
\"\"
border=
\"
none
\"
height=50 width=150>"
>>
./build_results.html
;;
echo
" </img>"
>>
./build_results.html
-jn
|
--job-name
)
echo
" </a>"
>>
./build_results.html
JOB_NAME
=
"
$2
"
echo
" </td>"
>>
./build_results.html
let
"jb_checker|=0x2"
echo
" <td style=
\"
border-collapse: collapse; border: none; vertical-align: center;
\"
>"
>>
./build_results.html
shift
echo
" <b><font size =
\"
6
\"
>Job Summary -- Job:
$JOB_NAME
-- Build-ID:
$BUILD_ID
</font></b>"
>>
./build_results.html
shift
echo
" </td>"
>>
./build_results.html
;;
echo
" </tr>"
>>
./build_results.html
-id
|
--build-id
)
echo
" </table>"
>>
./build_results.html
BUILD_ID
=
"
$2
"
echo
" <br>"
>>
./build_results.html
let
"jb_checker|=0x4"
echo
" <table border =
\"
1
\"
>"
>>
./build_results.html
shift
echo
" <tr>"
>>
./build_results.html
shift
echo
" <td bgcolor =
\"
lightcyan
\"
>Build Start Time (UTC)</td>"
>>
./build_results.html
;;
echo
" <td>TEMPLATE_BUILD_TIME</td>"
>>
./build_results.html
--trigger
)
echo
" </tr>"
>>
./build_results.html
TRIG
=
"
$2
"
echo
" <tr>"
>>
./build_results.html
case
$TRIG
in
echo
" <td bgcolor =
\"
lightcyan
\"
>GIT Repository</td>"
>>
./build_results.html
merge-request
)
echo
" <td>
$GIT_URL
</td>"
>>
./build_results.html
MR_TRIG
=
1
echo
" </tr>"
>>
./build_results.html
;;
echo
" <tr>"
>>
./build_results.html
push
)
echo
" <td bgcolor =
\"
lightcyan
\"
>Job Trigger</td>"
>>
./build_results.html
PU_TRIG
=
1
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td>Push Event</td>"
>>
./build_results.html
;
fi
;;
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td>Merge-Request</td>"
>>
./build_results.html
;
fi
*
)
echo
" </tr>"
>>
./build_results.html
echo
""
if
[
$PU_TRIG
-eq
1
]
echo
"Syntax Error: Invalid Trigger option ->
$TRIG
"
echo
""
trigger_usage
exit
;;
esac
let
"jb_checker|=0x8"
shift
shift
;;
-mr
)
MR_TRIG
=
1
let
"jb_checker|=0x8"
shift
;;
-pu
)
PU_TRIG
=
1
let
"jb_checker|=0x8"
shift
;;
-sb
|
--src-branch
)
SOURCE_BRANCH
=
"
$2
"
let
"mr_checker|=0x1"
shift
shift
;;
-sc
|
--src-commit
)
SOURCE_COMMIT_ID
=
"
$2
"
let
"mr_checker|=0x2"
shift
shift
;;
-tb
|
--target-branch
)
TARGET_BRANCH
=
"
$2
"
let
"mr_checker|=0x4"
shift
shift
;;
-tc
|
--target-commit
)
TARGET_COMMIT_ID
=
"
$2
"
let
"mr_checker|=0x8"
shift
shift
;;
-br
|
--branch
)
SOURCE_BRANCH
=
"
$2
"
let
"pu_checker|=0x1"
shift
shift
;;
-co
|
--commit
)
SOURCE_COMMIT_ID
=
"
$2
"
let
"pu_checker|=0x2"
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
;;
esac
done
if
[
$jb_checker
-ne
15
]
then
echo
""
echo
"Syntax Error: missing job information."
# TODO : list missing info
echo
""
exit
1
fi
if
[
$PU_TRIG
-eq
1
]
&&
[
$MR_TRIG
-eq
1
]
then
echo
""
echo
"Syntax Error: trigger action incoherent."
echo
""
trigger_usage
exit
1
fi
if
[
$PU_TRIG
-eq
1
]
then
if
[
$pu_checker
-ne
3
]
then
echo
""
echo
"Syntax Error: missing push information."
# TODO : list missing info
echo
""
exit
1
fi
fi
if
[
$MR_TRIG
-eq
1
]
then
if
[
$mr_checker
-ne
15
]
then
then
echo
""
echo
"Syntax Error: missing merge-request information."
# TODO : list missing info
echo
""
exit
1
fi
fi
echo
"<!DOCTYPE html>"
>
./build_results.html
echo
"<html class=
\"
no-js
\"
lang=
\"
en-US
\"
>"
>>
./build_results.html
echo
"<head>"
>>
./build_results.html
echo
" <title>Build Results for
$JOB_NAME
job build #
$BUILD_ID
</title>"
>>
./build_results.html
echo
" <base href =
\"
http://www.openairinterface.org/
\"
/>"
>>
./build_results.html
echo
"</head>"
>>
./build_results.html
echo
"<body>"
>>
./build_results.html
echo
" <table style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
echo
" <tr style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
echo
" <a href=
\"
http://www.openairinterface.org/
\"
>"
>>
./build_results.html
echo
" <img src=
\"
/wp-content/uploads/2016/03/cropped-oai_final_logo2.png
\"
alt=
\"\"
border=
\"
none
\"
height=50 width=150>"
>>
./build_results.html
echo
" </img>"
>>
./build_results.html
echo
" </a>"
>>
./build_results.html
echo
" </td>"
>>
./build_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none; vertical-align: center;
\"
>"
>>
./build_results.html
echo
" <b><font size =
\"
6
\"
>Job Summary -- Job:
$JOB_NAME
-- Build-ID:
$BUILD_ID
</font></b>"
>>
./build_results.html
echo
" </td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" </table>"
>>
./build_results.html
echo
" <br>"
>>
./build_results.html
echo
" <table border =
\"
1
\"
>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Build Start Time (UTC)</td>"
>>
./build_results.html
echo
" <td>TEMPLATE_BUILD_TIME</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>GIT Repository</td>"
>>
./build_results.html
echo
" <td>
$GIT_URL
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Job Trigger</td>"
>>
./build_results.html
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td>Push Event</td>"
>>
./build_results.html
;
fi
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td>Merge-Request</td>"
>>
./build_results.html
;
fi
echo
" </tr>"
>>
./build_results.html
if
[
$PU_TRIG
-eq
1
]
then
echo
" <tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Branch</td>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Branch</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./build_results.html
...
@@ -460,9 +318,9 @@ then
...
@@ -460,9 +318,9 @@ then
echo
" <td bgcolor =
\"
lightcyan
\"
>Commit ID</td>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Commit ID</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
fi
fi
if
[
$MR_TRIG
-eq
1
]
if
[
$MR_TRIG
-eq
1
]
then
then
echo
" <tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Source Branch</td>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Source Branch</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./build_results.html
...
@@ -479,12 +337,12 @@ then
...
@@ -479,12 +337,12 @@ then
echo
" <td bgcolor =
\"
lightcyan
\"
>Target Commit ID</td>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Target Commit ID</td>"
>>
./build_results.html
echo
" <td>
$TARGET_COMMIT_ID
</td>"
>>
./build_results.html
echo
" <td>
$TARGET_COMMIT_ID
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
fi
fi
echo
" </table>"
>>
./build_results.html
echo
" </table>"
>>
./build_results.html
echo
" <h2>Build Summary</h2>"
>>
./build_results.html
echo
" <h2>Build Summary</h2>"
>>
./build_results.html
if
[
-f
./oai_rules_result.txt
]
if
[
-f
./oai_rules_result.txt
]
then
then
echo
" <h3>OAI Coding / Formatting Guidelines Check</h3>"
>>
./build_results.html
echo
" <h3>OAI Coding / Formatting Guidelines Check</h3>"
>>
./build_results.html
echo
" <table border = "
1
">"
>>
./build_results.html
echo
" <table border = "
1
">"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
...
@@ -508,139 +366,144 @@ then
...
@@ -508,139 +366,144 @@ then
echo
" <p>Please apply the following command to this(ese) file(s): </p>"
>>
./build_results.html
echo
" <p>Please apply the following command to this(ese) file(s): </p>"
>>
./build_results.html
echo
" <p style=
\"
margin-left: 30px
\"
><strong><code>astyle --options=ci-scripts/astyle-options.txt filename(s)</code></strong></p>"
>>
./build_results.html
echo
" <p style=
\"
margin-left: 30px
\"
><strong><code>astyle --options=ci-scripts/astyle-options.txt filename(s)</code></strong></p>"
>>
./build_results.html
fi
fi
fi
fi
echo
" <h2>Ubuntu 16.04 LTS -- Summary</h2>"
>>
./build_results.html
echo
" <h2>Ubuntu 16.04 LTS -- Summary</h2>"
>>
./build_results.html
sca_summary_table_header
"OAI Static Code Analysis with CPPCHECK"
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 variable"
uninitvar
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Uninitialized struct member"
uninitStructMember
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Uninitialized struct member"
uninitStructMember
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Memory leak"
memleak
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Memory leak"
memleak
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Memory is freed twice"
doubleFree
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Memory is freed twice"
doubleFree
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Resource leak"
resourceLeak
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Resource leak"
resourceLeak
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Possible null pointer dereference"
nullPointer
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Possible null pointer dereference"
nullPointer
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Array access out of bounds"
arrayIndexOutOfBounds
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Array access out of bounds"
arrayIndexOutOfBounds
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Buffer is accessed out of bounds"
bufferAccessOutOfBounds
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Buffer is accessed out of bounds"
bufferAccessOutOfBounds
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Expression depends on order of evaluation of side effects"
unknownEvaluationOrder
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Expression depends on order of evaluation of side effects"
unknownEvaluationOrder
sca_summary_table_footer ./archives/cppcheck/cppcheck.xml
sca_summary_table_footer ./archives/cppcheck/cppcheck.xml
summary_table_header
"OAI Build eNB -- USRP option"
summary_table_header
"OAI Build eNB -- USRP option"
summary_table_row
"LTE SoftModem - Release 15"
./archives/enb_usrp/lte-softmodem.Rel15.txt
"Built target lte-softmodem"
./enb_usrp_row1.html
summary_table_row
"LTE SoftModem - Release 15"
./archives/enb_usrp/lte-softmodem.Rel15.txt
"Built target lte-softmodem"
./enb_usrp_row1.html
summary_table_row
"Coding - Release 15"
./archives/enb_usrp/coding.Rel15.txt
"Built target coding"
./enb_usrp_row2.html
summary_table_row
"Coding - Release 15"
./archives/enb_usrp/coding.Rel15.txt
"Built target coding"
./enb_usrp_row2.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/enb_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./enb_usrp_row3.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/enb_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./enb_usrp_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/enb_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_usrp_row4.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/enb_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_usrp_row4.html
summary_table_footer
summary_table_footer
summary_table_header
"OAI Build basic simulator option"
summary_table_header
"OAI Build basic simulator option"
summary_table_row
"Basic Simulator eNb - Release 15"
./archives/basic_sim/basic_simulator_enb.txt
"Built target lte-softmodem"
./basic_sim_row1.html
summary_table_row
"Basic Simulator eNb - Release 15"
./archives/basic_sim/basic_simulator_enb.txt
"Built target lte-softmodem"
./basic_sim_row1.html
summary_table_row
"Basic Simulator UE - Release 15"
./archives/basic_sim/basic_simulator_ue.txt
"Built target lte-uesoftmodem"
./basic_sim_row2.html
summary_table_row
"Basic Simulator UE - Release 15"
./archives/basic_sim/basic_simulator_ue.txt
"Built target lte-uesoftmodem"
./basic_sim_row2.html
summary_table_row
"Conf 2 UE data - Release 15"
./archives/basic_sim/conf2uedata.Rel15.txt
"Built target conf2uedata"
./basic_sim_row3.html
summary_table_row
"Conf 2 UE data - Release 15"
./archives/basic_sim/conf2uedata.Rel15.txt
"Built target conf2uedata"
./basic_sim_row3.html
summary_table_footer
summary_table_footer
summary_table_header
"OAI Build Physical simulators option"
summary_table_header
"OAI Build Physical simulators option"
summary_table_row
"DL Simulator - Release 15"
./archives/phy_sim/dlsim.Rel15.txt
"Built target dlsim"
./phy_sim_row1.html
summary_table_row
"DL Simulator - Release 15"
./archives/phy_sim/dlsim.Rel15.txt
"Built target dlsim"
./phy_sim_row1.html
summary_table_row
"UL Simulator - Release 15"
./archives/phy_sim/ulsim.Rel15.txt
"Built target ulsim"
./phy_sim_row2.html
summary_table_row
"UL Simulator - Release 15"
./archives/phy_sim/ulsim.Rel15.txt
"Built target ulsim"
./phy_sim_row2.html
summary_table_row
"Coding - Release 15"
./archives/phy_sim/coding.Rel15.txt
"Built target coding"
./phy_sim_row3.html
summary_table_row
"Coding - Release 15"
./archives/phy_sim/coding.Rel15.txt
"Built target coding"
./phy_sim_row3.html
if
[
-f
./archives/phy_sim/ldpctest.Rel15.txt
]
if
[
-f
./archives/phy_sim/ldpctest.Rel15.txt
]
then
then
summary_table_row
"LDPC Test - Release 15"
./archives/phy_sim/ldpctest.Rel15.txt
"Built target ldpctest"
./phy_sim_row4.html
summary_table_row
"LDPC Test - Release 15"
./archives/phy_sim/ldpctest.Rel15.txt
"Built target ldpctest"
./phy_sim_row4.html
fi
fi
if
[
-f
./archives/phy_sim/polartest.Rel15.txt
]
if
[
-f
./archives/phy_sim/polartest.Rel15.txt
]
then
then
summary_table_row
"Polar Test - Release 15"
./archives/phy_sim/polartest.Rel15.txt
"Built target polartest"
./phy_sim_row5.html
summary_table_row
"Polar Test - Release 15"
./archives/phy_sim/polartest.Rel15.txt
"Built target polartest"
./phy_sim_row5.html
fi
fi
if
[
-f
./archives/phy_sim/nr_pbchsim.Rel15.txt
]
if
[
-f
./archives/phy_sim/nr_pbchsim.Rel15.txt
]
then
then
summary_table_row
"PBCH Test - Release 15"
./archives/phy_sim/nr_pbchsim.Rel15.txt
"Built target nr_pbchsim"
./phy_sim_row6.html
summary_table_row
"PBCH Test - Release 15"
./archives/phy_sim/nr_pbchsim.Rel15.txt
"Built target nr_pbchsim"
./phy_sim_row6.html
fi
fi
summary_table_footer
summary_table_footer
if
[
-f
archives/gnb_usrp/nr-softmodem.Rel15.txt
]
if
[
-f
archives/gnb_usrp/nr-softmodem.Rel15.txt
]
then
then
summary_table_header
"OAI Build gNB -- USRP option"
summary_table_header
"OAI Build gNB -- USRP option"
summary_table_row
"LTE SoftModem - Release 15"
./archives/gnb_usrp/nr-softmodem.Rel15.txt
"Built target nr-softmodem"
./gnb_usrp_row1.html
summary_table_row
"LTE SoftModem - Release 15"
./archives/gnb_usrp/nr-softmodem.Rel15.txt
"Built target nr-softmodem"
./gnb_usrp_row1.html
summary_table_row
"Coding - Release 15"
./archives/gnb_usrp/coding.Rel15.txt
"Built target coding"
./gnb_usrp_row2.html
summary_table_row
"Coding - Release 15"
./archives/gnb_usrp/coding.Rel15.txt
"Built target coding"
./gnb_usrp_row2.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/gnb_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./gnb_usrp_row3.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/gnb_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./gnb_usrp_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/gnb_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./gnb_usrp_row4.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/gnb_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./gnb_usrp_row4.html
summary_table_footer
summary_table_footer
fi
fi
if
[
-f
archives/nrue_usrp/nr-uesoftmodem.Rel15.txt
]
if
[
-f
archives/nrue_usrp/nr-uesoftmodem.Rel15.txt
]
then
then
summary_table_header
"OAI Build 5G NR UE -- USRP option"
summary_table_header
"OAI Build 5G NR UE -- USRP option"
summary_table_row
"UE SoftModem - Release 15"
./archives/nrue_usrp/nr-uesoftmodem.Rel15.txt
"Built target nr-uesoftmodem"
./nrue_usrp_row1.html
summary_table_row
"UE SoftModem - Release 15"
./archives/nrue_usrp/nr-uesoftmodem.Rel15.txt
"Built target nr-uesoftmodem"
./nrue_usrp_row1.html
summary_table_row
"Coding - Release 15"
./archives/nrue_usrp/coding.Rel15.txt
"Built target coding"
./nrue_usrp_row2.html
summary_table_row
"Coding - Release 15"
./archives/nrue_usrp/coding.Rel15.txt
"Built target coding"
./nrue_usrp_row2.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/nrue_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./nrue_usrp_row3.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/nrue_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./nrue_usrp_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/nrue_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./nrue_usrp_row4.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/nrue_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./nrue_usrp_row4.html
summary_table_footer
summary_table_footer
fi
fi
summary_table_header
"OAI Build eNB -- ETHERNET transport option"
summary_table_header
"OAI Build eNB -- ETHERNET transport option"
summary_table_row
"LTE SoftModem w/o S1 - Release 15"
./archives/enb_eth/lte-softmodem-nos1.Rel15.txt
"Built target lte-softmodem"
./enb_eth_row1.html
summary_table_row
"LTE SoftModem w/o S1 - Release 15"
./archives/enb_eth/lte-softmodem-nos1.Rel15.txt
"Built target lte-softmodem"
./enb_eth_row1.html
summary_table_row
"Coding - Release 15"
./archives/enb_eth/coding.Rel15.txt
"Built target coding"
./enb_eth_row2.html
summary_table_row
"Coding - Release 15"
./archives/enb_eth/coding.Rel15.txt
"Built target coding"
./enb_eth_row2.html
summary_table_row
"OAI ETHERNET transport - Release 15"
./archives/enb_eth/oai_eth_transpro.Rel15.txt
"Built target oai_eth_transpro"
./enb_eth_row3.html
summary_table_row
"OAI ETHERNET transport - Release 15"
./archives/enb_eth/oai_eth_transpro.Rel15.txt
"Built target oai_eth_transpro"
./enb_eth_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/enb_eth/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_eth_row4.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/enb_eth/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_eth_row4.html
summary_table_row
"RB Tools - Release 15"
./archives/enb_eth/rb_tool.Rel15.txt
"Built target rb_tool"
./enb_eth_row5.html
summary_table_row
"RB Tools - Release 15"
./archives/enb_eth/rb_tool.Rel15.txt
"Built target rb_tool"
./enb_eth_row5.html
summary_table_row
"NAS Mesh - Release 15"
./archives/enb_eth/nasmesh.Rel15.txt
"Built target nasmesh"
./enb_eth_row6.html
summary_table_row
"NAS Mesh - Release 15"
./archives/enb_eth/nasmesh.Rel15.txt
"Built target nasmesh"
./enb_eth_row6.html
summary_table_footer
summary_table_footer
summary_table_header
"OAI Build UE -- ETHERNET transport option"
summary_table_header
"OAI Build UE -- ETHERNET transport option"
summary_table_row
"LTE UE SoftModem w/o S1 - Release 15"
./archives/ue_eth/lte-uesoftmodem-nos1.Rel15.txt
"Built target lte-uesoftmodem"
./ue_eth_row1.html
summary_table_row
"LTE UE SoftModem w/o S1 - Release 15"
./archives/ue_eth/lte-uesoftmodem-nos1.Rel15.txt
"Built target lte-uesoftmodem"
./ue_eth_row1.html
summary_table_row
"Coding - Release 15"
./archives/ue_eth/coding.Rel15.txt
"Built target coding"
./ue_eth_row2.html
summary_table_row
"Coding - Release 15"
./archives/ue_eth/coding.Rel15.txt
"Built target coding"
./ue_eth_row2.html
summary_table_row
"OAI ETHERNET transport - Release 15"
./archives/ue_eth/oai_eth_transpro.Rel15.txt
"Built target oai_eth_transpro"
./ue_eth_row3.html
summary_table_row
"OAI ETHERNET transport - Release 15"
./archives/ue_eth/oai_eth_transpro.Rel15.txt
"Built target oai_eth_transpro"
./ue_eth_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/ue_eth/params_libconfig.Rel15.txt
"Built target params_libconfig"
./ue_eth_row4.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/ue_eth/params_libconfig.Rel15.txt
"Built target params_libconfig"
./ue_eth_row4.html
summary_table_row
"RB Tools - Release 15"
./archives/ue_eth/rb_tool.Rel15.txt
"Built target rb_tool"
./ue_eth_row5.html
summary_table_row
"RB Tools - Release 15"
./archives/ue_eth/rb_tool.Rel15.txt
"Built target rb_tool"
./ue_eth_row5.html
summary_table_row
"NAS Mesh - Release 15"
./archives/ue_eth/nasmesh.Rel15.txt
"Built target nasmesh"
./ue_eth_row6.html
summary_table_row
"NAS Mesh - Release 15"
./archives/ue_eth/nasmesh.Rel15.txt
"Built target nasmesh"
./ue_eth_row6.html
summary_table_footer
summary_table_footer
echo
" <h2>Red Hat (CentOS Linux release 7.4.1708) -- Summary</h2>"
>>
./build_results.html
if
[
-e
./archives/red_hat
]
then
summary_table_header
"Red Hat -- OAI Build eNB -- USRP option"
echo
" <h2>Red Hat (CentOS Linux release 7.4.1708) -- Summary</h2>"
>>
./build_results.html
summary_table_row
"LTE SoftModem - Release 15"
./archives/red_hat/lte-softmodem.Rel15.txt
"Built target lte-softmodem"
./enb_usrp_rh_row1.html
summary_table_row
"Coding - Release 15"
./archives/red_hat/coding.Rel15.txt
"Built target coding"
./enb_usrp_rh_row2.html
summary_table_header
"Red Hat -- OAI Build eNB -- USRP option"
summary_table_row
"OAI USRP device if - Release 15"
./archives/red_hat/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./enb_usrp_rh_row3.html
summary_table_row
"LTE SoftModem - Release 15"
./archives/red_hat/lte-softmodem.Rel15.txt
"Built target lte-softmodem"
./enb_usrp_rh_row1.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/red_hat/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_usrp_rh_row4.html
summary_table_row
"Coding - Release 15"
./archives/red_hat/coding.Rel15.txt
"Built target coding"
./enb_usrp_rh_row2.html
summary_table_footer
summary_table_row
"OAI USRP device if - Release 15"
./archives/red_hat/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./enb_usrp_rh_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/red_hat/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_usrp_rh_row4.html
echo
" <h3>Details</h3>"
>>
./build_results.html
summary_table_footer
fi
for
DETAILS_TABLE
in
`
ls
./enb_usrp_row
*
.html
`
do
echo
" <h3>Details</h3>"
>>
./build_results.html
for
DETAILS_TABLE
in
`
ls
./enb_usrp_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
cat
$DETAILS_TABLE
>>
./build_results.html
done
done
for
DETAILS_TABLE
in
`
ls
./basic_sim_row
*
.html
`
for
DETAILS_TABLE
in
`
ls
./basic_sim_row
*
.html
`
do
do
cat
$DETAILS_TABLE
>>
./build_results.html
cat
$DETAILS_TABLE
>>
./build_results.html
done
done
for
DETAILS_TABLE
in
`
ls
./phy_sim_row
*
.html
`
for
DETAILS_TABLE
in
`
ls
./phy_sim_row
*
.html
`
do
do
cat
$DETAILS_TABLE
>>
./build_results.html
cat
$DETAILS_TABLE
>>
./build_results.html
done
done
for
DETAILS_TABLE
in
`
ls
./gnb_usrp_row
*
.html
`
for
DETAILS_TABLE
in
`
ls
./gnb_usrp_row
*
.html
`
do
do
cat
$DETAILS_TABLE
>>
./build_results.html
cat
$DETAILS_TABLE
>>
./build_results.html
done
done
for
DETAILS_TABLE
in
`
ls
./nrue_usrp_row
*
.html
`
for
DETAILS_TABLE
in
`
ls
./nrue_usrp_row
*
.html
`
do
do
cat
$DETAILS_TABLE
>>
./build_results.html
cat
$DETAILS_TABLE
>>
./build_results.html
done
done
for
DETAILS_TABLE
in
`
ls
./enb_eth_row
*
.html
`
for
DETAILS_TABLE
in
`
ls
./enb_eth_row
*
.html
`
do
do
cat
$DETAILS_TABLE
>>
./build_results.html
cat
$DETAILS_TABLE
>>
./build_results.html
done
done
for
DETAILS_TABLE
in
`
ls
./ue_eth_row
*
.html
`
for
DETAILS_TABLE
in
`
ls
./ue_eth_row
*
.html
`
do
do
cat
$DETAILS_TABLE
>>
./build_results.html
cat
$DETAILS_TABLE
>>
./build_results.html
done
done
for
DETAILS_TABLE
in
`
ls
./enb_usrp_rh_row
*
.html
`
if
[
-e
./archives/red_hat
]
do
then
for
DETAILS_TABLE
in
`
ls
./enb_usrp_rh_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
cat
$DETAILS_TABLE
>>
./build_results.html
done
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
fi
rm
-f
./
*
_row
*
.html
echo
"</body>"
>>
./build_results.html
echo
"</html>"
>>
./build_results.html
exit
0
echo
"</body>"
>>
./build_results.html
echo
"</html>"
>>
./build_results.html
}
ci-scripts/reportTestLocally.sh
View file @
4bb2b8a2
...
@@ -20,14 +20,13 @@
...
@@ -20,14 +20,13 @@
# * contact@openairinterface.org
# * contact@openairinterface.org
# */
# */
function
usage
{
function
report_test_
usage
{
echo
"OAI
Test Report
script"
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
""
echo
"Usage:"
echo
"Usage:"
echo
"------"
echo
"------"
echo
""
echo
" oai-ci-vm-tool report-test [OPTIONS]"
echo
" reportTestLocally.sh [OPTIONS]"
echo
""
echo
""
echo
"Options:"
echo
"Options:"
echo
"--------"
echo
"--------"
...
@@ -47,6 +46,9 @@ function usage {
...
@@ -47,6 +46,9 @@ function usage {
echo
" --build-id #### OR -id ####"
echo
" --build-id #### OR -id ####"
echo
" Specify the build ID of the Jenkins job."
echo
" Specify the build ID of the Jenkins job."
echo
""
echo
""
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
""
echo
" --trigger merge-request OR -mr"
echo
" --trigger merge-request OR -mr"
echo
" --trigger push OR -pu"
echo
" --trigger push OR -pu"
echo
" Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
echo
" Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
...
@@ -78,205 +80,52 @@ function usage {
...
@@ -78,205 +80,52 @@ function usage {
echo
""
echo
""
}
}
function
trigger_usage
{
function
report_test
{
echo
"OAI Test Report script"
echo
"############################################################"
echo
" Original Author: Raphael Defosseux"
echo
"OAI CI VM script"
echo
""
echo
"############################################################"
echo
" --trigger merge-request OR -mr"
echo
" --trigger push OR -pu"
echo
" Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
echo
""
}
jb_checker
=
0
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
mr_checker
=
0
pu_checker
=
0
MR_TRIG
=
0
PU_TRIG
=
0
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
cd
${
JENKINS_WKSP
}
-h
|
--help
)
shift
usage
exit
0
;;
-gu
|
--git-url
)
GIT_URL
=
"
$2
"
let
"jb_checker|=0x1"
shift
shift
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
let
"jb_checker|=0x2"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
let
"jb_checker|=0x4"
shift
shift
;;
--trigger
)
TRIG
=
"
$2
"
case
$TRIG
in
merge-request
)
MR_TRIG
=
1
;;
push
)
PU_TRIG
=
1
;;
*
)
echo
""
echo
"Syntax Error: Invalid Trigger option ->
$TRIG
"
echo
""
trigger_usage
exit
;;
esac
let
"jb_checker|=0x8"
shift
shift
;;
-mr
)
MR_TRIG
=
1
let
"jb_checker|=0x8"
shift
;;
-pu
)
PU_TRIG
=
1
let
"jb_checker|=0x8"
shift
;;
-sb
|
--src-branch
)
SOURCE_BRANCH
=
"
$2
"
let
"mr_checker|=0x1"
shift
shift
;;
-sc
|
--src-commit
)
SOURCE_COMMIT_ID
=
"
$2
"
let
"mr_checker|=0x2"
shift
shift
;;
-tb
|
--target-branch
)
TARGET_BRANCH
=
"
$2
"
let
"mr_checker|=0x4"
shift
shift
;;
-tc
|
--target-commit
)
TARGET_COMMIT_ID
=
"
$2
"
let
"mr_checker|=0x8"
shift
shift
;;
-br
|
--branch
)
SOURCE_BRANCH
=
"
$2
"
let
"pu_checker|=0x1"
shift
shift
;;
-co
|
--commit
)
SOURCE_COMMIT_ID
=
"
$2
"
let
"pu_checker|=0x2"
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
;;
esac
done
echo
"<!DOCTYPE html>"
>
./test_simulator_results.html
echo
"<html class=
\"
no-js
\"
lang=
\"
en-US
\"
>"
>>
./test_simulator_results.html
if
[
$jb_checker
-ne
15
]
echo
"<head>"
>>
./test_simulator_results.html
then
echo
" <title>Simulator Results for
$JOB_NAME
job build #
$BUILD_ID
</title>"
>>
./test_simulator_results.html
echo
""
echo
" <base href =
\"
http://www.openairinterface.org/
\"
/>"
>>
./test_simulator_results.html
echo
"Syntax Error: missing job information."
echo
"</head>"
>>
./test_simulator_results.html
# TODO : list missing info
echo
"<body>"
>>
./test_simulator_results.html
echo
""
echo
" <table style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
exit
1
echo
" <tr style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
fi
echo
" <td style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
echo
" <a href=
\"
http://www.openairinterface.org/
\"
>"
>>
./test_simulator_results.html
if
[
$PU_TRIG
-eq
1
]
&&
[
$MR_TRIG
-eq
1
]
echo
" <img src=
\"
/wp-content/uploads/2016/03/cropped-oai_final_logo2.png
\"
alt=
\"\"
border=
\"
none
\"
height=50 width=150>"
>>
./test_simulator_results.html
then
echo
" </img>"
>>
./test_simulator_results.html
echo
""
echo
" </a>"
>>
./test_simulator_results.html
echo
"Syntax Error: trigger action incoherent."
echo
" </td>"
>>
./test_simulator_results.html
echo
""
echo
" <td style=
\"
border-collapse: collapse; border: none; vertical-align: center;
\"
>"
>>
./test_simulator_results.html
trigger_usage
echo
" <b><font size =
\"
6
\"
>Job Summary -- Job:
$JOB_NAME
-- Build-ID:
$BUILD_ID
</font></b>"
>>
./test_simulator_results.html
exit
1
echo
" </td>"
>>
./test_simulator_results.html
fi
echo
" </tr>"
>>
./test_simulator_results.html
echo
" </table>"
>>
./test_simulator_results.html
if
[
$PU_TRIG
-eq
1
]
echo
" <br>"
>>
./test_simulator_results.html
then
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
if
[
$pu_checker
-ne
3
]
echo
" <tr>"
>>
./test_simulator_results.html
then
echo
" <td bgcolor =
\"
lightcyan
\"
>Build Start Time (UTC)</td>"
>>
./test_simulator_results.html
echo
""
echo
" <td>TEMPLATE_BUILD_TIME</td>"
>>
./test_simulator_results.html
echo
"Syntax Error: missing push information."
echo
" </tr>"
>>
./test_simulator_results.html
# TODO : list missing info
echo
" <tr>"
>>
./test_simulator_results.html
echo
""
echo
" <td bgcolor =
\"
lightcyan
\"
>GIT Repository</td>"
>>
./test_simulator_results.html
exit
1
echo
" <td><a href=
\"
$GIT_URL
\"
>
$GIT_URL
</a></td>"
>>
./test_simulator_results.html
fi
echo
" </tr>"
>>
./test_simulator_results.html
fi
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Job Trigger</td>"
>>
./test_simulator_results.html
if
[
$MR_TRIG
-eq
1
]
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td>Push Event</td>"
>>
./test_simulator_results.html
;
fi
then
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td>Merge-Request</td>"
>>
./test_simulator_results.html
;
fi
if
[
$mr_checker
-ne
15
]
echo
" </tr>"
>>
./test_simulator_results.html
if
[
$PU_TRIG
-eq
1
]
then
then
echo
""
echo
"Syntax Error: missing merge-request information."
# TODO : list missing info
echo
""
exit
1
fi
fi
echo
"<!DOCTYPE html>"
>
./test_simulator_results.html
echo
"<html class=
\"
no-js
\"
lang=
\"
en-US
\"
>"
>>
./test_simulator_results.html
echo
"<head>"
>>
./test_simulator_results.html
echo
" <title>Simulator Results for
$JOB_NAME
job build #
$BUILD_ID
</title>"
>>
./test_simulator_results.html
echo
" <base href =
\"
http://www.openairinterface.org/
\"
/>"
>>
./test_simulator_results.html
echo
"</head>"
>>
./test_simulator_results.html
echo
"<body>"
>>
./test_simulator_results.html
echo
" <table style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
echo
" <tr style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
echo
" <a href=
\"
http://www.openairinterface.org/
\"
>"
>>
./test_simulator_results.html
echo
" <img src=
\"
/wp-content/uploads/2016/03/cropped-oai_final_logo2.png
\"
alt=
\"\"
border=
\"
none
\"
height=50 width=150>"
>>
./test_simulator_results.html
echo
" </img>"
>>
./test_simulator_results.html
echo
" </a>"
>>
./test_simulator_results.html
echo
" </td>"
>>
./test_simulator_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none; vertical-align: center;
\"
>"
>>
./test_simulator_results.html
echo
" <b><font size =
\"
6
\"
>Job Summary -- Job:
$JOB_NAME
-- Build-ID:
$BUILD_ID
</font></b>"
>>
./test_simulator_results.html
echo
" </td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" </table>"
>>
./test_simulator_results.html
echo
" <br>"
>>
./test_simulator_results.html
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Build Start Time (UTC)</td>"
>>
./test_simulator_results.html
echo
" <td>TEMPLATE_BUILD_TIME</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>GIT Repository</td>"
>>
./test_simulator_results.html
echo
" <td><a href=
\"
$GIT_URL
\"
>
$GIT_URL
</a></td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Job Trigger</td>"
>>
./test_simulator_results.html
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td>Push Event</td>"
>>
./test_simulator_results.html
;
fi
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td>Merge-Request</td>"
>>
./test_simulator_results.html
;
fi
echo
" </tr>"
>>
./test_simulator_results.html
if
[
$PU_TRIG
-eq
1
]
then
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Branch</td>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Branch</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./test_simulator_results.html
...
@@ -285,9 +134,9 @@ then
...
@@ -285,9 +134,9 @@ then
echo
" <td bgcolor =
\"
lightcyan
\"
>Commit ID</td>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Commit ID</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
fi
fi
if
[
$MR_TRIG
-eq
1
]
if
[
$MR_TRIG
-eq
1
]
then
then
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Source Branch</td>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Source Branch</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./test_simulator_results.html
...
@@ -304,13 +153,13 @@ then
...
@@ -304,13 +153,13 @@ then
echo
" <td bgcolor =
\"
lightcyan
\"
>Target Commit ID</td>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Target Commit ID</td>"
>>
./test_simulator_results.html
echo
" <td>
$TARGET_COMMIT_ID
</td>"
>>
./test_simulator_results.html
echo
" <td>
$TARGET_COMMIT_ID
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
fi
fi
echo
" </table>"
>>
./test_simulator_results.html
echo
" </table>"
>>
./test_simulator_results.html
echo
" <h2>Test Summary</h2>"
>>
./test_simulator_results.html
echo
" <h2>Test Summary</h2>"
>>
./test_simulator_results.html
ARCHIVES_LOC
=
archives/basic_sim/test
ARCHIVES_LOC
=
archives/basic_sim/test
if
[
-d
$ARCHIVES_LOC
]
if
[
-d
$ARCHIVES_LOC
]
then
then
echo
" <h3>Basic Simulator Check</h3>"
>>
./test_simulator_results.html
echo
" <h3>Basic Simulator Check</h3>"
>>
./test_simulator_results.html
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
...
@@ -511,11 +360,11 @@ then
...
@@ -511,11 +360,11 @@ then
done
done
echo
" </table>"
>>
./test_simulator_results.html
echo
" </table>"
>>
./test_simulator_results.html
fi
fi
ARCHIVES_LOC
=
archives/phy_sim/test
ARCHIVES_LOC
=
archives/phy_sim/test
if
[
-d
$ARCHIVES_LOC
]
if
[
-d
$ARCHIVES_LOC
]
then
then
echo
" <h3>Physical Simulators Check</h3>"
>>
./test_simulator_results.html
echo
" <h3>Physical Simulators Check</h3>"
>>
./test_simulator_results.html
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
...
@@ -561,30 +410,45 @@ then
...
@@ -561,30 +410,45 @@ then
echo
" <th>Result</th>"
>>
./test_simulator_results.html
echo
" <th>Result</th>"
>>
./test_simulator_results.html
echo
" <th>Time</th>"
>>
./test_simulator_results.html
echo
" <th>Time</th>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
PREV_SECTION
=
0
PREV_TIME_IN_SECS
=
0
TESTCASES_LIST
=
`
sed
-e
"s# #@#g"
$XML_FILE
|
grep
testcase
`
TESTCASES_LIST
=
`
sed
-e
"s# #@#g"
$XML_FILE
|
grep
testcase
`
for
TESTCASE
in
$TESTCASES_LIST
for
TESTCASE
in
$TESTCASES_LIST
do
do
echo
" <tr>"
>>
./test_simulator_results.html
NAME
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*name='##"
-e
"s#'@description=.*##"
|
sed
-e
"s#@# #g"
`
NAME
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*name='##"
-e
"s#'@description=.*##"
|
sed
-e
"s#@# #g"
`
echo
" <td>
$NAME
</td>"
>>
./test_simulator_results.html
SECTION
=
`
echo
$NAME
|
sed
-e
"s#
\.
.*##"
`
if
[
$SECTION
!=
$PREV_SECTION
]
then
echo
" <tr bgcolor =
\"
#8FBC8F
\"
>"
>>
./test_simulator_results.html
echo
" <td align =
\"
center
\"
colspan = 4 >
\"
$SECTION
\"
series</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
PREV_SECTION
=
$SECTION
PREV_TIME_IN_SECS
=
0
fi
DESC
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*description='##"
-e
"s#'@Run_result=.*##"
|
sed
-e
"s#@# #g"
`
DESC
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*description='##"
-e
"s#'@Run_result=.*##"
|
sed
-e
"s#@# #g"
`
echo
" <td>
$DESC
</td>"
>>
./test_simulator_results.html
RESULT
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*RESULT='##"
-e
"s#'.*##"
|
sed
-e
"s#@# #g"
`
RESULT
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*RESULT='##"
-e
"s#'.*##"
|
sed
-e
"s#@# #g"
`
TIME_IN_SECS
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*time='##"
-e
"s#'@RESULT=.*##"
|
sed
-e
"s#@# #g"
-e
"s# s.*##"
`
TIME
=
`
echo
"
$TIME_IN_SECS
-
$PREV_TIME_IN_SECS
"
| bc
-l
|
awk
'{printf "%.2f s", $0}'
`
PREV_TIME_IN_SECS
=
$TIME_IN_SECS
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td>
$NAME
</td>"
>>
./test_simulator_results.html
echo
" <td>
$DESC
</td>"
>>
./test_simulator_results.html
if
[[
$RESULT
=
~ .
*
PASS.
*
]]
if
[[
$RESULT
=
~ .
*
PASS.
*
]]
then
then
echo
" <td bgcolor =
\"
green
\"
>
$RESULT
</td>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
green
\"
>
$RESULT
</td>"
>>
./test_simulator_results.html
else
else
echo
" <td bgcolor =
\"
red
\"
>
$RESULT
</td>"
>>
./test_simulator_results.html
SPLITTED_LINE
=
`
echo
-e
$TESTCASE
|
sed
-e
"s#@#
\n
#g"
`
NB_RUNS
=
`
echo
-e
"
${
SPLITTED_LINE
}
"
|
grep
-v
Run_result | egrep
-c
"Run_"
`
NB_FAILS
=
`
echo
-e
"
${
SPLITTED_LINE
}
"
|
grep
-v
Run_result | egrep
-c
"=FAIL"
`
echo
" <td bgcolor =
\"
red
\"
>
${
RESULT
}
(
${
NB_FAILS
}
/
${
NB_RUNS
}
)</td>"
>>
./test_simulator_results.html
fi
fi
TIME
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*time='##"
-e
"s#'@RESULT=.*##"
|
sed
-e
"s#@# #g"
`
echo
" <td>
$TIME
</td>"
>>
./test_simulator_results.html
echo
" <td>
$TIME
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
done
done
echo
" </table>"
>>
./test_simulator_results.html
echo
" </table>"
>>
./test_simulator_results.html
done
done
fi
fi
echo
"</body>"
>>
./test_simulator_results.html
echo
"</html>"
>>
./test_simulator_results.html
exit
0
echo
"</body>"
>>
./test_simulator_results.html
echo
"</html>"
>>
./test_simulator_results.html
}
ci-scripts/runTestOnVM.sh
View file @
4bb2b8a2
...
@@ -20,15 +20,18 @@
...
@@ -20,15 +20,18 @@
# * contact@openairinterface.org
# * contact@openairinterface.org
# */
# */
function
usage
{
function
run_test_
usage
{
echo
"OAI
VM Test Run
script"
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
echo
" -- xenial image already synced"
echo
" Default:"
echo
" Default:"
echo
" -- eNB with USRP"
echo
" -- eNB with USRP"
echo
""
echo
""
echo
"Usage:"
echo
"Usage:"
echo
"------"
echo
"------"
echo
"
runTestOnVM.sh
[OPTIONS]"
echo
"
oai-ci-vm-tool test
[OPTIONS]"
echo
""
echo
""
echo
"Options:"
echo
"Options:"
echo
"--------"
echo
"--------"
...
@@ -41,12 +44,7 @@ function usage {
...
@@ -41,12 +44,7 @@ function usage {
echo
" --workspace #### OR -ws ####"
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
" Specify the workspace."
echo
""
echo
""
echo
" --variant enb-usrp OR -v1"
variant_usage
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
" Specify the variant to build."
echo
" Specify the variant to build."
echo
""
echo
""
echo
" --keep-vm-alive OR -k"
echo
" --keep-vm-alive OR -k"
...
@@ -57,19 +55,6 @@ function usage {
...
@@ -57,19 +55,6 @@ function usage {
echo
""
echo
""
}
}
function
variant_usage
{
echo
"OAI VM Test Run script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
""
}
function
start_basic_sim_enb
{
function
start_basic_sim_enb
{
local
LOC_VM_IP_ADDR
=
$2
local
LOC_VM_IP_ADDR
=
$2
local
LOC_EPC_IP_ADDR
=
$3
local
LOC_EPC_IP_ADDR
=
$3
...
@@ -95,6 +80,7 @@ function start_basic_sim_enb {
...
@@ -95,6 +80,7 @@ function start_basic_sim_enb {
echo
"echo
\"
ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-
$LOC_CONF_FILE
\"
> ./my-lte-softmodem-run.sh "
>>
$1
echo
"echo
\"
ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-
$LOC_CONF_FILE
\"
> ./my-lte-softmodem-run.sh "
>>
$1
echo
"chmod 775 ./my-lte-softmodem-run.sh"
>>
$1
echo
"chmod 775 ./my-lte-softmodem-run.sh"
>>
$1
echo
"cat ./my-lte-softmodem-run.sh"
>>
$1
echo
"cat ./my-lte-softmodem-run.sh"
>>
$1
echo
"if [ -e /home/ubuntu/tmp/cmake_targets/log/
$LOC_LOG_FILE
]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/
$LOC_LOG_FILE
; fi"
>>
$1
echo
"sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/basic_simulator/enb -o /home/ubuntu/tmp/cmake_targets/log/
$LOC_LOG_FILE
./my-lte-softmodem-run.sh"
>>
$1
echo
"sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/basic_simulator/enb -o /home/ubuntu/tmp/cmake_targets/log/
$LOC_LOG_FILE
./my-lte-softmodem-run.sh"
>>
$1
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_VM_IP_ADDR
<
$1
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_VM_IP_ADDR
<
$1
...
@@ -112,6 +98,7 @@ function start_basic_sim_ue {
...
@@ -112,6 +98,7 @@ function start_basic_sim_ue {
echo
"echo
\"
./lte-uesoftmodem -C
${
LOC_FREQUENCY
}
000000 -r
$LOC_NB_RBS
--ue-rxgain 140
\"
> ./my-lte-uesoftmodem-run.sh"
>>
$1
echo
"echo
\"
./lte-uesoftmodem -C
${
LOC_FREQUENCY
}
000000 -r
$LOC_NB_RBS
--ue-rxgain 140
\"
> ./my-lte-uesoftmodem-run.sh"
>>
$1
echo
"chmod 775 ./my-lte-uesoftmodem-run.sh"
>>
$1
echo
"chmod 775 ./my-lte-uesoftmodem-run.sh"
>>
$1
echo
"cat ./my-lte-uesoftmodem-run.sh"
>>
$1
echo
"cat ./my-lte-uesoftmodem-run.sh"
>>
$1
echo
"if [ -e /home/ubuntu/tmp/cmake_targets/log/
$LOC_UE_LOG_FILE
]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/
$LOC_UE_LOG_FILE
; fi"
>>
$1
echo
"sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/basic_simulator/ue -o /home/ubuntu/tmp/cmake_targets/log/
$LOC_UE_LOG_FILE
./my-lte-uesoftmodem-run.sh"
>>
$1
echo
"sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/basic_simulator/ue -o /home/ubuntu/tmp/cmake_targets/log/
$LOC_UE_LOG_FILE
./my-lte-uesoftmodem-run.sh"
>>
$1
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$2
<
$1
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$2
<
$1
...
@@ -299,155 +286,31 @@ function terminate_ltebox_epc {
...
@@ -299,155 +286,31 @@ function terminate_ltebox_epc {
rm
$1
rm
$1
}
}
if
[
$#
-lt
1
]
||
[
$#
-gt
9
]
function
run_test_on_vm
{
then
echo
"############################################################"
echo
"Syntax Error: not the correct number of arguments"
echo
"OAI CI VM script"
echo
""
echo
"############################################################"
usage
echo
"VM_NAME =
$VM_NAME
"
exit
1
echo
"VM_CMD_FILE =
$VM_CMDS
"
fi
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
echo
"############################################################"
BUILD_ID
=
XX
echo
"Waiting for VM to be started"
VM_NAME
=
ci-enb-usrp
echo
"############################################################"
ARCHIVES_LOC
=
enb_usrp/test
uvt-kvm
wait
$VM_NAME
--insecure
KEEP_VM_ALIVE
=
0
RUN_OPTIONS
=
"none"
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
STATUS
=
0
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
while
[[
$#
-gt
0
]]
if
[
"
$RUN_OPTIONS
"
==
"none"
]
do
then
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
-ws
|
--workspace
)
JENKINS_WKSP
=
"
$2
"
shift
shift
;;
-k
|
--keep-vm-alive
)
KEEP_VM_ALIVE
=
1
shift
;;
-v1
)
VM_NAME
=
ci-enb-usrp
shift
;;
-v2
)
VM_NAME
=
ci-basic-sim
RUN_OPTIONS
=
"complex"
ARCHIVES_LOC
=
basic_sim/test
shift
;;
-v3
)
VM_NAME
=
ci-phy-sim
RUN_OPTIONS
=
"./run_exec_autotests.bash -g
\"
01510*
\"
-q -np -b"
ARCHIVES_LOC
=
phy_sim/test
shift
;;
-v4
)
VM_NAME
=
ci-cppcheck
shift
;;
-v7
)
VM_NAME
=
ci-enb-ethernet
shift
;;
-v8
)
VM_NAME
=
ci-ue-ethernet
shift
;;
--variant
)
variant
=
"
$2
"
case
$variant
in
enb-usrp
)
VM_NAME
=
ci-enb-usrp
;;
basic-sim
)
VM_NAME
=
ci-basic-sim
RUN_OPTIONS
=
"complex"
ARCHIVES_LOC
=
basic_sim/test
;;
phy-sim
)
VM_NAME
=
ci-phy-sim
RUN_OPTIONS
=
"./run_exec_autotests.bash -g
\"
01510*
\"
-q -np -b"
ARCHIVES_LOC
=
phy_sim/test
;;
cppcheck
)
VM_NAME
=
ci-cppcheck
;;
enb-ethernet
)
VM_NAME
=
ci-enb-ethernet
;;
ue-ethernet
)
VM_NAME
=
ci-ue-ethernet
;;
*
)
echo
""
echo
"Syntax Error: Invalid Variant option ->
$variant
"
echo
""
variant_usage
exit
1
esac
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
then
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#ci-#
$VM_TEMPLATE
#"
`
VM_CMDS
=
${
VM_NAME
}
_cmds.txt
ARCHIVES_LOC
=
${
JENKINS_WKSP
}
/archives/
${
ARCHIVES_LOC
}
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_CMD_FILE =
$VM_CMDS
"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
echo
"############################################################"
echo
"Waiting for VM to be started"
echo
"############################################################"
uvt-kvm
wait
$VM_NAME
--insecure
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
if
[
"
$RUN_OPTIONS
"
==
"none"
]
then
echo
"No run on VM testing for this variant currently"
echo
"No run on VM testing for this variant currently"
exit
$STATUS
exit
$STATUS
fi
fi
if
[[
$RUN_OPTIONS
=
~ .
*
run_exec_autotests.
*
]]
if
[[
$RUN_OPTIONS
=
~ .
*
run_exec_autotests.
*
]]
then
then
echo
"############################################################"
echo
"############################################################"
echo
"Running test script on VM (
$VM_NAME
)"
echo
"Running test script on VM (
$VM_NAME
)"
echo
"############################################################"
echo
"############################################################"
...
@@ -542,10 +405,10 @@ then
...
@@ -542,10 +405,10 @@ then
if
[
$NB_RUNS
-eq
0
]
;
then
STATUS
=
-1
;
fi
if
[
$NB_RUNS
-eq
0
]
;
then
STATUS
=
-1
;
fi
if
[
$NB_FAILURES
-ne
0
]
;
then
STATUS
=
-1
;
fi
if
[
$NB_FAILURES
-ne
0
]
;
then
STATUS
=
-1
;
fi
fi
fi
if
[[
"
$RUN_OPTIONS
"
==
"complex"
]]
&&
[[
$VM_NAME
=
~ .
*
-basic-sim
.
*
]]
if
[[
"
$RUN_OPTIONS
"
==
"complex"
]]
&&
[[
$VM_NAME
=
~ .
*
-basic-sim
.
*
]]
then
then
PING_STATUS
=
0
PING_STATUS
=
0
IPERF_STATUS
=
0
IPERF_STATUS
=
0
if
[
-d
$ARCHIVES_LOC
]
if
[
-d
$ARCHIVES_LOC
]
...
@@ -1019,6 +882,17 @@ then
...
@@ -1019,6 +882,17 @@ then
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
fi
fi
if
[
$KEEP_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"Destroying VMs"
echo
"############################################################"
uvt-kvm destroy
$VM_NAME
ssh-keygen
-R
$VM_IP_ADDR
uvt-kvm destroy
$EPC_VM_NAME
ssh-keygen
-R
$EPC_VM_IP_ADDR
fi
echo
"############################################################"
echo
"############################################################"
echo
"Checking run status"
echo
"Checking run status"
echo
"############################################################"
echo
"############################################################"
...
@@ -1026,13 +900,5 @@ then
...
@@ -1026,13 +900,5 @@ then
if
[
$PING_STATUS
-ne
0
]
;
then
STATUS
=
-1
;
fi
if
[
$PING_STATUS
-ne
0
]
;
then
STATUS
=
-1
;
fi
if
[
$IPERF_STATUS
-ne
0
]
;
then
STATUS
=
-1
;
fi
if
[
$IPERF_STATUS
-ne
0
]
;
then
STATUS
=
-1
;
fi
fi
fi
}
if
[
$STATUS
-eq
0
]
then
echo
"STATUS seems OK"
else
echo
"STATUS failed?"
fi
exit
$STATUS
ci-scripts/waitBuildOnVM.sh
View file @
4bb2b8a2
...
@@ -20,8 +20,8 @@
...
@@ -20,8 +20,8 @@
# * contact@openairinterface.org
# * contact@openairinterface.org
# */
# */
function
usage
{
function
wait_
usage
{
echo
"OAI
VM Build Check
script"
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
echo
" -- uvtool uvtool-libvirt apt-cacher"
...
@@ -31,9 +31,9 @@ function usage {
...
@@ -31,9 +31,9 @@ function usage {
echo
""
echo
""
echo
"Usage:"
echo
"Usage:"
echo
"------"
echo
"------"
echo
"
waitBuildOnVM.sh
[OPTIONS]"
echo
"
oai-ci-vm-tool wait
[OPTIONS]"
echo
""
echo
""
echo
"Options:"
echo
"
Mandatory
Options:"
echo
"--------"
echo
"--------"
echo
" --job-name #### OR -jn ####"
echo
" --job-name #### OR -jn ####"
echo
" Specify the name of the Jenkins job."
echo
" Specify the name of the Jenkins job."
...
@@ -44,16 +44,11 @@ function usage {
...
@@ -44,16 +44,11 @@ function usage {
echo
" --workspace #### OR -ws ####"
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
" Specify the workspace."
echo
""
echo
""
echo
" --variant enb-usrp OR -v1"
variant_usage
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
" Specify the variant to build."
echo
" Specify the variant to build."
echo
""
echo
""
echo
"Options:"
echo
"--------"
echo
" --keep-vm-alive OR -k"
echo
" --keep-vm-alive OR -k"
echo
" Keep the VM alive after the build."
echo
" Keep the VM alive after the build."
echo
""
echo
""
...
@@ -62,316 +57,91 @@ function usage {
...
@@ -62,316 +57,91 @@ function usage {
echo
""
echo
""
}
}
function
variant_usage
{
function
wait_on_vm_build
{
echo
"OAI VM Build Check script"
echo
"############################################################"
echo
" Original Author: Raphael Defosseux"
echo
"OAI CI VM script"
echo
""
echo
"############################################################"
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
""
}
if
[
$#
-lt
1
]
||
[
$#
-gt
9
]
then
echo
"Syntax Error: not the correct number of arguments"
echo
""
usage
exit
1
fi
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
BUILD_ID
=
XX
VM_NAME
=
ci-enb-usrp
VM_MEMORY
=
2048
VM_CPU
=
4
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP"
KEEP_VM_ALIVE
=
0
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
-ws
|
--workspace
)
JENKINS_WKSP
=
"
$2
"
shift
shift
;;
-k
|
--keep-vm-alive
)
KEEP_VM_ALIVE
=
1
shift
;;
-v1
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
shift
;;
-v2
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
shift
;;
-v3
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
shift
;;
-v4
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
shift
;;
-v5
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
shift
;;
-v6
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
shift
;;
-v7
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
shift
;;
-v8
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
shift
;;
--variant
)
variant
=
"
$2
"
case
$variant
in
enb-usrp
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
;;
basic-sim
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
;;
phy-sim
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
;;
cppcheck
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
;;
gnb-usrp
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
;;
nu-ue-usrp
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
;;
enb-ethernet
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
;;
ue-ethernet
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
;;
*
)
echo
""
echo
"Syntax Error: Invalid Variant option ->
$variant
"
echo
""
variant_usage
exit
1
esac
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
!
-f
$JENKINS_WKSP
/localZip.zip
]
then
echo
"Missing localZip.zip file!"
exit
1
fi
if
[
!
-f
/etc/apt/apt.conf.d/01proxy
]
then
echo
"Missing /etc/apt/apt.conf.d/01proxy file!"
echo
"Is apt-cacher installed and configured?"
exit
1
fi
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
then
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#ci-#
$VM_TEMPLATE
#"
`
VM_CMDS
=
${
VM_NAME
}
_cmds.txt
ARCHIVES_LOC
=
${
JENKINS_WKSP
}
/archives/
${
ARCHIVES_LOC
}
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_CMD_FILE =
$VM_CMDS
"
echo
"VM_CMD_FILE =
$VM_CMDS
"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
echo
"BUILD_OPTIONS =
$BUILD_OPTIONS
"
echo
"BUILD_OPTIONS =
$BUILD_OPTIONS
"
IS_VM_ALIVE
=
`
uvt-kvm list |
grep
-c
$VM_NAME
`
IS_VM_ALIVE
=
`
uvt-kvm list |
grep
-c
$VM_NAME
`
if
[
$IS_VM_ALIVE
-eq
0
]
if
[
$IS_VM_ALIVE
-eq
0
]
then
then
echo
"############################################################"
echo
"############################################################"
echo
"You should have created the VM before doing anything"
echo
"You should have created the VM before doing anything"
echo
"############################################################"
echo
"############################################################"
exit
1
STATUS
=
1
fi
return
fi
echo
"Waiting for VM to be started"
echo
"Waiting for VM to be started"
uvt-kvm
wait
$VM_NAME
--insecure
uvt-kvm
wait
$VM_NAME
--insecure
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
echo
"############################################################"
echo
"############################################################"
echo
"Waiting build process to end on VM (
$VM_NAME
)"
echo
"Waiting build process to end on VM (
$VM_NAME
)"
echo
"############################################################"
echo
"############################################################"
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
then
echo
"echo
\"
ps -aux | grep cppcheck
\"
"
>>
$VM_CMDS
echo
"echo
\"
ps -aux | grep cppcheck
\"
"
>>
$VM_CMDS
echo
"while [
\$
(ps -aux | grep --color=never cppcheck | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done"
>>
$VM_CMDS
echo
"while [
\$
(ps -aux | grep --color=never cppcheck | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done"
>>
$VM_CMDS
else
else
echo
"echo
\"
ps -aux | grep build
\"
"
>>
$VM_CMDS
echo
"echo
\"
ps -aux | grep build
\"
"
>>
$VM_CMDS
echo
"while [
\$
(ps -aux | grep --color=never build_oai | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done"
>>
$VM_CMDS
echo
"while [
\$
(ps -aux | grep --color=never build_oai | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done"
>>
$VM_CMDS
fi
fi
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
<
$VM_CMDS
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
<
$VM_CMDS
rm
-f
$VM_CMDS
}
echo
"############################################################"
function
check_on_vm_build
{
echo
"Creating a tmp folder to store results and artifacts"
echo
"############################################################"
echo
"############################################################"
echo
"Creating a tmp folder to store results and artifacts"
if
[
!
-d
$JENKINS_WKSP
/archives
]
echo
"############################################################"
then
if
[
!
-d
$JENKINS_WKSP
/archives
]
then
mkdir
$JENKINS_WKSP
/archives
mkdir
$JENKINS_WKSP
/archives
fi
fi
if
[
!
-d
$ARCHIVES_LOC
]
if
[
!
-d
$ARCHIVES_LOC
]
then
then
mkdir
$ARCHIVES_LOC
mkdir
$ARCHIVES_LOC
fi
fi
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.txt
$ARCHIVES_LOC
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
then
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.xml
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.xml
$ARCHIVES_LOC
fi
fi
if
[
$KEEP_VM_ALIVE
-eq
0
]
if
[
$KEEP_VM_ALIVE
-eq
0
]
then
then
echo
"############################################################"
echo
"############################################################"
echo
"Destroying VM"
echo
"Destroying VM"
echo
"############################################################"
echo
"############################################################"
uvt-kvm destroy
$VM_NAME
uvt-kvm destroy
$VM_NAME
ssh-keygen
-R
$VM_IP_ADDR
ssh-keygen
-R
$VM_IP_ADDR
fi
fi
rm
-f
$VM_CMDS
rm
-f
$VM_CMDS
echo
"############################################################"
echo
"############################################################"
echo
"Checking build status"
echo
"Checking build status"
echo
"############################################################"
echo
"############################################################"
LOG_FILES
=
`
ls
$ARCHIVES_LOC
/
*
.txt
$ARCHIVES_LOC
/
*
.xml
`
LOG_FILES
=
`
ls
$ARCHIVES_LOC
/
*
.txt
$ARCHIVES_LOC
/
*
.xml
`
STATUS
=
0
STATUS
=
0
NB_FOUND_FILES
=
0
NB_FOUND_FILES
=
0
for
FULLFILE
in
$LOG_FILES
for
FULLFILE
in
$LOG_FILES
do
do
if
[[
$FULLFILE
==
*
"
$LOG_PATTERN
"
*
]]
if
[[
$FULLFILE
==
*
"
$LOG_PATTERN
"
*
]]
then
then
filename
=
$(
basename
--
"
$FULLFILE
"
)
filename
=
$(
basename
--
"
$FULLFILE
"
)
...
@@ -393,14 +163,8 @@ do
...
@@ -393,14 +163,8 @@ do
if
[
$LOCAL_STAT
-eq
0
]
;
then
STATUS
=
-1
;
fi
if
[
$LOCAL_STAT
-eq
0
]
;
then
STATUS
=
-1
;
fi
NB_FOUND_FILES
=
$((
NB_FOUND_FILES
+
1
))
NB_FOUND_FILES
=
$((
NB_FOUND_FILES
+
1
))
fi
fi
done
done
if
[
$NB_PATTERN_FILES
-ne
$NB_FOUND_FILES
]
;
then
STATUS
=
-1
;
fi
if
[
$NB_PATTERN_FILES
-ne
$NB_FOUND_FILES
]
;
then
STATUS
=
-1
;
fi
if
[
$STATUS
-eq
0
]
}
then
echo
"STATUS seems OK"
else
echo
"STATUS failed?"
fi
exit
$STATUS
cmake_targets/autotests/test_case_list.xml
View file @
4bb2b8a2
...
@@ -1055,7 +1055,7 @@
...
@@ -1055,7 +1055,7 @@
<main_exec_args>
-s-11 -S-10 -n1000
<main_exec_args>
-s-11 -S-10 -n1000
-s-11 -S-10 -n10 -I
</main_exec_args>
-s-11 -S-10 -n10 -I
</main_exec_args>
<tags>
nr_pbchsim.test1
</tags>
<tags>
nr_pbchsim.test1
</tags>
<search_expr_true>
n_errors \(negative CRC\) = 0
</search_expr_true>
<search_expr_true>
PBCH test OK
</search_expr_true>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
</search_expr_false>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
</search_expr_false>
<nruns>
3
</nruns>
<nruns>
3
</nruns>
</testCase>
</testCase>
...
...
openair1/PHY/INIT/nr_init.c
View file @
4bb2b8a2
...
@@ -406,7 +406,7 @@ void nr_phy_config_request_sim(PHY_VARS_gNB *gNB,int N_RB_DL,int N_RB_UL,int mu)
...
@@ -406,7 +406,7 @@ void nr_phy_config_request_sim(PHY_VARS_gNB *gNB,int N_RB_DL,int N_RB_UL,int mu)
gNB_config
->
rf_config
.
ul_carrier_bandwidth
.
value
=
N_RB_UL
;
gNB_config
->
rf_config
.
ul_carrier_bandwidth
.
value
=
N_RB_UL
;
gNB_config
->
sch_config
.
half_frame_index
.
value
=
0
;
gNB_config
->
sch_config
.
half_frame_index
.
value
=
0
;
gNB_config
->
sch_config
.
ssb_subcarrier_offset
.
value
=
0
;
gNB_config
->
sch_config
.
ssb_subcarrier_offset
.
value
=
0
;
gNB_config
->
sch_config
.
n_ssb_crb
.
value
=
(
N_RB_DL
-
20
)
>>
1
;
gNB_config
->
sch_config
.
n_ssb_crb
.
value
=
(
N_RB_DL
-
20
);
gNB_config
->
sch_config
.
ssb_subcarrier_offset
.
value
=
0
;
gNB_config
->
sch_config
.
ssb_subcarrier_offset
.
value
=
0
;
...
@@ -441,7 +441,7 @@ void nr_phy_config_request(NR_PHY_Config_t *phy_config)
...
@@ -441,7 +441,7 @@ void nr_phy_config_request(NR_PHY_Config_t *phy_config)
gNB_config
->
rf_config
.
ul_carrier_bandwidth
.
value
=
phy_config
->
cfg
->
rf_config
.
ul_carrier_bandwidth
.
value
;
//106;
gNB_config
->
rf_config
.
ul_carrier_bandwidth
.
value
=
phy_config
->
cfg
->
rf_config
.
ul_carrier_bandwidth
.
value
;
//106;
gNB_config
->
sch_config
.
half_frame_index
.
value
=
0
;
gNB_config
->
sch_config
.
half_frame_index
.
value
=
0
;
gNB_config
->
sch_config
.
ssb_subcarrier_offset
.
value
=
phy_config
->
cfg
->
sch_config
.
ssb_subcarrier_offset
.
value
;
//0;
gNB_config
->
sch_config
.
ssb_subcarrier_offset
.
value
=
phy_config
->
cfg
->
sch_config
.
ssb_subcarrier_offset
.
value
;
//0;
gNB_config
->
sch_config
.
n_ssb_crb
.
value
=
(
phy_config
->
cfg
->
rf_config
.
dl_carrier_bandwidth
.
value
-
20
)
>>
1
;
gNB_config
->
sch_config
.
n_ssb_crb
.
value
=
(
phy_config
->
cfg
->
rf_config
.
dl_carrier_bandwidth
.
value
-
20
);
gNB_config
->
sch_config
.
physical_cell_id
.
value
=
phy_config
->
cfg
->
sch_config
.
physical_cell_id
.
value
;
gNB_config
->
sch_config
.
physical_cell_id
.
value
=
phy_config
->
cfg
->
sch_config
.
physical_cell_id
.
value
;
if
(
phy_config
->
cfg
->
subframe_config
.
duplex_mode
.
value
==
0
)
{
if
(
phy_config
->
cfg
->
subframe_config
.
duplex_mode
.
value
==
0
)
{
...
...
openair1/PHY/INIT/nr_init_ue.c
View file @
4bb2b8a2
...
@@ -655,7 +655,7 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
...
@@ -655,7 +655,7 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
int
i
,
j
,
k
,
l
;
int
i
,
j
,
k
,
l
;
int
eNB_id
;
int
eNB_id
;
int
th_id
;
int
th_id
;
int
n_ssb_crb
=
(
fp
->
N_RB_DL
-
20
)
>>
1
;
int
n_ssb_crb
=
(
fp
->
N_RB_DL
-
20
);
abstraction_flag
=
0
;
abstraction_flag
=
0
;
fp
->
nb_antennas_tx
=
1
;
fp
->
nb_antennas_tx
=
1
;
fp
->
nb_antennas_rx
=
1
;
fp
->
nb_antennas_rx
=
1
;
...
...
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
4bb2b8a2
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
//#define NR_LTE_PDCCH_DCI_SWITCH
//#define NR_LTE_PDCCH_DCI_SWITCH
#define NR_PDCCH_DCI_RUN // activates new nr functions
#define NR_PDCCH_DCI_RUN // activates new nr functions
//
#define NR_PDCCH_DCI_DEBUG // activates NR_PDCCH_DCI_DEBUG logs
#define NR_PDCCH_DCI_DEBUG // activates NR_PDCCH_DCI_DEBUG logs
#define NR_NBR_CORESET_ACT_BWP 3 // The number of CoreSets per BWP is limited to 3 (including initial CORESET: ControlResourceId 0)
#define NR_NBR_CORESET_ACT_BWP 3 // The number of CoreSets per BWP is limited to 3 (including initial CORESET: ControlResourceId 0)
#define NR_NBR_SEARCHSPACE_ACT_BWP 10 // The number of SearSpaces per BWP is limited to 10 (including initial SEARCHSPACE: SearchSpaceId 0)
#define NR_NBR_SEARCHSPACE_ACT_BWP 10 // The number of SearSpaces per BWP is limited to 10 (including initial SEARCHSPACE: SearchSpaceId 0)
#define PDCCH_TEST_POLAR_TEMP_FIX
#define PDCCH_TEST_POLAR_TEMP_FIX
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
View file @
4bb2b8a2
...
@@ -149,7 +149,7 @@ int nr_initial_sync(PHY_VARS_NR_UE *ue, runmode_t mode)
...
@@ -149,7 +149,7 @@ int nr_initial_sync(PHY_VARS_NR_UE *ue, runmode_t mode)
int
rx_power
=
0
;
//aarx,
int
rx_power
=
0
;
//aarx,
//nfapi_nr_config_request_t* config;
//nfapi_nr_config_request_t* config;
int
n_ssb_crb
=
(
fp
->
N_RB_DL
-
20
)
>>
1
;
int
n_ssb_crb
=
(
fp
->
N_RB_DL
-
20
);
// First try TDD normal prefix, mu 1
// First try TDD normal prefix, mu 1
fp
->
Ncp
=
NORMAL
;
fp
->
Ncp
=
NORMAL
;
fp
->
frame_type
=
TDD
;
fp
->
frame_type
=
TDD
;
...
@@ -212,12 +212,12 @@ int nr_initial_sync(PHY_VARS_NR_UE *ue, runmode_t mode)
...
@@ -212,12 +212,12 @@ int nr_initial_sync(PHY_VARS_NR_UE *ue, runmode_t mode)
nr_gold_pdcch
(
ue
,
0
,
2
);
nr_gold_pdcch
(
ue
,
0
,
2
);
/*
/*
int nb_prefix_samples0 = f
rame_parms
->nb_prefix_samples0;
int nb_prefix_samples0 = f
p
->nb_prefix_samples0;
f
rame_parms->nb_prefix_samples0 = frame_parms->nb_prefix_samples.
f
p->nb_prefix_samples0 = fp->nb_prefix_samples;
nr_slot_fep(ue,0, 0, ue->ssb_offset, 0, 1, NR_PDCCH_EST);
nr_slot_fep(ue,0, 0, ue->ssb_offset, 0, 1, NR_PDCCH_EST);
nr_slot_fep(ue,1, 0, ue->ssb_offset, 0, 1, NR_PDCCH_EST);
nr_slot_fep(ue,1, 0, ue->ssb_offset, 0, 1, NR_PDCCH_EST);
f
rame_parms
->nb_prefix_samples0 = nb_prefix_samples0;
f
p
->nb_prefix_samples0 = nb_prefix_samples0;
LOG_I(PHY,"[UE %d] AUTOTEST Cell Sync : frame = %d, rx_offset %d, freq_offset %d \n",
LOG_I(PHY,"[UE %d] AUTOTEST Cell Sync : frame = %d, rx_offset %d, freq_offset %d \n",
ue->Mod_id,
ue->Mod_id,
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
4bb2b8a2
...
@@ -5557,8 +5557,8 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
...
@@ -5557,8 +5557,8 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
#endif
#endif
//nr_gold_pdcch(ue,0, 2);
//nr_gold_pdcch(ue,0, 2);
/*
for (l=0; l<2; l++) {
for
(
int
l
=
0
;
l
<
2
;
l
++
)
{
if
(
abstraction_flag
==
0
)
{
if
(
abstraction_flag
==
0
)
{
#if UE_TIMING_TRACE
#if UE_TIMING_TRACE
start_meas
(
&
ue
->
ofdm_demod_stats
);
start_meas
(
&
ue
->
ofdm_demod_stats
);
...
@@ -5568,7 +5568,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
...
@@ -5568,7 +5568,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
nr_slot_fep
(
ue
,
nr_slot_fep
(
ue
,
l
,
l
,
nr_tti_rx
,
nr_tti_rx
,
ue->ssb_offset
,
0
,
0
,
0
,
1
,
1
,
NR_PDCCH_EST
);
NR_PDCCH_EST
);
...
@@ -5577,29 +5577,52 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
...
@@ -5577,29 +5577,52 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
stop_meas
(
&
ue
->
ofdm_demod_stats
);
stop_meas
(
&
ue
->
ofdm_demod_stats
);
#endif
#endif
}
}
}*/
}
write_output
(
"rxdataF.m"
,
"rxF"
,
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
nr_tti_rx
>>
1
]].
rxdataF
[
0
],
ue
->
frame_parms
.
ofdm_symbol_size
*
2
,
1
,
1
);
//ue_measurement_procedures(l-1,ue,proc,eNB_id,(nr_tti_rx<<1),abstraction_flag,mode);
//ue_measurement_procedures(l-1,ue,proc,eNB_id,(nr_tti_rx<<1),abstraction_flag,mode);
//if (do_pdcch_flag) {
//if (do_pdcch_flag) {
// if ((l==pilot1) || ((pmch_flag==1)&(l==l2))) {
// if ((l==pilot1) || ((pmch_flag==1)&(l==l2))) {
// LOG_D(PHY,"[UE %d] Frame %d: Calling pdcch procedures (eNB %d)\n",ue->Mod_id,frame_rx,eNB_id);
// LOG_D(PHY,"[UE %d] Frame %d: Calling pdcch procedures (eNB %d)\n",ue->Mod_id,frame_rx,eNB_id);
//start_meas(&ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]]);
//start_meas(&ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]]);
//printf(">>> at phy_procedures_nrUE_RX, nr_ue_pdcch_procedures init, dlsch->active=%d\n",
// ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0]->active);
if
(
nr_ue_pdcch_procedures
(
eNB_id
,
ue
,
proc
,
abstraction_flag
)
==
-
1
)
{
if
(
nr_ue_pdcch_procedures
(
eNB_id
,
ue
,
proc
,
abstraction_flag
)
==
-
1
)
{
LOG_E
(
PHY
,
"[UE %d] Frame %d, nr_tti_rx %d: Error in pdcch procedures
\n
"
,
ue
->
Mod_id
,
frame_rx
,
nr_tti_rx
);
LOG_E
(
PHY
,
"[UE %d] Frame %d, nr_tti_rx %d: Error in pdcch procedures
\n
"
,
ue
->
Mod_id
,
frame_rx
,
nr_tti_rx
);
return
(
-
1
);
return
(
-
1
);
}
}
//for (int m=0;m<1000;m++) printf("%d",m);
//printf("\n>>> at phy_procedures_nrUE_RX, nr_ue_pdcch_procedures end, dlsch->active=%d\n",
// ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0]->active);
// preparing for PDSCH procedures
// if (ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0]->active == 1) {
// ue_pdsch_procedures(ue,
// proc,
// eNB_id,
// PDSCH,
// ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0],
// NULL,
// ue->pdcch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->num_pdcch_symbols,
// ue->frame_parms.symbols_per_tti>>1,
// abstraction_flag);
// }
#if 0
//stop_meas(&ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]]);
//stop_meas(&ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]]);
//printf("nr_tti_rx %d n_pdcch_sym %d pdcch procedures %5.3f \n",
//printf("nr_tti_rx %d n_pdcch_sym %d pdcch procedures %5.3f \n",
// nr_tti_rx, ue->pdcch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->num_pdcch_symbols,
// nr_tti_rx, ue->pdcch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->num_pdcch_symbols,
// (ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]].p_time)/(cpuf*1000.0));
// (ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]].p_time)/(cpuf*1000.0));
LOG_D(PHY,"num_pdcch_symbols %d\n",ue->pdcch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->num_pdcch_symbols);
LOG_D(PHY,"num_pdcch_symbols %d\n",ue->pdcch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->num_pdcch_symbols);
// }
// }
//}
//}
// } // for l=1..l2
// } // for l=1..l2
#if 0
ue_measurement_procedures(l-1,ue,proc,eNB_id,(nr_tti_rx<<1),abstraction_flag,mode);
ue_measurement_procedures(l-1,ue,proc,eNB_id,(nr_tti_rx<<1),abstraction_flag,mode);
LOG_D(PHY," ------ end FFT/ChannelEst/PDCCH slot 0: AbsSubframe %d.%d ------ \n", frame_rx%1024, nr_tti_rx);
LOG_D(PHY," ------ end FFT/ChannelEst/PDCCH slot 0: AbsSubframe %d.%d ------ \n", frame_rx%1024, nr_tti_rx);
...
...
openair1/SIMULATION/NR_PHY/pbchsim.c
View file @
4bb2b8a2
...
@@ -133,6 +133,8 @@ int main(int argc, char **argv)
...
@@ -133,6 +133,8 @@ int main(int argc, char **argv)
int
loglvl
=
OAILOG_WARNING
;
int
loglvl
=
OAILOG_WARNING
;
float
target_error_rate
=
0
.
01
;
cpuf
=
get_cpu_freq_GHz
();
cpuf
=
get_cpu_freq_GHz
();
if
(
load_configmodule
(
argc
,
argv
)
==
0
)
{
if
(
load_configmodule
(
argc
,
argv
)
==
0
)
{
...
@@ -296,6 +298,7 @@ int main(int argc, char **argv)
...
@@ -296,6 +298,7 @@ int main(int argc, char **argv)
case
'I'
:
case
'I'
:
run_initial_sync
=
1
;
run_initial_sync
=
1
;
target_error_rate
=
0
.
1
;
break
;
break
;
case
'L'
:
case
'L'
:
...
@@ -442,11 +445,10 @@ int main(int argc, char **argv)
...
@@ -442,11 +445,10 @@ int main(int argc, char **argv)
for
(
int
i
=
0
;
i
<
4
;
i
++
)
gNB
->
pbch_pdu
[
i
]
=
i
+
1
;
for
(
int
i
=
0
;
i
<
4
;
i
++
)
gNB
->
pbch_pdu
[
i
]
=
i
+
1
;
nr_common_signal_procedures
(
gNB
,
frame
,
subframe
);
nr_common_signal_procedures
(
gNB
,
frame
,
subframe
);
/*
LOG_M
(
"txsigF0.m"
,
"txsF0"
,
gNB
->
common_vars
.
txdataF
[
0
],
frame_length_complex_samples_no_prefix
,
1
,
1
);
LOG_M
(
"txsigF0.m"
,
"txsF0"
,
gNB
->
common_vars
.
txdataF
[
0
],
frame_length_complex_samples_no_prefix
,
1
,
1
);
if
(
gNB
->
frame_parms
.
nb_antennas_tx
>
1
)
if
(
gNB
->
frame_parms
.
nb_antennas_tx
>
1
)
LOG_M
(
"txsigF1.m"
,
"txsF1"
,
gNB
->
common_vars
.
txdataF
[
1
],
frame_length_complex_samples_no_prefix
,
1
,
1
);
LOG_M
(
"txsigF1.m"
,
"txsF1"
,
gNB
->
common_vars
.
txdataF
[
1
],
frame_length_complex_samples_no_prefix
,
1
,
1
);
*/
//TODO: loop over slots
//TODO: loop over slots
for
(
aa
=
0
;
aa
<
gNB
->
frame_parms
.
nb_antennas_tx
;
aa
++
)
{
for
(
aa
=
0
;
aa
<
gNB
->
frame_parms
.
nb_antennas_tx
;
aa
++
)
{
if
(
gNB_config
->
subframe_config
.
dl_cyclic_prefix_type
.
value
==
1
)
{
if
(
gNB_config
->
subframe_config
.
dl_cyclic_prefix_type
.
value
==
1
)
{
...
@@ -572,6 +574,11 @@ int main(int argc, char **argv)
...
@@ -572,6 +574,11 @@ int main(int argc, char **argv)
printf
(
"SNR %f : n_errors (negative CRC) = %d/%d
\n
"
,
SNR
,
n_errors
,
n_trials
);
printf
(
"SNR %f : n_errors (negative CRC) = %d/%d
\n
"
,
SNR
,
n_errors
,
n_trials
);
if
((
float
)
n_errors
/
(
float
)
n_trials
<=
target_error_rate
)
{
printf
(
"PBCH test OK
\n
"
);
break
;
}
if
(
n_trials
==
1
)
if
(
n_trials
==
1
)
break
;
break
;
...
...
targets/RT/USER/nr-ue.c
View file @
4bb2b8a2
...
@@ -963,7 +963,7 @@ nb_sf_init=5;
...
@@ -963,7 +963,7 @@ nb_sf_init=5;
#if BASIC_SIMULATOR
#if BASIC_SIMULATOR
{
{
int
t
;
int
t
;
for
(
t
=
0
;
t
<
2
;
t
++
)
{
for
(
t
=
0
;
t
<
RX_NB_TH
;
t
++
)
{
UE_rxtx_proc_t
*
proc
=
&
UE
->
proc
.
proc_rxtx
[
t
];
UE_rxtx_proc_t
*
proc
=
&
UE
->
proc
.
proc_rxtx
[
t
];
pthread_mutex_lock
(
&
proc
->
mutex_rxtx
);
pthread_mutex_lock
(
&
proc
->
mutex_rxtx
);
while
(
proc
->
instance_cnt_rxtx
>=
0
)
pthread_cond_wait
(
&
proc
->
cond_rxtx
,
&
proc
->
mutex_rxtx
);
while
(
proc
->
instance_cnt_rxtx
>=
0
)
pthread_cond_wait
(
&
proc
->
cond_rxtx
,
&
proc
->
mutex_rxtx
);
...
@@ -971,13 +971,13 @@ nb_sf_init=5;
...
@@ -971,13 +971,13 @@ nb_sf_init=5;
}
}
}
}
#endif
#endif
LOG_D
(
PHY
,
"Process subframe %d thread Idx %d
\n
"
,
subframe_nr
,
UE
->
current_thread_id
[
subframe_nr
]);
LOG_D
(
PHY
,
"Process subframe %d thread Idx %d
\n
"
,
subframe_nr
,
UE
->
current_thread_id
[
subframe_nr
]);
thread_idx
++
;
thread_idx
++
;
if
(
thread_idx
>=
RX_NB_TH
)
if
(
thread_idx
>=
RX_NB_TH
)
thread_idx
=
0
;
thread_idx
=
0
;
if
(
UE
->
mode
!=
loop_through_memory
)
{
if
(
UE
->
mode
!=
loop_through_memory
)
{
for
(
i
=
0
;
i
<
UE
->
frame_parms
.
nb_antennas_rx
;
i
++
)
for
(
i
=
0
;
i
<
UE
->
frame_parms
.
nb_antennas_rx
;
i
++
)
rxp
[
i
]
=
(
void
*
)
&
UE
->
common_vars
.
rxdata
[
i
][
UE
->
frame_parms
.
ofdm_symbol_size
+
rxp
[
i
]
=
(
void
*
)
&
UE
->
common_vars
.
rxdata
[
i
][
UE
->
frame_parms
.
ofdm_symbol_size
+
...
@@ -1040,9 +1040,6 @@ nb_sf_init=5;
...
@@ -1040,9 +1040,6 @@ nb_sf_init=5;
if
(
first_symbols
<
0
)
if
(
first_symbols
<
0
)
LOG_E
(
PHY
,
"can't compensate: diff =%d
\n
"
,
first_symbols
);
LOG_E
(
PHY
,
"can't compensate: diff =%d
\n
"
,
first_symbols
);
}
}
}
//UE->mode != loop_through_memory
else
rt_sleep_ns
(
1000
*
1000
);
pickTime
(
gotIQs
);
pickTime
(
gotIQs
);
// operate on thread sf mod 2
// operate on thread sf mod 2
...
@@ -1078,7 +1075,7 @@ nb_sf_init=5;
...
@@ -1078,7 +1075,7 @@ nb_sf_init=5;
proc
->
frame_tx
=
(
proc
->
frame_tx
+
1
)
%
MAX_FRAME_NUMBER
;
proc
->
frame_tx
=
(
proc
->
frame_tx
+
1
)
%
MAX_FRAME_NUMBER
;
proc
->
nr_tti_tx
%=
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
;
proc
->
nr_tti_tx
%=
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
;
}
}
proc
->
subframe_tx
=
subframe_nr
+
DURATION_RX_TO_TX
;
proc
->
subframe_tx
=
proc
->
nr_tti_rx
;
proc
->
timestamp_tx
=
timestamp
+
proc
->
timestamp_tx
=
timestamp
+
(
DURATION_RX_TO_TX
*
UE
->
frame_parms
.
samples_per_subframe
)
-
(
DURATION_RX_TO_TX
*
UE
->
frame_parms
.
samples_per_subframe
)
-
UE
->
frame_parms
.
ofdm_symbol_size
-
UE
->
frame_parms
.
nb_prefix_samples0
;
UE
->
frame_parms
.
ofdm_symbol_size
-
UE
->
frame_parms
.
nb_prefix_samples0
;
...
@@ -1114,7 +1111,41 @@ nb_sf_init=5;
...
@@ -1114,7 +1111,41 @@ nb_sf_init=5;
// initStaticTime(lastTime);
// initStaticTime(lastTime);
// updateTimes(lastTime, &t1, 20000, "Delay between two IQ acquisitions (case 1)");
// updateTimes(lastTime, &t1, 20000, "Delay between two IQ acquisitions (case 1)");
// pickStaticTime(lastTime);
// pickStaticTime(lastTime);
}
//UE->mode != loop_through_memory
else
{
proc
->
nr_tti_rx
=
subframe_nr
;
proc
->
subframe_rx
=
subframe_nr
;
if
(
subframe_nr
==
0
)
{
for
(
th_id
=
0
;
th_id
<
RX_NB_TH
;
th_id
++
)
{
UE
->
proc
.
proc_rxtx
[
th_id
].
frame_rx
++
;
}
}
proc
->
frame_tx
=
proc
->
frame_rx
;
proc
->
nr_tti_tx
=
subframe_nr
+
DURATION_RX_TO_TX
;
if
(
proc
->
nr_tti_tx
>
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
)
{
proc
->
frame_tx
=
(
proc
->
frame_tx
+
1
)
%
MAX_FRAME_NUMBER
;
proc
->
nr_tti_tx
%=
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
;
}
proc
->
subframe_tx
=
proc
->
nr_tti_tx
;
printf
(
"Processing subframe %d
\n
"
,
proc
->
subframe_rx
);
if
(
UE
->
if_inst
!=
NULL
&&
UE
->
if_inst
->
ul_indication
!=
NULL
){
UE
->
ul_indication
.
module_id
=
0
;
UE
->
ul_indication
.
gNB_index
=
0
;
UE
->
ul_indication
.
cc_id
=
0
;
UE
->
ul_indication
.
slot
=
0
;
// to be fill
UE
->
ul_indication
.
frame
=
0
;
// to be fill
// [TODO] mapping right after NR initial sync
UE
->
ul_indication
.
frame
=
proc
->
frame_rx
;
UE
->
ul_indication
.
slot
=
proc
->
nr_tti_rx
;
UE
->
if_inst
->
ul_indication
(
&
UE
->
ul_indication
);
}
phy_procedures_nrUE_RX
(
UE
,
proc
,
0
,
0
,
1
,
UE
->
mode
,
no_relay
);
getchar
();
}
// else loop_through_memory
}
// start_rx_stream==1
}
// start_rx_stream==1
}
// UE->is_synchronized==1
}
// UE->is_synchronized==1
...
...
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