diff --git a/ci-scripts/Jenkinsfile-gitlab b/ci-scripts/Jenkinsfile-gitlab
index e02f071c2f..f170aa081f 100644
--- a/ci-scripts/Jenkinsfile-gitlab
+++ b/ci-scripts/Jenkinsfile-gitlab
@@ -118,7 +118,7 @@ pipeline {
stage ("Start VM -- basic-sim") {
steps {
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 {
stage ("Start VM -- gnb-usrp") {
steps {
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 {
stage ("Start VM -- nu-ue-usrp") {
steps {
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 {
stage ("Start VM -- enb-usrp") {
steps {
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 {
stage ("Start VM -- enb-ethernet") {
steps {
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 {
stage ("Start VM -- ue-ethernet") {
steps {
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 {
stage ("Start VM -- phy-sim") {
steps {
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 {
stage ("Start VM -- cppcheck") {
steps {
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 {
steps {
gitlabCommitStatus(name: "Analysis with cppcheck") {
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 {
steps {
gitlabCommitStatus(name: "Build eNb-USRP") {
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 {
steps {
gitlabCommitStatus(name: "Build basic-sim") {
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 {
steps {
gitlabCommitStatus(name: "Build eNb-ethernet") {
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 {
steps {
gitlabCommitStatus(name: "Build UE-ethernet") {
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 {
steps {
gitlabCommitStatus(name: "Build gNb-usrp") {
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 {
steps {
gitlabCommitStatus(name: "Build nr-UE-usrp") {
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 {
steps {
gitlabCommitStatus(name: "Build phy-sim") {
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 {
archiveArtifacts artifacts: 'archives/vm_build_logs.zip'
}
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}"
def res=readFile('./oai_warning_files.txt').trim();
if ("0".equals(res)) {
@@ -297,7 +297,7 @@ pipeline {
addGitLabMRComment comment: message
}
} 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')) {
sh "sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: ${BUILD_ID}#' -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' build_results.html"
@@ -314,7 +314,7 @@ pipeline {
steps {
gitlabCommitStatus(name: "Test phy-sim") {
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 {
steps {
gitlabCommitStatus(name: "Test basic-sim") {
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 {
if(fileExists('archives/vm_tests_logs.zip')) {
archiveArtifacts artifacts: 'archives/vm_tests_logs.zip'
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 {
- 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')) {
sh "sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: ${BUILD_ID}#' -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' test_simulator_results.html"
@@ -533,7 +533,7 @@ pipeline {
}
stage ("Destroy all Virtual Machines") {
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 {
always {
script {
// 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',
body: '''Hi,
Here are attached HTML report files for $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
diff --git a/ci-scripts/buildOnVM.sh b/ci-scripts/buildOnVM.sh
index 456d874154..aed449f180 100755
--- a/ci-scripts/buildOnVM.sh
+++ b/ci-scripts/buildOnVM.sh
@@ -20,8 +20,8 @@
# * contact@openairinterface.org
# */
-function usage {
- echo "OAI VM Build Check script"
+function build_usage {
+ echo "OAI CI VM script"
echo " Original Author: Raphael Defosseux"
echo " Requirements:"
echo " -- uvtool uvtool-libvirt apt-cacher"
@@ -31,9 +31,9 @@ function usage {
echo ""
echo "Usage:"
echo "------"
- echo " buildOnVM.sh [OPTIONS]"
+ echo " oai-ci-vm-tool build [OPTIONS]"
echo ""
- echo "Options:"
+ echo "Mandatory Options:"
echo "--------"
echo " --job-name #### OR -jn ####"
echo " Specify the name of the Jenkins job."
@@ -44,14 +44,9 @@ function usage {
echo " --workspace #### OR -ws ####"
echo " Specify the workspace."
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 "Options:"
+ echo "--------"
+ variant_usage
echo " Specify the variant to build."
echo ""
echo " --keep-vm-alive OR -k"
@@ -65,414 +60,120 @@ function usage {
echo ""
}
-function variant_usage {
- echo "OAI VM Build Check 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 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!"
- 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_CMD_FILE = $VM_CMDS"
-echo "JENKINS_WKSP = $JENKINS_WKSP"
-echo "ARCHIVES_LOC = $ARCHIVES_LOC"
-echo "BUILD_OPTIONS = $BUILD_OPTIONS"
-
-IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME`
-
-if [ $IS_VM_ALIVE -eq 0 ]
-then
- 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
-fi
-
-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"
-
-echo "############################################################"
-echo "Copying GIT repo into VM ($VM_NAME)"
-echo "############################################################"
-scp -o StrictHostKeyChecking=no localZip.zip ubuntu@$VM_IP_ADDR:/home/ubuntu
-scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$VM_IP_ADDR:/home/ubuntu
-
-echo "############################################################"
-echo "Running install and build script on VM ($VM_NAME)"
-echo "############################################################"
-echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $VM_CMDS
-echo "touch /home/ubuntu/.hushlogin" >> $VM_CMDS
-if [[ "$VM_NAME" == *"-cppcheck"* ]]
-then
- if [ $DAEMON -eq 0 ]
+function build_on_vm {
+ if [ ! -f $JENKINS_WKSP/localZip.zip ]
then
- echo "echo \"sudo apt-get --yes --quiet install zip cppcheck \"" >> $VM_CMDS
- echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
- echo "sudo apt-get --yes install zip cppcheck >> zip-install.txt 2>&1" >> $VM_CMDS
- else
- echo "echo \"sudo apt-get --yes --quiet install zip daemon cppcheck \"" >> $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 "Missing localZip.zip file!"
+ STATUS=1
+ return
fi
-else
- if [ $DAEMON -eq 0 ]
+ if [ ! -f /etc/apt/apt.conf.d/01proxy ]
then
- echo "echo \"sudo apt-get --yes --quiet install zip subversion libboost-dev \"" >> $VM_CMDS
- echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
- echo "sudo apt-get --yes install zip subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS
- else
- echo "echo \"sudo apt-get --yes --quiet install zip daemon subversion libboost-dev \"" >> $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 "Missing /etc/apt/apt.conf.d/01proxy file!"
+ echo "Is apt-cacher installed and configured?"
+ STATUS=1
+ return
fi
-fi
-echo "mkdir tmp" >> $VM_CMDS
-echo "cd tmp" >> $VM_CMDS
-echo "echo \"unzip -qq -DD ../localZip.zip\"" >> $VM_CMDS
-echo "unzip -qq -DD ../localZip.zip" >> $VM_CMDS
-if [[ "$VM_NAME" == *"-cppcheck"* ]]
-then
- echo "mkdir 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 "echo \"cppcheck $BUILD_OPTIONS . \"" >> $VM_CMDS
- if [ $DAEMON -eq 0 ]
- then
- echo "cppcheck $BUILD_OPTIONS . 2> cmake_targets/log/cppcheck.xml 1> cmake_targets/log/cppcheck_build.txt" >> $VM_CMDS
- else
- echo "echo \"cppcheck $BUILD_OPTIONS .\" > ./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
- fi
-else
- echo "echo \"source oaienv\"" >> $VM_CMDS
- echo "source oaienv" >> $VM_CMDS
- echo "cd cmake_targets/" >> $VM_CMDS
- echo "mkdir log" >> $VM_CMDS
- echo "chmod 777 log" >> $VM_CMDS
- echo "cp /home/ubuntu/zip-install.txt log" >> $VM_CMDS
- if [ $DAEMON -eq 0 ]
- then
- echo "echo \"./build_oai -I $BUILD_OPTIONS \"" >> $VM_CMDS
- echo "./build_oai -I $BUILD_OPTIONS > log/install-build.txt 2>&1" >> $VM_CMDS
- else
- echo "echo \"./build_oai -I $BUILD_OPTIONS\" > ./my-vm-build.sh" >> $VM_CMDS
- echo "chmod 775 ./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
- 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 "OAI CI VM script"
echo "############################################################"
- uvt-kvm destroy $VM_NAME
- ssh-keygen -R $VM_IP_ADDR
-fi
-rm -f $VM_CMDS
-echo "############################################################"
-echo "Checking build status"
-echo "############################################################"
+ echo "VM_NAME = $VM_NAME"
+ echo "VM_CMD_FILE = $VM_CMDS"
+ echo "JENKINS_WKSP = $JENKINS_WKSP"
+ echo "ARCHIVES_LOC = $ARCHIVES_LOC"
+ echo "BUILD_OPTIONS = $BUILD_OPTIONS"
-LOG_FILES=`ls $ARCHIVES_LOC/*.txt $ARCHIVES_LOC/*.xml`
-STATUS=0
-NB_FOUND_FILES=0
+ IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME`
-for FULLFILE in $LOG_FILES
-do
- if [[ $FULLFILE == *"$LOG_PATTERN"* ]]
+ if [ $IS_VM_ALIVE -eq 0 ]
then
- filename=$(basename -- "$FULLFILE")
- if [ "$LOG_PATTERN" == ".Rel15.txt" ]
+ 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
+ fi
+
+ 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"
+
+ echo "############################################################"
+ echo "Copying GIT repo into VM ($VM_NAME)"
+ echo "############################################################"
+ 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
+
+ echo "############################################################"
+ echo "Running install and build script on VM ($VM_NAME)"
+ echo "############################################################"
+ echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $VM_CMDS
+ echo "touch /home/ubuntu/.hushlogin" >> $VM_CMDS
+ if [[ "$VM_NAME" == *"-cppcheck"* ]]
+ then
+ if [ $DAEMON -eq 0 ]
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`
+ echo "echo \"sudo apt-get --yes --quiet install zip cppcheck \"" >> $VM_CMDS
+ echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
+ echo "sudo apt-get --yes install zip cppcheck >> zip-install.txt 2>&1" >> $VM_CMDS
else
- LOCAL_STAT=`egrep -c "Built target $PASS_PATTERN" $FULLFILE`
+ echo "echo \"sudo apt-get --yes --quiet install zip daemon cppcheck \"" >> $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
+ fi
+ else
+ if [ $DAEMON -eq 0 ]
+ then
+ echo "echo \"sudo apt-get --yes --quiet install zip subversion libboost-dev \"" >> $VM_CMDS
+ echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
+ echo "sudo apt-get --yes install zip subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS
+ else
+ echo "echo \"sudo apt-get --yes --quiet install zip daemon subversion libboost-dev \"" >> $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
fi
- if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
- NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
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
+ echo "mkdir tmp" >> $VM_CMDS
+ echo "cd tmp" >> $VM_CMDS
+ echo "echo \"unzip -qq -DD ../localZip.zip\"" >> $VM_CMDS
+ echo "unzip -qq -DD ../localZip.zip" >> $VM_CMDS
+ if [[ "$VM_NAME" == *"-cppcheck"* ]]
+ then
+ echo "mkdir 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 "echo \"cppcheck $BUILD_OPTIONS . \"" >> $VM_CMDS
+ if [ $DAEMON -eq 0 ]
+ then
+ echo "cppcheck $BUILD_OPTIONS . 2> cmake_targets/log/cppcheck.xml 1> cmake_targets/log/cppcheck_build.txt" >> $VM_CMDS
+ else
+ echo "echo \"cppcheck $BUILD_OPTIONS .\" > ./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
+ fi
+ else
+ echo "echo \"source oaienv\"" >> $VM_CMDS
+ echo "source oaienv" >> $VM_CMDS
+ echo "cd cmake_targets/" >> $VM_CMDS
+ echo "mkdir log" >> $VM_CMDS
+ echo "chmod 777 log" >> $VM_CMDS
+ echo "cp /home/ubuntu/zip-install.txt log" >> $VM_CMDS
+ if [ $DAEMON -eq 0 ]
+ then
+ echo "echo \"./build_oai -I $BUILD_OPTIONS \"" >> $VM_CMDS
+ echo "./build_oai -I $BUILD_OPTIONS > log/install-build.txt 2>&1" >> $VM_CMDS
+ else
+ echo "echo \"./build_oai -I $BUILD_OPTIONS\" > ./my-vm-build.sh" >> $VM_CMDS
+ echo "chmod 775 ./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
+ fi
+ fi
+ ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
+ rm -f $VM_CMDS
+}
diff --git a/ci-scripts/createVM.sh b/ci-scripts/createVM.sh
index 682d485e21..192008d867 100755
--- a/ci-scripts/createVM.sh
+++ b/ci-scripts/createVM.sh
@@ -20,8 +20,8 @@
# * contact@openairinterface.org
# */
-function usage {
- echo "OAI VM Creation script"
+function create_usage {
+ echo "OAI CI VM script"
echo " Original Author: Raphael Defosseux"
echo " Requirements:"
echo " -- uvtool uvtool-libvirt apt-cacher"
@@ -31,9 +31,9 @@ function usage {
echo ""
echo "Usage:"
echo "------"
- echo " createVM.sh [OPTIONS]"
+ echo " oai-ci-vm-tool create [OPTIONS]"
echo ""
- echo "Options:"
+ echo "Mandatory Options:"
echo "--------"
echo " --job-name #### OR -jn ####"
echo " Specify the name of the Jenkins job."
@@ -41,14 +41,7 @@ function usage {
echo " --build-id #### OR -id ####"
echo " Specify the build ID of the Jenkins job."
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"
+ variant_usage
echo " Specify the variant to build."
echo ""
echo " --help OR -h"
@@ -56,158 +49,21 @@ function usage {
echo ""
}
-function variant_usage {
- echo "OAI VM Build Check 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 gnb-usrp OR -v5"
- echo " --variant nu-ue-usrp OR -v6"
- echo " --variant enb-ethernet OR -v7"
- echo " --variant ue-ethernet OR -v8"
- echo ""
+function create_vm {
+ echo "############################################################"
+ echo "OAI CI VM script"
+ echo "############################################################"
+ 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"
}
-
-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
- -h|--help)
- shift
- usage
- exit 0
- ;;
- -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_CMDS=${VM_NAME}_cmds.txt
-
-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
diff --git a/ci-scripts/destroyAllRunningVM.sh b/ci-scripts/destroyAllRunningVM.sh
index 5e152bc590..76a7fd0b50 100755
--- a/ci-scripts/destroyAllRunningVM.sh
+++ b/ci-scripts/destroyAllRunningVM.sh
@@ -20,15 +20,17 @@
# * contact@openairinterface.org
# */
-function usage {
- echo "OAI VM Destroy script"
+function destroy_usage {
+ echo "OAI CI VM script"
echo " Original Author: Raphael Defosseux"
+ echo " Requirements:"
+ echo " -- uvtool uvtool-libvirt apt-cacher"
echo ""
echo "Usage:"
echo "------"
- echo " destroyAllRunningVM.sh [OPTIONS]"
+ echo " oai-ci-vm-tool destroy [OPTIONS]"
echo ""
- echo "Options:"
+ echo "Mandatory Options:"
echo "--------"
echo " --job-name #### OR -jn ####"
echo " Specify the name of the Jenkins job."
@@ -36,66 +38,26 @@ function usage {
echo " --build-id #### OR -id ####"
echo " Specify the build ID of the Jenkins job."
echo ""
+ echo "Options:"
+ echo "--------"
echo " --help OR -h"
echo " Print this help message."
echo ""
}
-if [ $# -gt 4 ]
-then
- echo "Syntax Error: not the correct number of arguments"
- echo ""
- usage
- exit 1
-fi
+function destroy_vm {
+ echo "############################################################"
+ echo "OAI CI VM script"
+ echo "############################################################"
+ echo "VM_TEMPLATE = $VM_TEMPLATE"
-VM_TEMPLATE=ci-
-JOB_NAME=XX
-BUILD_ID=XX
-
-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
- ;;
- *)
- 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
-
-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`
- echo "VM to destroy: $CI_VM -- IP $VM_IP_ADDR"
- uvt-kvm destroy $CI_VM
- ssh-keygen -R $VM_IP_ADDR
-done
-
-exit 0
+ 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`
+ echo "VM to destroy: $CI_VM -- IP $VM_IP_ADDR"
+ uvt-kvm destroy $CI_VM
+ ssh-keygen -R $VM_IP_ADDR
+ done
+}
diff --git a/ci-scripts/oai-ci-vm-tool b/ci-scripts/oai-ci-vm-tool
new file mode 100755
index 0000000000..8d3dbb4ddd
--- /dev/null
+++ b/ci-scripts/oai-ci-vm-tool
@@ -0,0 +1,573 @@
+#!/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
diff --git a/ci-scripts/reportBuildLocally.sh b/ci-scripts/reportBuildLocally.sh
index e0336c6dab..2e78e6f6cd 100755
--- a/ci-scripts/reportBuildLocally.sh
+++ b/ci-scripts/reportBuildLocally.sh
@@ -20,14 +20,13 @@
# * contact@openairinterface.org
# */
-function usage {
- echo "OAI Local Build Report script"
+function report_build_usage {
+ echo "OAI CI VM script"
echo " Original Author: Raphael Defosseux"
echo ""
echo "Usage:"
echo "------"
- echo ""
- echo " reportBuildLocally.sh [OPTIONS]"
+ echo " oai-ci-vm-tool report-build [OPTIONS]"
echo ""
echo "Options:"
echo "--------"
@@ -47,6 +46,9 @@ function usage {
echo " --build-id #### OR -id ####"
echo " Specify the build ID of the Jenkins job."
echo ""
+ echo " --workspace #### OR -ws ####"
+ echo " Specify the workspace."
+ 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."
@@ -79,7 +81,7 @@ function usage {
}
function trigger_usage {
- echo "OAI Local Build Report script"
+ echo "OAI CI VM script"
echo " Original Author: Raphael Defosseux"
echo ""
echo " --trigger merge-request OR -mr"
@@ -153,8 +155,8 @@ function summary_table_row {
echo "
$1" >> ./build_results.html
if [ -f $2 ]
then
- STATUS=`egrep -c "$3" $2`
- if [ $STATUS -eq 1 ]
+ BUILD_STATUS=`egrep -c "$3" $2`
+ if [ $BUILD_STATUS -eq 1 ]
then
echo " | OK" >> ./build_results.html
else
@@ -263,384 +265,245 @@ function sca_summary_table_footer {
echo " Graphical Interface tool : cppcheck-gui -l cppcheck/cppcheck.xml " >> ./build_results.html
}
-jb_checker=0
-mr_checker=0
-pu_checker=0
-MR_TRIG=0
-PU_TRIG=0
-while [[ $# -gt 0 ]]
-do
-key="$1"
+function report_build {
+ echo "############################################################"
+ echo "OAI CI VM script"
+ echo "############################################################"
-case $key in
- -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
+ echo "JENKINS_WKSP = $JENKINS_WKSP"
-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 ]
+ cd ${JENKINS_WKSP}
+ echo "" > ./build_results.html
+ echo "" >> ./build_results.html
+ echo "" >> ./build_results.html
+ echo " Build Results for $JOB_NAME job build #$BUILD_ID" >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo "" >> ./build_results.html
+ echo "" >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " | Build Start Time (UTC) | " >> ./build_results.html
+ echo " TEMPLATE_BUILD_TIME | " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " | GIT Repository | " >> ./build_results.html
+ echo " $GIT_URL | " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " | Job Trigger | " >> ./build_results.html
+ if [ $PU_TRIG -eq 1 ]; then echo " Push Event | " >> ./build_results.html; fi
+ if [ $MR_TRIG -eq 1 ]; then echo " Merge-Request | " >> ./build_results.html; fi
+ echo " " >> ./build_results.html
+ if [ $PU_TRIG -eq 1 ]
then
- echo ""
- echo "Syntax Error: missing push information."
- # TODO : list missing info
- echo ""
- exit 1
+ echo " " >> ./build_results.html
+ echo " | Branch | " >> ./build_results.html
+ echo " $SOURCE_BRANCH | " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " | Commit ID | " >> ./build_results.html
+ echo " $SOURCE_COMMIT_ID | " >> ./build_results.html
+ echo " " >> ./build_results.html
fi
-fi
-
-if [ $MR_TRIG -eq 1 ]
-then
- if [ $mr_checker -ne 15 ]
+ if [ $MR_TRIG -eq 1 ]
then
- echo ""
- echo "Syntax Error: missing merge-request information."
- # TODO : list missing info
- echo ""
- exit 1
+ echo " " >> ./build_results.html
+ echo " | Source Branch | " >> ./build_results.html
+ echo " $SOURCE_BRANCH | " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " | Source Commit ID | " >> ./build_results.html
+ echo " $SOURCE_COMMIT_ID | " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " | Target Branch | " >> ./build_results.html
+ echo " $TARGET_BRANCH | " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " | Target Commit ID | " >> ./build_results.html
+ echo " $TARGET_COMMIT_ID | " >> ./build_results.html
+ echo " " >> ./build_results.html
fi
-fi
+ echo " " >> ./build_results.html
+ echo " Build Summary" >> ./build_results.html
-echo "" > ./build_results.html
-echo "" >> ./build_results.html
-echo "" >> ./build_results.html
-echo " Build Results for $JOB_NAME job build #$BUILD_ID" >> ./build_results.html
-echo " " >> ./build_results.html
-echo "" >> ./build_results.html
-echo "" >> ./build_results.html
-echo " " >> ./build_results.html
-echo " " >> ./build_results.html
-echo " " >> ./build_results.html
-echo " " >> ./build_results.html
-echo " | Build Start Time (UTC) | " >> ./build_results.html
-echo " TEMPLATE_BUILD_TIME | " >> ./build_results.html
-echo " " >> ./build_results.html
-echo " " >> ./build_results.html
-echo " | GIT Repository | " >> ./build_results.html
-echo " $GIT_URL | " >> ./build_results.html
-echo " " >> ./build_results.html
-echo " " >> ./build_results.html
-echo " | Job Trigger | " >> ./build_results.html
-if [ $PU_TRIG -eq 1 ]; then echo " Push Event | " >> ./build_results.html; fi
-if [ $MR_TRIG -eq 1 ]; then echo " Merge-Request | " >> ./build_results.html; fi
-echo " " >> ./build_results.html
-if [ $PU_TRIG -eq 1 ]
-then
- echo " " >> ./build_results.html
- echo " | Branch | " >> ./build_results.html
- echo " $SOURCE_BRANCH | " >> ./build_results.html
- echo " " >> ./build_results.html
- echo " " >> ./build_results.html
- echo " | Commit ID | " >> ./build_results.html
- echo " $SOURCE_COMMIT_ID | " >> ./build_results.html
- echo " " >> ./build_results.html
-fi
-if [ $MR_TRIG -eq 1 ]
-then
- echo " " >> ./build_results.html
- echo " | Source Branch | " >> ./build_results.html
- echo " $SOURCE_BRANCH | " >> ./build_results.html
- echo " " >> ./build_results.html
- echo " " >> ./build_results.html
- echo " | Source Commit ID | " >> ./build_results.html
- echo " $SOURCE_COMMIT_ID | " >> ./build_results.html
- echo " " >> ./build_results.html
- echo " " >> ./build_results.html
- echo " | Target Branch | " >> ./build_results.html
- echo " $TARGET_BRANCH | " >> ./build_results.html
- echo " " >> ./build_results.html
- echo " " >> ./build_results.html
- echo " | Target Commit ID | " >> ./build_results.html
- echo " $TARGET_COMMIT_ID | " >> ./build_results.html
- echo " " >> ./build_results.html
-fi
-echo " " >> ./build_results.html
-echo " Build Summary" >> ./build_results.html
-
-if [ -f ./oai_rules_result.txt ]
-then
- echo " OAI Coding / Formatting Guidelines Check" >> ./build_results.html
- echo " " >> ./build_results.html
- echo " " >> ./build_results.html
- echo " | Result: | " >> ./build_results.html
- NB_FILES=`cat ./oai_rules_result.txt`
- if [ $NB_FILES = "0" ]
- then
- if [ $PU_TRIG -eq 1 ]; then echo " All files in repository follow OAI rules. | " >> ./build_results.html; fi
- if [ $MR_TRIG -eq 1 ]; then echo " All modified files in Merge-Request follow OAI rules. | " >> ./build_results.html; fi
- echo " " >> ./build_results.html
- echo " " >> ./build_results.html
- else
- if [ $PU_TRIG -eq 1 ]; then echo " | $NB_FILES files in repository DO NOT follow OAI rules. | " >> ./build_results.html; fi
- if [ $MR_TRIG -eq 1 ]; then echo " $NB_FILES modified files in Merge-Request DO NOT follow OAI rules. | " >> ./build_results.html; fi
- echo " " >> ./build_results.html
- if [ -f ./oai_rules_result_list.txt ]
- then
- awk '{print " | "$1" |
"}' ./oai_rules_result_list.txt >> ./build_results.html
+ if [ -f ./oai_rules_result.txt ]
+ then
+ echo " OAI Coding / Formatting Guidelines Check
" >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " " >> ./build_results.html
+ echo " | Result: | " >> ./build_results.html
+ NB_FILES=`cat ./oai_rules_result.txt`
+ if [ $NB_FILES = "0" ]
+ then
+ if [ $PU_TRIG -eq 1 ]; then echo " All files in repository follow OAI rules. | " >> ./build_results.html; fi
+ if [ $MR_TRIG -eq 1 ]; then echo " All modified files in Merge-Request follow OAI rules. | " >> ./build_results.html; fi
+ echo "
" >> ./build_results.html
+ echo "
" >> ./build_results.html
+ else
+ if [ $PU_TRIG -eq 1 ]; then echo " $NB_FILES files in repository DO NOT follow OAI rules. | " >> ./build_results.html; fi
+ if [ $MR_TRIG -eq 1 ]; then echo " $NB_FILES modified files in Merge-Request DO NOT follow OAI rules. | " >> ./build_results.html; fi
+ echo " " >> ./build_results.html
+ if [ -f ./oai_rules_result_list.txt ]
+ then
+ awk '{print " | "$1" |
"}' ./oai_rules_result_list.txt >> ./build_results.html
+ fi
+ echo " " >> ./build_results.html
+ echo " Please apply the following command to this(ese) file(s):
" >> ./build_results.html
+ echo " astyle --options=ci-scripts/astyle-options.txt filename(s)
" >> ./build_results.html
fi
- echo " " >> ./build_results.html
- echo " Please apply the following command to this(ese) file(s):
" >> ./build_results.html
- echo " astyle --options=ci-scripts/astyle-options.txt filename(s)
" >> ./build_results.html
fi
-fi
-echo " Ubuntu 16.04 LTS -- Summary
" >> ./build_results.html
+ echo " Ubuntu 16.04 LTS -- Summary
" >> ./build_results.html
-sca_summary_table_header "OAI Static Code Analysis with CPPCHECK"
-sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized variable" uninitvar
-sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized struct member" uninitStructMember
-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 "Resource leak" resourceLeak
-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 "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_footer ./archives/cppcheck/cppcheck.xml
+ sca_summary_table_header "OAI Static Code Analysis with CPPCHECK"
+ sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized variable" uninitvar
+ sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized struct member" uninitStructMember
+ 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 "Resource leak" resourceLeak
+ 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 "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_footer ./archives/cppcheck/cppcheck.xml
-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 "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 "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_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 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_footer
-
-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 "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
-if [ -f ./archives/phy_sim/ldpctest.Rel15.txt ]
-then
- summary_table_row "LDPC Test - Release 15" ./archives/phy_sim/ldpctest.Rel15.txt "Built target ldpctest" ./phy_sim_row4.html
-fi
-if [ -f ./archives/phy_sim/polartest.Rel15.txt ]
-then
- summary_table_row "Polar Test - Release 15" ./archives/phy_sim/polartest.Rel15.txt "Built target polartest" ./phy_sim_row5.html
-fi
-if [ -f ./archives/phy_sim/nr_pbchsim.Rel15.txt ]
-then
- summary_table_row "PBCH Test - Release 15" ./archives/phy_sim/nr_pbchsim.Rel15.txt "Built target nr_pbchsim" ./phy_sim_row6.html
-fi
-summary_table_footer
-
-
-if [ -f archives/gnb_usrp/nr-softmodem.Rel15.txt ]
-then
- 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 "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 "Parameters Lib Config - Release 15" ./archives/gnb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./gnb_usrp_row4.html
+ 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 "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 "Parameters Lib Config - Release 15" ./archives/enb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_usrp_row4.html
summary_table_footer
-fi
-if [ -f archives/nrue_usrp/nr-uesoftmodem.Rel15.txt ]
-then
- 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 "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 "Parameters Lib Config - Release 15" ./archives/nrue_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./nrue_usrp_row4.html
+ 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 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_footer
-fi
-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 "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 "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 "NAS Mesh - Release 15" ./archives/enb_eth/nasmesh.Rel15.txt "Built target nasmesh" ./enb_eth_row6.html
-summary_table_footer
+ 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 "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
+ if [ -f ./archives/phy_sim/ldpctest.Rel15.txt ]
+ then
+ summary_table_row "LDPC Test - Release 15" ./archives/phy_sim/ldpctest.Rel15.txt "Built target ldpctest" ./phy_sim_row4.html
+ fi
+ if [ -f ./archives/phy_sim/polartest.Rel15.txt ]
+ then
+ summary_table_row "Polar Test - Release 15" ./archives/phy_sim/polartest.Rel15.txt "Built target polartest" ./phy_sim_row5.html
+ fi
+ if [ -f ./archives/phy_sim/nr_pbchsim.Rel15.txt ]
+ then
+ summary_table_row "PBCH Test - Release 15" ./archives/phy_sim/nr_pbchsim.Rel15.txt "Built target nr_pbchsim" ./phy_sim_row6.html
+ fi
+ summary_table_footer
-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 "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 "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 "NAS Mesh - Release 15" ./archives/ue_eth/nasmesh.Rel15.txt "Built target nasmesh" ./ue_eth_row6.html
-summary_table_footer
-echo " Red Hat (CentOS Linux release 7.4.1708) -- Summary
" >> ./build_results.html
+ if [ -f archives/gnb_usrp/nr-softmodem.Rel15.txt ]
+ then
+ 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 "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 "Parameters Lib Config - Release 15" ./archives/gnb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./gnb_usrp_row4.html
+ summary_table_footer
+ fi
-summary_table_header "Red Hat -- OAI Build eNB -- USRP option"
-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_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
-summary_table_footer
+ if [ -f archives/nrue_usrp/nr-uesoftmodem.Rel15.txt ]
+ then
+ 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 "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 "Parameters Lib Config - Release 15" ./archives/nrue_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./nrue_usrp_row4.html
+ summary_table_footer
+ fi
-echo " Details
" >> ./build_results.html
+ 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 "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 "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 "NAS Mesh - Release 15" ./archives/enb_eth/nasmesh.Rel15.txt "Built target nasmesh" ./enb_eth_row6.html
+ summary_table_footer
-for DETAILS_TABLE in `ls ./enb_usrp_row*.html`
-do
- cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./basic_sim_row*.html`
-do
- cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./phy_sim_row*.html`
-do
- cat $DETAILS_TABLE >> ./build_results.html
-done
+ 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 "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 "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 "NAS Mesh - Release 15" ./archives/ue_eth/nasmesh.Rel15.txt "Built target nasmesh" ./ue_eth_row6.html
+ summary_table_footer
-for DETAILS_TABLE in `ls ./gnb_usrp_row*.html`
-do
- cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./nrue_usrp_row*.html`
-do
- cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./enb_eth_row*.html`
-do
- cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./ue_eth_row*.html`
-do
- cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./enb_usrp_rh_row*.html`
-do
- cat $DETAILS_TABLE >> ./build_results.html
-done
-rm -f ./enb_usrp_row*.html ./basic_sim_row*.html ./phy_sim_row*.html ./enb_eth_row*.html ./ue_eth_row*.html ./enb_usrp_rh_row*.html
+ if [ -e ./archives/red_hat ]
+ then
+ echo " Red Hat (CentOS Linux release 7.4.1708) -- Summary
" >> ./build_results.html
-echo "" >> ./build_results.html
-echo "" >> ./build_results.html
+ summary_table_header "Red Hat -- OAI Build eNB -- USRP option"
+ 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_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
+ summary_table_footer
+ fi
-exit 0
+ echo " Details
" >> ./build_results.html
+
+ for DETAILS_TABLE in `ls ./enb_usrp_row*.html`
+ do
+ cat $DETAILS_TABLE >> ./build_results.html
+ done
+ for DETAILS_TABLE in `ls ./basic_sim_row*.html`
+ do
+ cat $DETAILS_TABLE >> ./build_results.html
+ done
+ for DETAILS_TABLE in `ls ./phy_sim_row*.html`
+ do
+ cat $DETAILS_TABLE >> ./build_results.html
+ done
+
+ for DETAILS_TABLE in `ls ./gnb_usrp_row*.html`
+ do
+ cat $DETAILS_TABLE >> ./build_results.html
+ done
+ for DETAILS_TABLE in `ls ./nrue_usrp_row*.html`
+ do
+ cat $DETAILS_TABLE >> ./build_results.html
+ done
+ for DETAILS_TABLE in `ls ./enb_eth_row*.html`
+ do
+ cat $DETAILS_TABLE >> ./build_results.html
+ done
+ for DETAILS_TABLE in `ls ./ue_eth_row*.html`
+ do
+ cat $DETAILS_TABLE >> ./build_results.html
+ done
+ if [ -e ./archives/red_hat ]
+ then
+ for DETAILS_TABLE in `ls ./enb_usrp_rh_row*.html`
+ do
+ cat $DETAILS_TABLE >> ./build_results.html
+ done
+ fi
+ rm -f ./*_row*.html
+
+ echo "" >> ./build_results.html
+ echo "" >> ./build_results.html
+}
diff --git a/ci-scripts/reportTestLocally.sh b/ci-scripts/reportTestLocally.sh
index e00956199c..7bbf52ca2b 100755
--- a/ci-scripts/reportTestLocally.sh
+++ b/ci-scripts/reportTestLocally.sh
@@ -20,14 +20,13 @@
# * contact@openairinterface.org
# */
-function usage {
- echo "OAI Test Report script"
+function report_test_usage {
+ echo "OAI CI VM script"
echo " Original Author: Raphael Defosseux"
echo ""
echo "Usage:"
echo "------"
- echo ""
- echo " reportTestLocally.sh [OPTIONS]"
+ echo " oai-ci-vm-tool report-test [OPTIONS]"
echo ""
echo "Options:"
echo "--------"
@@ -47,6 +46,9 @@ function usage {
echo " --build-id #### OR -id ####"
echo " Specify the build ID of the Jenkins job."
echo ""
+ echo " --workspace #### OR -ws ####"
+ echo " Specify the workspace."
+ 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."
@@ -78,513 +80,375 @@ function usage {
echo ""
}
-function trigger_usage {
- echo "OAI Test Report script"
- echo " Original Author: Raphael Defosseux"
- 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 ""
-}
+function report_test {
+ echo "############################################################"
+ echo "OAI CI VM script"
+ echo "############################################################"
-jb_checker=0
-mr_checker=0
-pu_checker=0
-MR_TRIG=0
-PU_TRIG=0
-while [[ $# -gt 0 ]]
-do
-key="$1"
+ echo "JENKINS_WKSP = $JENKINS_WKSP"
-case $key in
- -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
-
-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
- echo ""
- echo "Syntax Error: missing merge-request information."
- # TODO : list missing info
- echo ""
- exit 1
- fi
-fi
-
-echo "" > ./test_simulator_results.html
-echo "" >> ./test_simulator_results.html
-echo "" >> ./test_simulator_results.html
-echo " Simulator Results for $JOB_NAME job build #$BUILD_ID" >> ./test_simulator_results.html
-echo " " >> ./test_simulator_results.html
-echo "" >> ./test_simulator_results.html
-echo "" >> ./test_simulator_results.html
-echo " " >> ./test_simulator_results.html
-echo "
" >> ./test_simulator_results.html
-echo " " >> ./test_simulator_results.html
-echo " " >> ./test_simulator_results.html
-echo " | Build Start Time (UTC) | " >> ./test_simulator_results.html
-echo " TEMPLATE_BUILD_TIME | " >> ./test_simulator_results.html
-echo "
" >> ./test_simulator_results.html
-echo " " >> ./test_simulator_results.html
-echo " | GIT Repository | " >> ./test_simulator_results.html
-echo " $GIT_URL | " >> ./test_simulator_results.html
-echo "
" >> ./test_simulator_results.html
-echo " " >> ./test_simulator_results.html
-echo " | Job Trigger | " >> ./test_simulator_results.html
-if [ $PU_TRIG -eq 1 ]; then echo " Push Event | " >> ./test_simulator_results.html; fi
-if [ $MR_TRIG -eq 1 ]; then echo " Merge-Request | " >> ./test_simulator_results.html; fi
-echo "
" >> ./test_simulator_results.html
-if [ $PU_TRIG -eq 1 ]
-then
- echo " " >> ./test_simulator_results.html
- echo " | Branch | " >> ./test_simulator_results.html
- echo " $SOURCE_BRANCH | " >> ./test_simulator_results.html
- echo "
" >> ./test_simulator_results.html
- echo " " >> ./test_simulator_results.html
- echo " | Commit ID | " >> ./test_simulator_results.html
- echo " $SOURCE_COMMIT_ID | " >> ./test_simulator_results.html
- echo "
" >> ./test_simulator_results.html
-fi
-if [ $MR_TRIG -eq 1 ]
-then
- echo " " >> ./test_simulator_results.html
- echo " | Source Branch | " >> ./test_simulator_results.html
- echo " $SOURCE_BRANCH | " >> ./test_simulator_results.html
- echo "
" >> ./test_simulator_results.html
- echo " " >> ./test_simulator_results.html
- echo " | Source Commit ID | " >> ./test_simulator_results.html
- echo " $SOURCE_COMMIT_ID | " >> ./test_simulator_results.html
- echo "
" >> ./test_simulator_results.html
- echo " " >> ./test_simulator_results.html
- echo " | Target Branch | " >> ./test_simulator_results.html
- echo " $TARGET_BRANCH | " >> ./test_simulator_results.html
- echo "
" >> ./test_simulator_results.html
- echo " " >> ./test_simulator_results.html
- echo " | Target Commit ID | " >> ./test_simulator_results.html
- echo " $TARGET_COMMIT_ID | " >> ./test_simulator_results.html
- echo "
" >> ./test_simulator_results.html
-fi
-echo "
" >> ./test_simulator_results.html
-echo " Test Summary
" >> ./test_simulator_results.html
-
-ARCHIVES_LOC=archives/basic_sim/test
-if [ -d $ARCHIVES_LOC ]
-then
- echo " Basic Simulator Check
" >> ./test_simulator_results.html
+ cd ${JENKINS_WKSP}
+ echo "" > ./test_simulator_results.html
+ echo "" >> ./test_simulator_results.html
+ echo "" >> ./test_simulator_results.html
+ echo " Simulator Results for $JOB_NAME job build #$BUILD_ID" >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ echo "" >> ./test_simulator_results.html
+ echo "" >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
echo " " >> ./test_simulator_results.html
- echo " " >> ./test_simulator_results.html
- echo " | Log File Name | " >> ./test_simulator_results.html
- echo " Command | " >> ./test_simulator_results.html
- echo " Status | " >> ./test_simulator_results.html
- echo " Statistics | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+ echo " | Build Start Time (UTC) | " >> ./test_simulator_results.html
+ echo " TEMPLATE_BUILD_TIME | " >> ./test_simulator_results.html
echo "
" >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ echo " | GIT Repository | " >> ./test_simulator_results.html
+ echo " $GIT_URL | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ echo " | Job Trigger | " >> ./test_simulator_results.html
+ if [ $PU_TRIG -eq 1 ]; then echo " Push Event | " >> ./test_simulator_results.html; fi
+ if [ $MR_TRIG -eq 1 ]; then echo " Merge-Request | " >> ./test_simulator_results.html; fi
+ echo "
" >> ./test_simulator_results.html
+ if [ $PU_TRIG -eq 1 ]
+ then
+ echo " " >> ./test_simulator_results.html
+ echo " | Branch | " >> ./test_simulator_results.html
+ echo " $SOURCE_BRANCH | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ echo " | Commit ID | " >> ./test_simulator_results.html
+ echo " $SOURCE_COMMIT_ID | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+ fi
+ if [ $MR_TRIG -eq 1 ]
+ then
+ echo " " >> ./test_simulator_results.html
+ echo " | Source Branch | " >> ./test_simulator_results.html
+ echo " $SOURCE_BRANCH | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ echo " | Source Commit ID | " >> ./test_simulator_results.html
+ echo " $SOURCE_COMMIT_ID | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ echo " | Target Branch | " >> ./test_simulator_results.html
+ echo " $TARGET_BRANCH | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ echo " | Target Commit ID | " >> ./test_simulator_results.html
+ echo " $TARGET_COMMIT_ID | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+ fi
+ echo "
" >> ./test_simulator_results.html
+ echo " Test Summary
" >> ./test_simulator_results.html
- TRANS_MODES=("fdd" "tdd")
- BW_CASES=(05 10 20)
- for TMODE in ${TRANS_MODES[@]}
- do
- for BW in ${BW_CASES[@]}
+ ARCHIVES_LOC=archives/basic_sim/test
+ if [ -d $ARCHIVES_LOC ]
+ then
+ echo " Basic Simulator Check
" >> ./test_simulator_results.html
+
+ echo " " >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ echo " | Log File Name | " >> ./test_simulator_results.html
+ echo " Command | " >> ./test_simulator_results.html
+ echo " Status | " >> ./test_simulator_results.html
+ echo " Statistics | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+
+ TRANS_MODES=("fdd" "tdd")
+ BW_CASES=(05 10 20)
+ for TMODE in ${TRANS_MODES[@]}
do
- ENB_LOG=$ARCHIVES_LOC/${TMODE}_${BW}MHz_enb.log
- UE_LOG=`echo $ENB_LOG | sed -e "s#enb#ue#"`
- if [ -f $ENB_LOG ] && [ -f $UE_LOG ]
- then
- NAME_ENB=`echo $ENB_LOG | sed -e "s#$ARCHIVES_LOC/##"`
- NAME_UE=`echo $UE_LOG | sed -e "s#$ARCHIVES_LOC/##"`
- echo " " >> ./test_simulator_results.html
- echo " | $NAME_ENB --- $NAME_UE | " >> ./test_simulator_results.html
- echo " N/A | " >> ./test_simulator_results.html
- NB_ENB_GOT_SYNC=`egrep -c "got sync" $ENB_LOG`
- NB_UE_GOT_SYNC=`egrep -c "got sync" $UE_LOG`
- NB_ENB_SYNCED_WITH_UE=`egrep -c "got UE capabilities for UE" $ENB_LOG`
- if [ $NB_ENB_GOT_SYNC -eq 1 ] && [ $NB_UE_GOT_SYNC -eq 2 ] && [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
+ for BW in ${BW_CASES[@]}
+ do
+ ENB_LOG=$ARCHIVES_LOC/${TMODE}_${BW}MHz_enb.log
+ UE_LOG=`echo $ENB_LOG | sed -e "s#enb#ue#"`
+ if [ -f $ENB_LOG ] && [ -f $UE_LOG ]
then
- echo " OK | " >> ./test_simulator_results.html
- else
- echo " KO | " >> ./test_simulator_results.html
- fi
- echo " " >> ./test_simulator_results.html
- if [ $NB_ENB_GOT_SYNC -eq 1 ]
- then
- echo "- eNB --> got sync" >> ./test_simulator_results.html
- else
- echo "- eNB NEVER got sync" >> ./test_simulator_results.html
- fi
- if [ $NB_UE_GOT_SYNC -eq 2 ]
- then
- echo "- UE --> got sync" >> ./test_simulator_results.html
- else
- echo "- UE NEVER got sync" >> ./test_simulator_results.html
- fi
- if [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
- then
- echo "- UE attached to eNB" >> ./test_simulator_results.html
- else
- echo "- UE NEVER attached to eNB" >> ./test_simulator_results.html
- fi
- NB_SEGFAULT_ENB=`egrep -i -c "Segmentation Fault" $ENB_LOG`
- if [ $NB_SEGFAULT_ENB -ne 0 ]
- then
- echo "- eNB --> Segmentation Fault" >> ./test_simulator_results.html
- fi
- NB_SEGFAULT_UE=`egrep -i -c "Segmentation Fault" $UE_LOG`
- if [ $NB_SEGFAULT_UE -ne 0 ]
- then
- echo "- UE --> Segmentation Fault" >> ./test_simulator_results.html
- fi
- NB_ASSERTION_ENB=`egrep -i -c "Assertion" $ENB_LOG`
- if [ $NB_ASSERTION_ENB -ne 0 ]
- then
- echo "- eNB --> Assertion" >> ./test_simulator_results.html
- awk 'BEGIN{assertion=10}{if(assertion < 3){print " " $0; assertion++};if ($0 ~/Assertion/){print " " $0;assertion=1}}END{}' $ENB_LOG >> ./test_simulator_results.html
- fi
- NB_ASSERTION_UE=`egrep -i -c "Assertion" $UE_LOG`
- if [ $NB_ASSERTION_UE -ne 0 ]
- then
- echo "- eNB --> Assertion" >> ./test_simulator_results.html
- awk 'BEGIN{assertion=10}{if(assertion < 3){print " " $0; assertion++};if ($0 ~/Assertion/){print " " $0;assertion=1}}END{}' $UE_LOG >> ./test_simulator_results.html
- fi
- echo " | " >> ./test_simulator_results.html
- echo "
" >> ./test_simulator_results.html
- fi
- PING_CASE=$ARCHIVES_LOC/${TMODE}_${BW}MHz_ping_ue.txt
- if [ -f $PING_CASE ]
- then
- echo " " >> ./test_simulator_results.html
- NAME=`echo $PING_CASE | sed -e "s#$ARCHIVES_LOC/##"`
- echo " | $NAME | " >> ./test_simulator_results.html
- CMD=`egrep "COMMAND IS" $PING_CASE | sed -e "s#COMMAND IS: ##"`
- echo " $CMD | " >> ./test_simulator_results.html
- FILE_COMPLETE=`egrep -c "ping statistics" $PING_CASE`
- if [ $FILE_COMPLETE -eq 0 ]
- then
- echo " KO | " >> ./test_simulator_results.html
+ NAME_ENB=`echo $ENB_LOG | sed -e "s#$ARCHIVES_LOC/##"`
+ NAME_UE=`echo $UE_LOG | sed -e "s#$ARCHIVES_LOC/##"`
+ echo "
" >> ./test_simulator_results.html
+ echo " | $NAME_ENB --- $NAME_UE | " >> ./test_simulator_results.html
echo " N/A | " >> ./test_simulator_results.html
- else
- NB_TR_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s# packets transmitted.*##"`
- NB_RC_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*packets transmitted, ##" -e "s# received,.*##"`
- if [ $NB_TR_PACKETS -eq $NB_RC_PACKETS ]
+ NB_ENB_GOT_SYNC=`egrep -c "got sync" $ENB_LOG`
+ NB_UE_GOT_SYNC=`egrep -c "got sync" $UE_LOG`
+ NB_ENB_SYNCED_WITH_UE=`egrep -c "got UE capabilities for UE" $ENB_LOG`
+ if [ $NB_ENB_GOT_SYNC -eq 1 ] && [ $NB_UE_GOT_SYNC -eq 2 ] && [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
then
echo " OK | " >> ./test_simulator_results.html
else
echo " KO | " >> ./test_simulator_results.html
fi
+ echo " " >> ./test_simulator_results.html
+ if [ $NB_ENB_GOT_SYNC -eq 1 ]
+ then
+ echo "- eNB --> got sync" >> ./test_simulator_results.html
+ else
+ echo "- eNB NEVER got sync" >> ./test_simulator_results.html
+ fi
+ if [ $NB_UE_GOT_SYNC -eq 2 ]
+ then
+ echo "- UE --> got sync" >> ./test_simulator_results.html
+ else
+ echo "- UE NEVER got sync" >> ./test_simulator_results.html
+ fi
+ if [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
+ then
+ echo "- UE attached to eNB" >> ./test_simulator_results.html
+ else
+ echo "- UE NEVER attached to eNB" >> ./test_simulator_results.html
+ fi
+ NB_SEGFAULT_ENB=`egrep -i -c "Segmentation Fault" $ENB_LOG`
+ if [ $NB_SEGFAULT_ENB -ne 0 ]
+ then
+ echo "- eNB --> Segmentation Fault" >> ./test_simulator_results.html
+ fi
+ NB_SEGFAULT_UE=`egrep -i -c "Segmentation Fault" $UE_LOG`
+ if [ $NB_SEGFAULT_UE -ne 0 ]
+ then
+ echo "- UE --> Segmentation Fault" >> ./test_simulator_results.html
+ fi
+ NB_ASSERTION_ENB=`egrep -i -c "Assertion" $ENB_LOG`
+ if [ $NB_ASSERTION_ENB -ne 0 ]
+ then
+ echo "- eNB --> Assertion" >> ./test_simulator_results.html
+ awk 'BEGIN{assertion=10}{if(assertion < 3){print " " $0; assertion++};if ($0 ~/Assertion/){print " " $0;assertion=1}}END{}' $ENB_LOG >> ./test_simulator_results.html
+ fi
+ NB_ASSERTION_UE=`egrep -i -c "Assertion" $UE_LOG`
+ if [ $NB_ASSERTION_UE -ne 0 ]
+ then
+ echo "- eNB --> Assertion" >> ./test_simulator_results.html
+ awk 'BEGIN{assertion=10}{if(assertion < 3){print " " $0; assertion++};if ($0 ~/Assertion/){print " " $0;assertion=1}}END{}' $UE_LOG >> ./test_simulator_results.html
+ fi
+ echo " | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+ fi
+ PING_CASE=$ARCHIVES_LOC/${TMODE}_${BW}MHz_ping_ue.txt
+ if [ -f $PING_CASE ]
+ then
+ echo " " >> ./test_simulator_results.html
+ NAME=`echo $PING_CASE | sed -e "s#$ARCHIVES_LOC/##"`
+ echo " | $NAME | " >> ./test_simulator_results.html
+ CMD=`egrep "COMMAND IS" $PING_CASE | sed -e "s#COMMAND IS: ##"`
+ echo " $CMD | " >> ./test_simulator_results.html
+ FILE_COMPLETE=`egrep -c "ping statistics" $PING_CASE`
+ if [ $FILE_COMPLETE -eq 0 ]
+ then
+ echo " KO | " >> ./test_simulator_results.html
+ echo " N/A | " >> ./test_simulator_results.html
+ else
+ NB_TR_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s# packets transmitted.*##"`
+ NB_RC_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*packets transmitted, ##" -e "s# received,.*##"`
+ if [ $NB_TR_PACKETS -eq $NB_RC_PACKETS ]
+ then
+ echo " OK | " >> ./test_simulator_results.html
+ else
+ echo " KO | " >> ./test_simulator_results.html
+ fi
+ echo " " >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ STATS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*received, ##" -e "s#, time.*##" -e "s# packet loss##"`
+ echo "Packet Loss : $STATS" >> ./test_simulator_results.html
+ RTTMIN=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[1] " " $5}'`
+ echo "RTT Minimal : $RTTMIN" >> ./test_simulator_results.html
+ RTTAVG=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[2] " " $5}'`
+ echo "RTT Average : $RTTAVG" >> ./test_simulator_results.html
+ RTTMAX=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[3] " " $5}'`
+ echo "RTT Maximal : $RTTMAX" >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ echo " | " >> ./test_simulator_results.html
+ fi
+ echo "
" >> ./test_simulator_results.html
+ fi
+
+ if [ -f $ARCHIVES_LOC/${TMODE}_${BW}*iperf*dl*client*txt ]
+ then
+ IPERF_TESTS=`ls $ARCHIVES_LOC/${TMODE}_${BW}*iperf*client*txt`
+ else
+ echo "There are no iperf files"
+ IPERF_TESTS=""
+ fi
+ for IPERF_CASE in $IPERF_TESTS
+ do
+ echo " " >> ./test_simulator_results.html
+ NAME=`echo $IPERF_CASE | sed -e "s#$ARCHIVES_LOC/##"`
+ echo " | $NAME | " >> ./test_simulator_results.html
+ CMD=`egrep "COMMAND IS" $IPERF_CASE | sed -e "s#COMMAND IS: ##"`
+ echo " $CMD | " >> ./test_simulator_results.html
+ REQ_BITRATE=`echo $CMD | sed -e "s#^.*-b ##" -e "s#-i 1.*##"`
+ if [[ $REQ_BITRATE =~ .*K.* ]]
+ then
+ REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#K##"`
+ FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000.0" | bc -l`
+ fi
+ if [[ $REQ_BITRATE =~ .*M.* ]]
+ then
+ REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#M##"`
+ FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000000.0" | bc -l`
+ fi
+ if [[ $REQ_BITRATE =~ .*G.* ]]
+ then
+ REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#G##"`
+ FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000000000.0" | bc -l`
+ fi
+ FILE_COMPLETE=`egrep -c "Server Report" $IPERF_CASE`
+ if [ $FILE_COMPLETE -eq 0 ]
+ then
+ echo " KO | " >> ./test_simulator_results.html
+ SERVER_FILE=`echo $IPERF_CASE | sed -e "s#client#server#"`
+ FLOAT_EFF_BITRATE=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*Bytes *##" -e "s#sec *.*#sec#" | awk 'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; printf "%.0f", br}'`
+ EFFECTIVE_BITRATE=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*Bytes *##" -e "s#sec *.*#sec#" | awk 'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; if(br>1000000){printf "%.2f MBits/sec", br/1000000}}'`
+ PERF=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.2f", $0}'`
+ JITTER=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*/sec *##" -e "s# *ms.*##" | awk 'BEGIN{s=0;n=0}{n++;s+=$1}END{jitter=s/n; printf "%.3f ms", jitter}'`
+ PACKETLOSS_NOSIGN=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*(##" -e "s#%.*##" | awk 'BEGIN{s=0;n=0}{n++;s+=$1}END{per=s/n; printf "%.1f", per}'`
+ PACKETLOSS=`echo "${PACKETLOSS_NOSIGN}%"`
+ else
+ EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
+ if [[ $EFFECTIVE_BITRATE =~ .*Kbits/sec.* ]]
+ then
+ EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Kbits/sec.*##"`
+ FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000" | bc -l`
+ fi
+ if [[ $EFFECTIVE_BITRATE =~ .*Mbits/sec.* ]]
+ then
+ EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Mbits/sec.*##"`
+ FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000000" | bc -l`
+ fi
+ if [[ $EFFECTIVE_BITRATE =~ .*Gbits/sec.* ]]
+ then
+ EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Gbits/sec.*##"`
+ FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000000000" | bc -l`
+ fi
+ PERF=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.2f", $0}'`
+ PERF_INT=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.0f", $0}'`
+ if [[ $PERF_INT -lt 90 ]]
+ then
+ echo " KO | " >> ./test_simulator_results.html
+ else
+ echo " OK | " >> ./test_simulator_results.html
+ fi
+ EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
+ JITTER=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*Mbits/sec *##" -e "s#ms.*#ms#"`
+ PACKETLOSS=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*(##" -e "s#).*##"`
+ fi
echo " " >> ./test_simulator_results.html
echo " " >> ./test_simulator_results.html
- STATS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*received, ##" -e "s#, time.*##" -e "s# packet loss##"`
- echo "Packet Loss : $STATS" >> ./test_simulator_results.html
- RTTMIN=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[1] " " $5}'`
- echo "RTT Minimal : $RTTMIN" >> ./test_simulator_results.html
- RTTAVG=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[2] " " $5}'`
- echo "RTT Average : $RTTAVG" >> ./test_simulator_results.html
- RTTMAX=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[3] " " $5}'`
- echo "RTT Maximal : $RTTMAX" >> ./test_simulator_results.html
+ echo "Bitrate : $EFFECTIVE_BITRATE" >> ./test_simulator_results.html
+ echo "Bitrate Perf : $PERF %" >> ./test_simulator_results.html
+ echo "Jitter : $JITTER" >> ./test_simulator_results.html
+ echo "Packet Loss : $PACKETLOSS" >> ./test_simulator_results.html
echo " " >> ./test_simulator_results.html
echo " | " >> ./test_simulator_results.html
- fi
- echo "
" >> ./test_simulator_results.html
- fi
-
- if [ -f $ARCHIVES_LOC/${TMODE}_${BW}*iperf*dl*client*txt ]
- then
- IPERF_TESTS=`ls $ARCHIVES_LOC/${TMODE}_${BW}*iperf*client*txt`
- else
- echo "There are no iperf files"
- IPERF_TESTS=""
- fi
- for IPERF_CASE in $IPERF_TESTS
- do
- echo " " >> ./test_simulator_results.html
- NAME=`echo $IPERF_CASE | sed -e "s#$ARCHIVES_LOC/##"`
- echo " | $NAME | " >> ./test_simulator_results.html
- CMD=`egrep "COMMAND IS" $IPERF_CASE | sed -e "s#COMMAND IS: ##"`
- echo " $CMD | " >> ./test_simulator_results.html
- REQ_BITRATE=`echo $CMD | sed -e "s#^.*-b ##" -e "s#-i 1.*##"`
- if [[ $REQ_BITRATE =~ .*K.* ]]
- then
- REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#K##"`
- FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000.0" | bc -l`
- fi
- if [[ $REQ_BITRATE =~ .*M.* ]]
- then
- REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#M##"`
- FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000000.0" | bc -l`
- fi
- if [[ $REQ_BITRATE =~ .*G.* ]]
- then
- REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#G##"`
- FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000000000.0" | bc -l`
- fi
- FILE_COMPLETE=`egrep -c "Server Report" $IPERF_CASE`
- if [ $FILE_COMPLETE -eq 0 ]
- then
- echo " KO | " >> ./test_simulator_results.html
- SERVER_FILE=`echo $IPERF_CASE | sed -e "s#client#server#"`
- FLOAT_EFF_BITRATE=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*Bytes *##" -e "s#sec *.*#sec#" | awk 'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; printf "%.0f", br}'`
- EFFECTIVE_BITRATE=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*Bytes *##" -e "s#sec *.*#sec#" | awk 'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; if(br>1000000){printf "%.2f MBits/sec", br/1000000}}'`
- PERF=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.2f", $0}'`
- JITTER=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*/sec *##" -e "s# *ms.*##" | awk 'BEGIN{s=0;n=0}{n++;s+=$1}END{jitter=s/n; printf "%.3f ms", jitter}'`
- PACKETLOSS_NOSIGN=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*(##" -e "s#%.*##" | awk 'BEGIN{s=0;n=0}{n++;s+=$1}END{per=s/n; printf "%.1f", per}'`
- PACKETLOSS=`echo "${PACKETLOSS_NOSIGN}%"`
- else
- EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
- if [[ $EFFECTIVE_BITRATE =~ .*Kbits/sec.* ]]
- then
- EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Kbits/sec.*##"`
- FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000" | bc -l`
- fi
- if [[ $EFFECTIVE_BITRATE =~ .*Mbits/sec.* ]]
- then
- EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Mbits/sec.*##"`
- FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000000" | bc -l`
- fi
- if [[ $EFFECTIVE_BITRATE =~ .*Gbits/sec.* ]]
- then
- EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Gbits/sec.*##"`
- FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000000000" | bc -l`
- fi
- PERF=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.2f", $0}'`
- PERF_INT=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.0f", $0}'`
- if [[ $PERF_INT -lt 90 ]]
- then
- echo " KO | " >> ./test_simulator_results.html
- else
- echo " OK | " >> ./test_simulator_results.html
- fi
- EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
- JITTER=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*Mbits/sec *##" -e "s#ms.*#ms#"`
- PACKETLOSS=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*(##" -e "s#).*##"`
- fi
- echo " " >> ./test_simulator_results.html
- echo " " >> ./test_simulator_results.html
- echo "Bitrate : $EFFECTIVE_BITRATE" >> ./test_simulator_results.html
- echo "Bitrate Perf : $PERF %" >> ./test_simulator_results.html
- echo "Jitter : $JITTER" >> ./test_simulator_results.html
- echo "Packet Loss : $PACKETLOSS" >> ./test_simulator_results.html
- echo " " >> ./test_simulator_results.html
- echo " | " >> ./test_simulator_results.html
- echo "
" >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ done
done
done
- done
- echo "
" >> ./test_simulator_results.html
-fi
+ echo " " >> ./test_simulator_results.html
+ fi
-ARCHIVES_LOC=archives/phy_sim/test
-if [ -d $ARCHIVES_LOC ]
-then
- echo " Physical Simulators Check
" >> ./test_simulator_results.html
+ ARCHIVES_LOC=archives/phy_sim/test
+ if [ -d $ARCHIVES_LOC ]
+ then
+ echo " Physical Simulators Check
" >> ./test_simulator_results.html
- echo " " >> ./test_simulator_results.html
- echo " " >> ./test_simulator_results.html
- echo " | Log File Name | " >> ./test_simulator_results.html
- echo " Nb Tests | " >> ./test_simulator_results.html
- echo " Nb Errors | " >> ./test_simulator_results.html
- echo " Nb Failures | " >> ./test_simulator_results.html
- echo " Nb Failures | " >> ./test_simulator_results.html
- echo "
" >> ./test_simulator_results.html
-
- XML_TESTS=`ls $ARCHIVES_LOC/*xml`
- for XML_FILE in $XML_TESTS
- do
- echo " " >> ./test_simulator_results.html
- NAME=`echo $XML_FILE | sed -e "s#$ARCHIVES_LOC/##"`
- NB_TESTS=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*tests='##" -e "s#' *time=.*##"`
- NB_ERRORS=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*errors='##" -e "s#' *failures=.*##"`
- NB_FAILURES=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*failures='##" -e "s#' *hostname=.*##"`
- NB_SKIPPED=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*skipped='##" -e "s#' *tests=.*##"`
- if [ $NB_ERRORS -eq 0 ] && [ $NB_FAILURES -eq 0 ]
- then
- echo " | $NAME | " >> ./test_simulator_results.html
- else
- echo " $NAME | " >> ./test_simulator_results.html
- fi
- echo " $NB_TESTS | " >> ./test_simulator_results.html
- echo " $NB_ERRORS | " >> ./test_simulator_results.html
- echo " $NB_FAILURES | " >> ./test_simulator_results.html
- echo " $NB_SKIPPED | " >> ./test_simulator_results.html
- echo "
" >> ./test_simulator_results.html
- done
-
- echo "
" >> ./test_simulator_results.html
-
- echo " Details
" >> ./test_simulator_results.html
- for XML_FILE in $XML_TESTS
- do
echo " " >> ./test_simulator_results.html
echo " " >> ./test_simulator_results.html
- echo " | Test Name | " >> ./test_simulator_results.html
- echo " Description | " >> ./test_simulator_results.html
- echo " Result | " >> ./test_simulator_results.html
- echo " Time | " >> ./test_simulator_results.html
+ echo " Log File Name | " >> ./test_simulator_results.html
+ echo " Nb Tests | " >> ./test_simulator_results.html
+ echo " Nb Errors | " >> ./test_simulator_results.html
+ echo " Nb Failures | " >> ./test_simulator_results.html
+ echo " Nb Failures | " >> ./test_simulator_results.html
echo "
" >> ./test_simulator_results.html
- TESTCASES_LIST=`sed -e "s# #@#g" $XML_FILE | grep testcase`
- for TESTCASE in $TESTCASES_LIST
+
+ XML_TESTS=`ls $ARCHIVES_LOC/*xml`
+ for XML_FILE in $XML_TESTS
do
echo " " >> ./test_simulator_results.html
- NAME=`echo $TESTCASE | sed -e "s#^.*name='##" -e "s#'@description=.*##" | sed -e "s#@# #g"`
- echo " | $NAME | " >> ./test_simulator_results.html
- DESC=`echo $TESTCASE | sed -e "s#^.*description='##" -e "s#'@Run_result=.*##" | sed -e "s#@# #g"`
- echo " $DESC | " >> ./test_simulator_results.html
- RESULT=`echo $TESTCASE | sed -e "s#^.*RESULT='##" -e "s#'.*##" | sed -e "s#@# #g"`
- if [[ $RESULT =~ .*PASS.* ]]
+ NAME=`echo $XML_FILE | sed -e "s#$ARCHIVES_LOC/##"`
+ NB_TESTS=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*tests='##" -e "s#' *time=.*##"`
+ NB_ERRORS=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*errors='##" -e "s#' *failures=.*##"`
+ NB_FAILURES=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*failures='##" -e "s#' *hostname=.*##"`
+ NB_SKIPPED=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*skipped='##" -e "s#' *tests=.*##"`
+ if [ $NB_ERRORS -eq 0 ] && [ $NB_FAILURES -eq 0 ]
then
- echo " $RESULT | " >> ./test_simulator_results.html
+ echo " $NAME | " >> ./test_simulator_results.html
else
- echo " $RESULT | " >> ./test_simulator_results.html
+ echo " $NAME | " >> ./test_simulator_results.html
fi
- TIME=`echo $TESTCASE | sed -e "s#^.*time='##" -e "s#'@RESULT=.*##" | sed -e "s#@# #g"`
- echo " $TIME | " >> ./test_simulator_results.html
+ echo " $NB_TESTS | " >> ./test_simulator_results.html
+ echo " $NB_ERRORS | " >> ./test_simulator_results.html
+ echo " $NB_FAILURES | " >> ./test_simulator_results.html
+ echo " $NB_SKIPPED | " >> ./test_simulator_results.html
echo "
" >> ./test_simulator_results.html
done
+
echo "
" >> ./test_simulator_results.html
- done
-fi
-echo "" >> ./test_simulator_results.html
-echo "" >> ./test_simulator_results.html
+ echo " Details
" >> ./test_simulator_results.html
+ for XML_FILE in $XML_TESTS
+ do
+ echo " " >> ./test_simulator_results.html
+ echo " " >> ./test_simulator_results.html
+ echo " | Test Name | " >> ./test_simulator_results.html
+ echo " Description | " >> ./test_simulator_results.html
+ echo " Result | " >> ./test_simulator_results.html
+ echo " Time | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+ PREV_SECTION=0
+ PREV_TIME_IN_SECS=0
+ TESTCASES_LIST=`sed -e "s# #@#g" $XML_FILE | grep testcase`
+ for TESTCASE in $TESTCASES_LIST
+ do
+ NAME=`echo $TESTCASE | sed -e "s#^.*name='##" -e "s#'@description=.*##" | sed -e "s#@# #g"`
+ SECTION=`echo $NAME | sed -e "s#\..*##"`
+ if [ $SECTION != $PREV_SECTION ]
+ then
+ echo " " >> ./test_simulator_results.html
+ echo " | \"$SECTION\" series | " >> ./test_simulator_results.html
+ echo "
" >> ./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"`
+ 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 " " >> ./test_simulator_results.html
+ echo " | $NAME | " >> ./test_simulator_results.html
+ echo " $DESC | " >> ./test_simulator_results.html
+ if [[ $RESULT =~ .*PASS.* ]]
+ then
+ echo " $RESULT | " >> ./test_simulator_results.html
+ else
+ 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 " ${RESULT} (${NB_FAILS}/${NB_RUNS}) | " >> ./test_simulator_results.html
+ fi
+ echo " $TIME | " >> ./test_simulator_results.html
+ echo "
" >> ./test_simulator_results.html
+ done
+ echo "
" >> ./test_simulator_results.html
+ done
+ fi
-exit 0
+ echo "" >> ./test_simulator_results.html
+ echo "" >> ./test_simulator_results.html
+}
diff --git a/ci-scripts/runTestOnVM.sh b/ci-scripts/runTestOnVM.sh
index 0d4f116179..527fe48edb 100755
--- a/ci-scripts/runTestOnVM.sh
+++ b/ci-scripts/runTestOnVM.sh
@@ -20,15 +20,18 @@
# * contact@openairinterface.org
# */
-function usage {
- echo "OAI VM Test Run script"
+function run_test_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 " Default:"
echo " -- eNB with USRP"
echo ""
echo "Usage:"
echo "------"
- echo " runTestOnVM.sh [OPTIONS]"
+ echo " oai-ci-vm-tool test [OPTIONS]"
echo ""
echo "Options:"
echo "--------"
@@ -41,12 +44,7 @@ function usage {
echo " --workspace #### OR -ws ####"
echo " Specify the workspace."
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"
+ variant_usage
echo " Specify the variant to build."
echo ""
echo " --keep-vm-alive OR -k"
@@ -57,19 +55,6 @@ function usage {
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 {
local LOC_VM_IP_ADDR=$2
local LOC_EPC_IP_ADDR=$3
@@ -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 "chmod 775 ./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
ssh -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1
@@ -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 "chmod 775 ./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
ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
@@ -299,740 +286,619 @@ function terminate_ltebox_epc {
rm $1
}
-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
-ARCHIVES_LOC=enb_usrp/test
-KEEP_VM_ALIVE=0
-RUN_OPTIONS="none"
-STATUS=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
- 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"
- exit $STATUS
-fi
-
-if [[ $RUN_OPTIONS =~ .*run_exec_autotests.* ]]
-then
+function run_test_on_vm {
echo "############################################################"
- echo "Running test script on VM ($VM_NAME)"
+ echo "OAI CI VM script"
echo "############################################################"
- echo "echo \"sudo apt-get --yes --quiet install bc \"" > $VM_CMDS
- echo "sudo apt-get update > bc-install.txt 2>&1" >> $VM_CMDS
- echo "sudo apt-get --yes install bc >> bc-install.txt 2>&1" >> $VM_CMDS
- echo "cd tmp" >> $VM_CMDS
- echo "echo \"source oaienv\"" >> $VM_CMDS
- echo "source oaienv" >> $VM_CMDS
- echo "echo \"cd cmake_targets/autotests\"" >> $VM_CMDS
- echo "cd cmake_targets/autotests" >> $VM_CMDS
- echo "echo \"rm -Rf log\"" >> $VM_CMDS
- echo "rm -Rf log" >> $VM_CMDS
- echo "$RUN_OPTIONS" | sed -e 's@"@\\"@g' -e 's@^@echo "@' -e 's@$@"@' >> $VM_CMDS
- echo "$RUN_OPTIONS" >> $VM_CMDS
- echo "cp /home/ubuntu/bc-install.txt log" >> $VM_CMDS
- echo "cd log" >> $VM_CMDS
- echo "zip -r -qq tmp.zip *.* 0*" >> $VM_CMDS
-
- ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
+ echo "VM_NAME = $VM_NAME"
+ echo "VM_CMD_FILE = $VM_CMDS"
+ echo "JENKINS_WKSP = $JENKINS_WKSP"
+ echo "ARCHIVES_LOC = $ARCHIVES_LOC"
echo "############################################################"
- echo "Creating a tmp folder to store results and artifacts"
+ echo "Waiting for VM to be started"
echo "############################################################"
+ uvt-kvm wait $VM_NAME --insecure
- if [ -d $ARCHIVES_LOC ]
+ VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
+ echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
+
+ if [ "$RUN_OPTIONS" == "none" ]
then
- rm -Rf $ARCHIVES_LOC
+ echo "No run on VM testing for this variant currently"
+ exit $STATUS
fi
- mkdir --parents $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/autotests/log/tmp.zip $ARCHIVES_LOC
- pushd $ARCHIVES_LOC
- unzip -qq -DD tmp.zip
- rm tmp.zip
- if [ -f results_autotests.xml ]
- then
- FUNCTION=`echo $VM_NAME | sed -e "s@$VM_TEMPLATE@@"`
- NEW_NAME=`echo "results_autotests.xml" | sed -e "s@results_autotests@results_autotests-$FUNCTION@"`
- echo "" > $NEW_NAME
- echo "" >> $NEW_NAME
- cat results_autotests.xml >> $NEW_NAME
- sed -e "s@TEMPLATE@$FUNCTION@" $JENKINS_WKSP/ci-scripts/template.xsl > $FUNCTION.xsl
- #mv results_autotests.xml $NEW_NAME
- rm results_autotests.xml
- fi
- popd
-
- if [ $KEEP_VM_ALIVE -eq 0 ]
+ if [[ $RUN_OPTIONS =~ .*run_exec_autotests.* ]]
then
echo "############################################################"
- echo "Destroying VM"
+ echo "Running test script on VM ($VM_NAME)"
echo "############################################################"
- uvt-kvm destroy $VM_NAME
- ssh-keygen -R $VM_IP_ADDR
- fi
- rm -f $VM_CMDS
+ echo "echo \"sudo apt-get --yes --quiet install bc \"" > $VM_CMDS
+ echo "sudo apt-get update > bc-install.txt 2>&1" >> $VM_CMDS
+ echo "sudo apt-get --yes install bc >> bc-install.txt 2>&1" >> $VM_CMDS
+ echo "cd tmp" >> $VM_CMDS
+ echo "echo \"source oaienv\"" >> $VM_CMDS
+ echo "source oaienv" >> $VM_CMDS
+ echo "echo \"cd cmake_targets/autotests\"" >> $VM_CMDS
+ echo "cd cmake_targets/autotests" >> $VM_CMDS
+ echo "echo \"rm -Rf log\"" >> $VM_CMDS
+ echo "rm -Rf log" >> $VM_CMDS
+ echo "$RUN_OPTIONS" | sed -e 's@"@\\"@g' -e 's@^@echo "@' -e 's@$@"@' >> $VM_CMDS
+ echo "$RUN_OPTIONS" >> $VM_CMDS
+ echo "cp /home/ubuntu/bc-install.txt log" >> $VM_CMDS
+ echo "cd log" >> $VM_CMDS
+ echo "zip -r -qq tmp.zip *.* 0*" >> $VM_CMDS
- echo "############################################################"
- echo "Checking run status"
- echo "############################################################"
+ ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
- LOG_FILES=`ls $ARCHIVES_LOC/results_autotests*.xml`
- NB_FOUND_FILES=0
- NB_RUNS=0
- NB_FAILURES=0
+ echo "############################################################"
+ echo "Creating a tmp folder to store results and artifacts"
+ echo "############################################################"
- for FULLFILE in $LOG_FILES
- do
- TESTSUITES=`egrep "testsuite errors" $FULLFILE`
- for TESTSUITE in $TESTSUITES
- do
- if [[ "$TESTSUITE" == *"tests="* ]]
- then
- RUNS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" `
- NB_RUNS=$((NB_RUNS + RUNS))
- fi
- if [[ "$TESTSUITE" == *"failures="* ]]
- then
- FAILS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" `
- NB_FAILURES=$((NB_FAILURES + FAILS))
- fi
- done
- NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
- done
-
- echo "NB_FOUND_FILES = $NB_FOUND_FILES"
- echo "NB_RUNS = $NB_RUNS"
- echo "NB_FAILURES = $NB_FAILURES"
-
- if [ $NB_FOUND_FILES -eq 0 ]; then STATUS=-1; fi
- if [ $NB_RUNS -eq 0 ]; then STATUS=-1; fi
- if [ $NB_FAILURES -ne 0 ]; then STATUS=-1; fi
-
-fi
-
-if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-basic-sim.* ]]
-then
- PING_STATUS=0
- IPERF_STATUS=0
- if [ -d $ARCHIVES_LOC ]
- then
- rm -Rf $ARCHIVES_LOC
- fi
- mkdir --parents $ARCHIVES_LOC
-
- EPC_VM_NAME=`echo $VM_NAME | sed -e "s#basic-sim#epc#"`
- LTEBOX=0
- if [ -d /opt/ltebox-archives/ ]
- then
- # Checking if all ltebox archives are available to run ltebx epc on a brand new VM
- if [ -f /opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb ] && [ -f /opt/ltebox-archives/etc-conf.zip ] && [ -f /opt/ltebox-archives/hss-sim.zip ]
+ if [ -d $ARCHIVES_LOC ]
then
- echo "############################################################"
- echo "Test EPC on VM ($EPC_VM_NAME) will be using ltebox"
- echo "############################################################"
- LTEBOX=1
+ rm -Rf $ARCHIVES_LOC
fi
- fi
- # Here we could have other types of EPC detection
+ mkdir --parents $ARCHIVES_LOC
- # Do we need to start the EPC VM
- EPC_VM_CMDS=`echo $VM_CMDS | sed -e "s#cmds#epc-cmds#"`
- echo "EPC_VM_CMD_FILE = $EPC_VM_CMDS"
- IS_EPC_VM_ALIVE=`uvt-kvm list | grep -c $EPC_VM_NAME`
- if [ $IS_EPC_VM_ALIVE -eq 0 ]
- then
- echo "############################################################"
- echo "Creating test EPC VM ($EPC_VM_NAME) on Ubuntu Cloud Image base"
- echo "############################################################"
- uvt-kvm create $EPC_VM_NAME release=xenial --unsafe-caching
- fi
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/autotests/log/tmp.zip $ARCHIVES_LOC
+ pushd $ARCHIVES_LOC
+ unzip -qq -DD tmp.zip
+ rm tmp.zip
+ if [ -f results_autotests.xml ]
+ then
+ FUNCTION=`echo $VM_NAME | sed -e "s@$VM_TEMPLATE@@"`
+ NEW_NAME=`echo "results_autotests.xml" | sed -e "s@results_autotests@results_autotests-$FUNCTION@"`
+ echo "" > $NEW_NAME
+ echo "" >> $NEW_NAME
+ cat results_autotests.xml >> $NEW_NAME
+ sed -e "s@TEMPLATE@$FUNCTION@" $JENKINS_WKSP/ci-scripts/template.xsl > $FUNCTION.xsl
+ #mv results_autotests.xml $NEW_NAME
+ rm results_autotests.xml
+ fi
+ popd
- uvt-kvm wait $EPC_VM_NAME --insecure
- EPC_VM_IP_ADDR=`uvt-kvm ip $EPC_VM_NAME`
- echo "$EPC_VM_NAME has for IP addr = $EPC_VM_IP_ADDR"
- scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
-
- # ltebox specific actions (install and start)
- LTE_BOX_TO_INSTALL=1
- if [ $LTEBOX -eq 1 ]
- then
- echo "ls -ls /opt/ltebox/tools/start_ltebox" > $EPC_VM_CMDS
- RESPONSE=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
- NB_EXES=`echo $RESPONSE | grep -c ltebox`
- if [ $NB_EXES -eq 1 ]; then LTE_BOX_TO_INSTALL=0; fi
- fi
-
- if [ $LTEBOX -eq 1 ] && [ $LTE_BOX_TO_INSTALL -eq 1 ]
- then
- echo "############################################################"
- echo "Copying ltebox archives into EPC VM ($EPC_VM_NAME)"
- echo "############################################################"
- scp -o StrictHostKeyChecking=no /opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
- scp -o StrictHostKeyChecking=no /opt/ltebox-archives/etc-conf.zip ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
- scp -o StrictHostKeyChecking=no /opt/ltebox-archives/hss-sim.zip ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
-
- echo "############################################################"
- echo "Install EPC on EPC VM ($EPC_VM_NAME)"
- echo "############################################################"
- echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $EPC_VM_CMDS
- echo "touch /home/ubuntu/.hushlogin" >> $EPC_VM_CMDS
- echo "echo \"sudo apt-get --yes --quiet install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf\"" >> $EPC_VM_CMDS
- echo "sudo apt-get update > zip-install.txt 2>&1" >> $EPC_VM_CMDS
- echo "sudo apt-get --yes install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf >> zip-install.txt 2>&1" >> $EPC_VM_CMDS
-
- # Installing HSS
- echo "echo \"cd /opt\"" >> $EPC_VM_CMDS
- echo "cd /opt" >> $EPC_VM_CMDS
- echo "echo \"sudo unzip -qq /home/ubuntu/hss-sim.zip\"" >> $EPC_VM_CMDS
- echo "sudo unzip -qq /home/ubuntu/hss-sim.zip" >> $EPC_VM_CMDS
- echo "echo \"cd /opt/hss_sim0609\"" >> $EPC_VM_CMDS
- echo "cd /opt/hss_sim0609" >> $EPC_VM_CMDS
-
- # Installing ltebox
- echo "echo \"cd /home/ubuntu\"" >> $EPC_VM_CMDS
- echo "cd /home/ubuntu" >> $EPC_VM_CMDS
- echo "echo \"sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb \"" >> $EPC_VM_CMDS
- echo "sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb >> zip-install.txt 2>&1" >> $EPC_VM_CMDS
-
- echo "echo \"cd /opt/ltebox/etc/\"" >> $EPC_VM_CMDS
- echo "cd /opt/ltebox/etc/" >> $EPC_VM_CMDS
- echo "echo \"sudo unzip -qq -o /home/ubuntu/etc-conf.zip\"" >> $EPC_VM_CMDS
- echo "sudo unzip -qq -o /home/ubuntu/etc-conf.zip" >> $EPC_VM_CMDS
- echo "sudo sed -i -e 's#EPC_VM_IP_ADDRESS#$EPC_VM_IP_ADDR#' gw.conf" >> $EPC_VM_CMDS
- echo "sudo sed -i -e 's#EPC_VM_IP_ADDRESS#$EPC_VM_IP_ADDR#' mme.conf" >> $EPC_VM_CMDS
- fi
-
- # Starting EPC
- if [ $LTEBOX -eq 1 ]
- then
- echo "############################################################"
- echo "Start EPC on EPC VM ($EPC_VM_NAME)"
- echo "############################################################"
- echo "echo \"cd /opt/hss_sim0609\"" >> $EPC_VM_CMDS
- echo "cd /opt/hss_sim0609" >> $EPC_VM_CMDS
- echo "echo \"sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real\"" >> $EPC_VM_CMDS
- echo "sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real" >> $EPC_VM_CMDS
-
- echo "echo \"cd /opt/ltebox/tools/\"" >> $EPC_VM_CMDS
- echo "cd /opt/ltebox/tools/" >> $EPC_VM_CMDS
- echo "echo \"sudo ./start_ltebox\"" >> $EPC_VM_CMDS
- echo "nohup sudo ./start_ltebox > /home/ubuntu/ltebox.txt" >> $EPC_VM_CMDS
-
- ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS
- rm -f $EPC_VM_CMDS
-
- # We may have some adaptation to do
- if [ -f /opt/ltebox-archives/adapt_ue_sim.txt ]
+ if [ $KEEP_VM_ALIVE -eq 0 ]
then
echo "############################################################"
- echo "Doing some adaptation on UE side"
+ echo "Destroying VM"
echo "############################################################"
- ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < /opt/ltebox-archives/adapt_ue_sim.txt
+ uvt-kvm destroy $VM_NAME
+ ssh-keygen -R $VM_IP_ADDR
+ fi
+ rm -f $VM_CMDS
+
+ echo "############################################################"
+ echo "Checking run status"
+ echo "############################################################"
+
+ LOG_FILES=`ls $ARCHIVES_LOC/results_autotests*.xml`
+ NB_FOUND_FILES=0
+ NB_RUNS=0
+ NB_FAILURES=0
+
+ for FULLFILE in $LOG_FILES
+ do
+ TESTSUITES=`egrep "testsuite errors" $FULLFILE`
+ for TESTSUITE in $TESTSUITES
+ do
+ if [[ "$TESTSUITE" == *"tests="* ]]
+ then
+ RUNS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" `
+ NB_RUNS=$((NB_RUNS + RUNS))
+ fi
+ if [[ "$TESTSUITE" == *"failures="* ]]
+ then
+ FAILS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" `
+ NB_FAILURES=$((NB_FAILURES + FAILS))
+ fi
+ done
+ NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
+ done
+
+ echo "NB_FOUND_FILES = $NB_FOUND_FILES"
+ echo "NB_RUNS = $NB_RUNS"
+ echo "NB_FAILURES = $NB_FAILURES"
+
+ if [ $NB_FOUND_FILES -eq 0 ]; then STATUS=-1; fi
+ if [ $NB_RUNS -eq 0 ]; then STATUS=-1; fi
+ if [ $NB_FAILURES -ne 0 ]; then STATUS=-1; fi
+
+ fi
+
+ if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-basic-sim.* ]]
+ then
+ PING_STATUS=0
+ IPERF_STATUS=0
+ if [ -d $ARCHIVES_LOC ]
+ then
+ rm -Rf $ARCHIVES_LOC
+ fi
+ mkdir --parents $ARCHIVES_LOC
+
+ EPC_VM_NAME=`echo $VM_NAME | sed -e "s#basic-sim#epc#"`
+ LTEBOX=0
+ if [ -d /opt/ltebox-archives/ ]
+ then
+ # Checking if all ltebox archives are available to run ltebx epc on a brand new VM
+ if [ -f /opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb ] && [ -f /opt/ltebox-archives/etc-conf.zip ] && [ -f /opt/ltebox-archives/hss-sim.zip ]
+ then
+ echo "############################################################"
+ echo "Test EPC on VM ($EPC_VM_NAME) will be using ltebox"
+ echo "############################################################"
+ LTEBOX=1
+ fi
+ fi
+ # Here we could have other types of EPC detection
+
+ # Do we need to start the EPC VM
+ EPC_VM_CMDS=`echo $VM_CMDS | sed -e "s#cmds#epc-cmds#"`
+ echo "EPC_VM_CMD_FILE = $EPC_VM_CMDS"
+ IS_EPC_VM_ALIVE=`uvt-kvm list | grep -c $EPC_VM_NAME`
+ if [ $IS_EPC_VM_ALIVE -eq 0 ]
+ then
+ echo "############################################################"
+ echo "Creating test EPC VM ($EPC_VM_NAME) on Ubuntu Cloud Image base"
+ echo "############################################################"
+ uvt-kvm create $EPC_VM_NAME release=xenial --unsafe-caching
fi
- i="0"
- echo "ifconfig tun5 | egrep -c \"inet addr\"" > $EPC_VM_CMDS
- while [ $i -lt 10 ]
- do
- sleep 2
- CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
- if [ $CONNECTED -eq 1 ]
- then
- i="100"
- else
- i=$[$i+1]
- fi
- done
- rm $EPC_VM_CMDS
- if [ $i -lt 50 ]
+ uvt-kvm wait $EPC_VM_NAME --insecure
+ EPC_VM_IP_ADDR=`uvt-kvm ip $EPC_VM_NAME`
+ echo "$EPC_VM_NAME has for IP addr = $EPC_VM_IP_ADDR"
+ scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
+
+ # ltebox specific actions (install and start)
+ LTE_BOX_TO_INSTALL=1
+ if [ $LTEBOX -eq 1 ]
then
- echo "Problem w/ starting ltebox EPC"
+ echo "ls -ls /opt/ltebox/tools/start_ltebox" > $EPC_VM_CMDS
+ RESPONSE=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
+ NB_EXES=`echo $RESPONSE | grep -c ltebox`
+ if [ $NB_EXES -eq 1 ]; then LTE_BOX_TO_INSTALL=0; fi
+ fi
+
+ if [ $LTEBOX -eq 1 ] && [ $LTE_BOX_TO_INSTALL -eq 1 ]
+ then
+ echo "############################################################"
+ echo "Copying ltebox archives into EPC VM ($EPC_VM_NAME)"
+ echo "############################################################"
+ scp -o StrictHostKeyChecking=no /opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
+ scp -o StrictHostKeyChecking=no /opt/ltebox-archives/etc-conf.zip ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
+ scp -o StrictHostKeyChecking=no /opt/ltebox-archives/hss-sim.zip ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
+
+ echo "############################################################"
+ echo "Install EPC on EPC VM ($EPC_VM_NAME)"
+ echo "############################################################"
+ echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $EPC_VM_CMDS
+ echo "touch /home/ubuntu/.hushlogin" >> $EPC_VM_CMDS
+ echo "echo \"sudo apt-get --yes --quiet install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf\"" >> $EPC_VM_CMDS
+ echo "sudo apt-get update > zip-install.txt 2>&1" >> $EPC_VM_CMDS
+ echo "sudo apt-get --yes install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf >> zip-install.txt 2>&1" >> $EPC_VM_CMDS
+
+ # Installing HSS
+ echo "echo \"cd /opt\"" >> $EPC_VM_CMDS
+ echo "cd /opt" >> $EPC_VM_CMDS
+ echo "echo \"sudo unzip -qq /home/ubuntu/hss-sim.zip\"" >> $EPC_VM_CMDS
+ echo "sudo unzip -qq /home/ubuntu/hss-sim.zip" >> $EPC_VM_CMDS
+ echo "echo \"cd /opt/hss_sim0609\"" >> $EPC_VM_CMDS
+ echo "cd /opt/hss_sim0609" >> $EPC_VM_CMDS
+
+ # Installing ltebox
+ echo "echo \"cd /home/ubuntu\"" >> $EPC_VM_CMDS
+ echo "cd /home/ubuntu" >> $EPC_VM_CMDS
+ echo "echo \"sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb \"" >> $EPC_VM_CMDS
+ echo "sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb >> zip-install.txt 2>&1" >> $EPC_VM_CMDS
+
+ echo "echo \"cd /opt/ltebox/etc/\"" >> $EPC_VM_CMDS
+ echo "cd /opt/ltebox/etc/" >> $EPC_VM_CMDS
+ echo "echo \"sudo unzip -qq -o /home/ubuntu/etc-conf.zip\"" >> $EPC_VM_CMDS
+ echo "sudo unzip -qq -o /home/ubuntu/etc-conf.zip" >> $EPC_VM_CMDS
+ echo "sudo sed -i -e 's#EPC_VM_IP_ADDRESS#$EPC_VM_IP_ADDR#' gw.conf" >> $EPC_VM_CMDS
+ echo "sudo sed -i -e 's#EPC_VM_IP_ADDRESS#$EPC_VM_IP_ADDR#' mme.conf" >> $EPC_VM_CMDS
+ fi
+
+ # Starting EPC
+ if [ $LTEBOX -eq 1 ]
+ then
+ echo "############################################################"
+ echo "Start EPC on EPC VM ($EPC_VM_NAME)"
+ echo "############################################################"
+ echo "echo \"cd /opt/hss_sim0609\"" >> $EPC_VM_CMDS
+ echo "cd /opt/hss_sim0609" >> $EPC_VM_CMDS
+ echo "echo \"sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real\"" >> $EPC_VM_CMDS
+ echo "sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real" >> $EPC_VM_CMDS
+
+ echo "echo \"cd /opt/ltebox/tools/\"" >> $EPC_VM_CMDS
+ echo "cd /opt/ltebox/tools/" >> $EPC_VM_CMDS
+ echo "echo \"sudo ./start_ltebox\"" >> $EPC_VM_CMDS
+ echo "nohup sudo ./start_ltebox > /home/ubuntu/ltebox.txt" >> $EPC_VM_CMDS
+
+ ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS
+ rm -f $EPC_VM_CMDS
+
+ # We may have some adaptation to do
+ if [ -f /opt/ltebox-archives/adapt_ue_sim.txt ]
+ then
+ echo "############################################################"
+ echo "Doing some adaptation on UE side"
+ echo "############################################################"
+ ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < /opt/ltebox-archives/adapt_ue_sim.txt
+ fi
+
+ i="0"
+ echo "ifconfig tun5 | egrep -c \"inet addr\"" > $EPC_VM_CMDS
+ while [ $i -lt 10 ]
+ do
+ sleep 2
+ CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
+ if [ $CONNECTED -eq 1 ]
+ then
+ i="100"
+ else
+ i=$[$i+1]
+ fi
+ done
+ rm $EPC_VM_CMDS
+ if [ $i -lt 50 ]
+ then
+ echo "Problem w/ starting ltebox EPC"
+ exit -1
+ fi
+ fi
+
+ # HERE ADD ANY INSTALL ACTIONS FOR ANOTHER EPC
+
+ # Retrieve EPC real IP address
+ if [ $LTEBOX -eq 1 ]
+ then
+ # in our configuration file, we are using pool 5
+ echo "ifconfig tun5 | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's# P-t-P:.*\$##'" > $EPC_VM_CMDS
+ REAL_EPC_IP_ADDR=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
+ echo "EPC IP Address is : $REAL_EPC_IP_ADDR"
+ rm $EPC_VM_CMDS
+ fi
+
+ echo "############################################################"
+ echo "Starting the eNB in FDD-5MHz mode"
+ echo "############################################################"
+ CURRENT_ENB_LOG_FILE=fdd_05MHz_enb.log
+ start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 25 lte-fdd-basic-sim.conf
+
+ echo "############################################################"
+ echo "Starting the UE in FDD-5MHz mode"
+ echo "############################################################"
+ CURRENT_UE_LOG_FILE=fdd_05MHz_ue.log
+ start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 25 2680
+ if [ $UE_SYNC -eq 0 ]
+ then
+ echo "Problem w/ eNB and UE not syncing"
+ terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+ recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
exit -1
fi
- fi
+ get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
- # HERE ADD ANY INSTALL ACTIONS FOR ANOTHER EPC
+ echo "############################################################"
+ echo "Pinging the UE"
+ echo "############################################################"
+ PING_LOG_FILE=fdd_05MHz_ping_ue.txt
+ ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+ check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
- # Retrieve EPC real IP address
- if [ $LTEBOX -eq 1 ]
- then
- # in our configuration file, we are using pool 5
- echo "ifconfig tun5 | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's# P-t-P:.*\$##'" > $EPC_VM_CMDS
- REAL_EPC_IP_ADDR=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
- echo "EPC IP Address is : $REAL_EPC_IP_ADDR"
- rm $EPC_VM_CMDS
- fi
+ echo "############################################################"
+ echo "Iperf DL"
+ echo "############################################################"
+ CURR_IPERF_LOG_BASE=fdd_05MHz_iperf_dl
+ iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+ check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
- echo "############################################################"
- echo "Starting the eNB in FDD-5MHz mode"
- echo "############################################################"
- CURRENT_ENB_LOG_FILE=fdd_05MHz_enb.log
- start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 25 lte-fdd-basic-sim.conf
+ echo "############################################################"
+ echo "Iperf UL"
+ echo "############################################################"
+ CURR_IPERF_LOG_BASE=fdd_05MHz_iperf_ul
+ iperf_ul $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 2 $CURR_IPERF_LOG_BASE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+ check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 2
- echo "############################################################"
- echo "Starting the UE in FDD-5MHz mode"
- echo "############################################################"
- CURRENT_UE_LOG_FILE=fdd_05MHz_ue.log
- start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 25 2680
- if [ $UE_SYNC -eq 0 ]
- then
- echo "Problem w/ eNB and UE not syncing"
+ echo "############################################################"
+ echo "Terminate enb/ue simulators"
+ echo "############################################################"
terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
- exit -1
- fi
- get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
+ sleep 10
- echo "############################################################"
- echo "Pinging the UE"
- echo "############################################################"
- PING_LOG_FILE=fdd_05MHz_ping_ue.txt
- ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
- check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+ echo "############################################################"
+ echo "Starting the eNB in FDD-10MHz mode"
+ echo "############################################################"
+ CURRENT_ENB_LOG_FILE=fdd_10MHz_enb.log
+ start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 50 lte-fdd-basic-sim.conf
- echo "############################################################"
- echo "Iperf DL"
- echo "############################################################"
- CURR_IPERF_LOG_BASE=fdd_05MHz_iperf_dl
- iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
- check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
+ echo "############################################################"
+ echo "Starting the UE in FDD-10MHz mode"
+ echo "############################################################"
+ CURRENT_UE_LOG_FILE=fdd_10MHz_ue.log
+ start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 50 2680
+ if [ $UE_SYNC -eq 0 ]
+ then
+ echo "Problem w/ eNB and UE not syncing"
+ terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+ recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+ exit -1
+ fi
+ get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
- echo "############################################################"
- echo "Iperf UL"
- echo "############################################################"
- CURR_IPERF_LOG_BASE=fdd_05MHz_iperf_ul
- iperf_ul $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 2 $CURR_IPERF_LOG_BASE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
- check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 2
+ echo "############################################################"
+ echo "Pinging the UE"
+ echo "############################################################"
+ PING_LOG_FILE=fdd_10MHz_ping_ue.txt
+ ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+ check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
- echo "############################################################"
- echo "Terminate enb/ue simulators"
- echo "############################################################"
- terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
- recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- sleep 10
+ echo "############################################################"
+ echo "Iperf DL"
+ echo "############################################################"
+ CURR_IPERF_LOG_BASE=fdd_10MHz_iperf_dl
+ iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+ check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
- echo "############################################################"
- echo "Starting the eNB in FDD-10MHz mode"
- echo "############################################################"
- CURRENT_ENB_LOG_FILE=fdd_10MHz_enb.log
- start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 50 lte-fdd-basic-sim.conf
+ echo "############################################################"
+ echo "Iperf UL"
+ echo "############################################################"
+ CURR_IPERF_LOG_BASE=fdd_10MHz_iperf_ul
+ iperf_ul $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 2 $CURR_IPERF_LOG_BASE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+ check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 2
- echo "############################################################"
- echo "Starting the UE in FDD-10MHz mode"
- echo "############################################################"
- CURRENT_UE_LOG_FILE=fdd_10MHz_ue.log
- start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 50 2680
- if [ $UE_SYNC -eq 0 ]
- then
- echo "Problem w/ eNB and UE not syncing"
+ echo "############################################################"
+ echo "Terminate enb/ue simulators"
+ echo "############################################################"
terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
- exit -1
- fi
- get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
+ sleep 10
- echo "############################################################"
- echo "Pinging the UE"
- echo "############################################################"
- PING_LOG_FILE=fdd_10MHz_ping_ue.txt
- ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
- check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+ echo "############################################################"
+ echo "Starting the eNB in FDD-20MHz mode"
+ echo "############################################################"
+ CURRENT_ENB_LOG_FILE=fdd_20MHz_enb.log
+ start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 100 lte-fdd-basic-sim.conf
- echo "############################################################"
- echo "Iperf DL"
- echo "############################################################"
- CURR_IPERF_LOG_BASE=fdd_10MHz_iperf_dl
- iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
- check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
+ echo "############################################################"
+ echo "Starting the UE in FDD-20MHz mode"
+ echo "############################################################"
+ CURRENT_UE_LOG_FILE=fdd_20MHz_ue.log
+ start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 100 2680
+ if [ $UE_SYNC -eq 0 ]
+ then
+ echo "Problem w/ eNB and UE not syncing"
+ terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+ recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+ exit -1
+ fi
+ get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
- echo "############################################################"
- echo "Iperf UL"
- echo "############################################################"
- CURR_IPERF_LOG_BASE=fdd_10MHz_iperf_ul
- iperf_ul $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 2 $CURR_IPERF_LOG_BASE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
- check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 2
+ echo "############################################################"
+ echo "Pinging the UE"
+ echo "############################################################"
+ PING_LOG_FILE=fdd_20MHz_ping_ue.txt
+ ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+ check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
- echo "############################################################"
- echo "Terminate enb/ue simulators"
- echo "############################################################"
- terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
- recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- sleep 10
+ echo "############################################################"
+ echo "Iperf DL"
+ echo "############################################################"
+ CURR_IPERF_LOG_BASE=fdd_20MHz_iperf_dl
+ iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+ check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
- echo "############################################################"
- echo "Starting the eNB in FDD-20MHz mode"
- echo "############################################################"
- CURRENT_ENB_LOG_FILE=fdd_20MHz_enb.log
- start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 100 lte-fdd-basic-sim.conf
-
- echo "############################################################"
- echo "Starting the UE in FDD-20MHz mode"
- echo "############################################################"
- CURRENT_UE_LOG_FILE=fdd_20MHz_ue.log
- start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 100 2680
- if [ $UE_SYNC -eq 0 ]
- then
- echo "Problem w/ eNB and UE not syncing"
+ echo "############################################################"
+ echo "Terminate enb/ue simulators"
+ echo "############################################################"
terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
- exit -1
- fi
- get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
+ sleep 10
- echo "############################################################"
- echo "Pinging the UE"
- echo "############################################################"
- PING_LOG_FILE=fdd_20MHz_ping_ue.txt
- ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
- check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+ echo "############################################################"
+ echo "Starting the eNB in TDD-5MHz mode"
+ echo "############################################################"
+ CURRENT_ENB_LOG_FILE=tdd_05MHz_enb.log
+ start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 25 lte-tdd-basic-sim.conf
- echo "############################################################"
- echo "Iperf DL"
- echo "############################################################"
- CURR_IPERF_LOG_BASE=fdd_20MHz_iperf_dl
- iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
- check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
+ echo "############################################################"
+ echo "Starting the UE in TDD-5MHz mode"
+ echo "############################################################"
+ CURRENT_UE_LOG_FILE=tdd_05MHz_ue.log
+ start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 25 2350
+ if [ $UE_SYNC -eq 0 ]
+ then
+ echo "Problem w/ eNB and UE not syncing"
+ terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+ recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+ exit -1
+ fi
+ get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
- echo "############################################################"
- echo "Terminate enb/ue simulators"
- echo "############################################################"
- terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
- recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- sleep 10
+ echo "############################################################"
+ echo "Pinging the UE"
+ echo "############################################################"
+ PING_LOG_FILE=tdd_05MHz_ping_ue.txt
+ ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+ check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
- echo "############################################################"
- echo "Starting the eNB in TDD-5MHz mode"
- echo "############################################################"
- CURRENT_ENB_LOG_FILE=tdd_05MHz_enb.log
- start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 25 lte-tdd-basic-sim.conf
+# Bug in TDD 5Mhz --- not running it
+# echo "############################################################"
+# echo "Iperf DL"
+# echo "############################################################"
+# CURR_IPERF_LOG_BASE=tdd_05MHz_iperf_dl
+# iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
+# scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+# scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+# check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
- echo "############################################################"
- echo "Starting the UE in TDD-5MHz mode"
- echo "############################################################"
- CURRENT_UE_LOG_FILE=tdd_05MHz_ue.log
- start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 25 2350
- if [ $UE_SYNC -eq 0 ]
- then
- echo "Problem w/ eNB and UE not syncing"
+ echo "############################################################"
+ echo "Terminate enb/ue simulators"
+ echo "############################################################"
terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
- exit -1
- fi
- get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
+ sleep 10
- echo "############################################################"
- echo "Pinging the UE"
- echo "############################################################"
- PING_LOG_FILE=tdd_05MHz_ping_ue.txt
- ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
- check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+ echo "############################################################"
+ echo "Starting the eNB in TDD-10MHz mode"
+ echo "############################################################"
+ CURRENT_ENB_LOG_FILE=tdd_10MHz_enb.log
+ start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 50 lte-tdd-basic-sim.conf
-# Bug in TDD 5Mhz --- not running it
-# echo "############################################################"
-# echo "Iperf DL"
-# echo "############################################################"
-# CURR_IPERF_LOG_BASE=tdd_05MHz_iperf_dl
-# iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
-# scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
-# scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
-# check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
+ echo "############################################################"
+ echo "Starting the UE in TDD-10MHz mode"
+ echo "############################################################"
+ CURRENT_UE_LOG_FILE=tdd_10MHz_ue.log
+ start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 50 2350
+ if [ $UE_SYNC -eq 0 ]
+ then
+ echo "Problem w/ eNB and UE not syncing"
+ terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+ recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+ exit -1
+ fi
+ get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
- echo "############################################################"
- echo "Terminate enb/ue simulators"
- echo "############################################################"
- terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
- recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- sleep 10
+ echo "############################################################"
+ echo "Pinging the UE"
+ echo "############################################################"
+ PING_LOG_FILE=tdd_10MHz_ping_ue.txt
+ ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+ check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
- echo "############################################################"
- echo "Starting the eNB in TDD-10MHz mode"
- echo "############################################################"
- CURRENT_ENB_LOG_FILE=tdd_10MHz_enb.log
- start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 50 lte-tdd-basic-sim.conf
+ echo "############################################################"
+ echo "Iperf DL"
+ echo "############################################################"
+ CURR_IPERF_LOG_BASE=tdd_10MHz_iperf_dl
+ iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+ check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
- echo "############################################################"
- echo "Starting the UE in TDD-10MHz mode"
- echo "############################################################"
- CURRENT_UE_LOG_FILE=tdd_10MHz_ue.log
- start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 50 2350
- if [ $UE_SYNC -eq 0 ]
- then
- echo "Problem w/ eNB and UE not syncing"
+ echo "############################################################"
+ echo "Terminate enb/ue simulators"
+ echo "############################################################"
terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
- exit -1
- fi
- get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
+ sleep 10
- echo "############################################################"
- echo "Pinging the UE"
- echo "############################################################"
- PING_LOG_FILE=tdd_10MHz_ping_ue.txt
- ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
- check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+ echo "############################################################"
+ echo "Starting the eNB in TDD-20MHz mode"
+ echo "############################################################"
+ CURRENT_ENB_LOG_FILE=tdd_20MHz_enb.log
+ start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 100 lte-tdd-basic-sim.conf
- echo "############################################################"
- echo "Iperf DL"
- echo "############################################################"
- CURR_IPERF_LOG_BASE=tdd_10MHz_iperf_dl
- iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
- check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
+ echo "############################################################"
+ echo "Starting the UE in TDD-20MHz mode"
+ echo "############################################################"
+ CURRENT_UE_LOG_FILE=tdd_20MHz_ue.log
+ start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 100 2350
+ if [ $UE_SYNC -eq 0 ]
+ then
+ echo "Problem w/ eNB and UE not syncing"
+ terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+ recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+ terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+ exit -1
+ fi
+ get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
- echo "############################################################"
- echo "Terminate enb/ue simulators"
- echo "############################################################"
- terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
- recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- sleep 10
+ echo "############################################################"
+ echo "Pinging the UE"
+ echo "############################################################"
+ PING_LOG_FILE=tdd_20MHz_ping_ue.txt
+ ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+ check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
- echo "############################################################"
- echo "Starting the eNB in TDD-20MHz mode"
- echo "############################################################"
- CURRENT_ENB_LOG_FILE=tdd_20MHz_enb.log
- start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 100 lte-tdd-basic-sim.conf
+ echo "############################################################"
+ echo "Iperf DL"
+ echo "############################################################"
+ CURR_IPERF_LOG_BASE=tdd_20MHz_iperf_dl
+ iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
+ scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+ scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+ check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
- echo "############################################################"
- echo "Starting the UE in TDD-20MHz mode"
- echo "############################################################"
- CURRENT_UE_LOG_FILE=tdd_20MHz_ue.log
- start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 100 2350
- if [ $UE_SYNC -eq 0 ]
- then
- echo "Problem w/ eNB and UE not syncing"
+ echo "############################################################"
+ echo "Terminate enb/ue simulators"
+ echo "############################################################"
terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
- exit -1
+ sleep 10
+
+ echo "############################################################"
+ echo "Terminate EPC"
+ echo "############################################################"
+
+ if [ $LTEBOX -eq 1 ]
+ then
+ terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+ 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 "Checking run status"
+ echo "############################################################"
+
+ if [ $PING_STATUS -ne 0 ]; then STATUS=-1; fi
+ if [ $IPERF_STATUS -ne 0 ]; then STATUS=-1; fi
+
fi
- get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
-
- echo "############################################################"
- echo "Pinging the UE"
- echo "############################################################"
- PING_LOG_FILE=tdd_20MHz_ping_ue.txt
- ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
- check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
-
- echo "############################################################"
- echo "Iperf DL"
- echo "############################################################"
- CURR_IPERF_LOG_BASE=tdd_20MHz_iperf_dl
- iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
- scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
- check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
-
- echo "############################################################"
- echo "Terminate enb/ue simulators"
- echo "############################################################"
- terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
- recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
- sleep 10
-
- echo "############################################################"
- echo "Terminate EPC"
- echo "############################################################"
-
- if [ $LTEBOX -eq 1 ]
- then
- terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
- fi
-
- echo "############################################################"
- echo "Checking run status"
- echo "############################################################"
-
- if [ $PING_STATUS -ne 0 ]; then STATUS=-1; fi
- if [ $IPERF_STATUS -ne 0 ]; then STATUS=-1; fi
-
-fi
-
-if [ $STATUS -eq 0 ]
-then
- echo "STATUS seems OK"
-else
- echo "STATUS failed?"
-fi
-
-exit $STATUS
+}
diff --git a/ci-scripts/waitBuildOnVM.sh b/ci-scripts/waitBuildOnVM.sh
index 011a32bbb9..a6f4edace8 100755
--- a/ci-scripts/waitBuildOnVM.sh
+++ b/ci-scripts/waitBuildOnVM.sh
@@ -20,8 +20,8 @@
# * contact@openairinterface.org
# */
-function usage {
- echo "OAI VM Build Check script"
+function wait_usage {
+ echo "OAI CI VM script"
echo " Original Author: Raphael Defosseux"
echo " Requirements:"
echo " -- uvtool uvtool-libvirt apt-cacher"
@@ -31,9 +31,9 @@ function usage {
echo ""
echo "Usage:"
echo "------"
- echo " waitBuildOnVM.sh [OPTIONS]"
+ echo " oai-ci-vm-tool wait [OPTIONS]"
echo ""
- echo "Options:"
+ echo "Mandatory Options:"
echo "--------"
echo " --job-name #### OR -jn ####"
echo " Specify the name of the Jenkins job."
@@ -44,16 +44,11 @@ function usage {
echo " --workspace #### OR -ws ####"
echo " Specify the workspace."
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"
+ variant_usage
echo " Specify the variant to build."
echo ""
+ echo "Options:"
+ echo "--------"
echo " --keep-vm-alive OR -k"
echo " Keep the VM alive after the build."
echo ""
@@ -62,345 +57,114 @@ function usage {
echo ""
}
-function variant_usage {
- echo "OAI VM Build Check 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 gnb-usrp OR -v5"
- echo " --variant nu-ue-usrp OR -v6"
- echo " --variant enb-ethernet OR -v7"
- echo " --variant ue-ethernet OR -v8"
- echo ""
+function wait_on_vm_build {
+ echo "############################################################"
+ echo "OAI CI VM script"
+ echo "############################################################"
+
+ echo "VM_NAME = $VM_NAME"
+ echo "VM_CMD_FILE = $VM_CMDS"
+ echo "JENKINS_WKSP = $JENKINS_WKSP"
+ echo "ARCHIVES_LOC = $ARCHIVES_LOC"
+ echo "BUILD_OPTIONS = $BUILD_OPTIONS"
+
+ IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME`
+
+ if [ $IS_VM_ALIVE -eq 0 ]
+ then
+ echo "############################################################"
+ echo "You should have created the VM before doing anything"
+ echo "############################################################"
+ STATUS=1
+ return
+ fi
+
+ 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"
+
+ echo "############################################################"
+ echo "Waiting build process to end on VM ($VM_NAME)"
+ echo "############################################################"
+
+ if [[ "$VM_NAME" == *"-cppcheck"* ]]
+ then
+ 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
+ else
+ 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
+ fi
+
+ ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
+ rm -f $VM_CMDS
}
-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_CMD_FILE = $VM_CMDS"
-echo "JENKINS_WKSP = $JENKINS_WKSP"
-echo "ARCHIVES_LOC = $ARCHIVES_LOC"
-echo "BUILD_OPTIONS = $BUILD_OPTIONS"
-
-IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME`
-
-if [ $IS_VM_ALIVE -eq 0 ]
-then
+function check_on_vm_build {
echo "############################################################"
- echo "You should have created the VM before doing anything"
+ echo "Creating a tmp folder to store results and artifacts"
echo "############################################################"
- exit 1
-fi
-
-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"
-
-echo "############################################################"
-echo "Waiting build process to end on VM ($VM_NAME)"
-echo "############################################################"
-
-if [[ "$VM_NAME" == *"-cppcheck"* ]]
-then
- 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
-else
- 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
-fi
-
-ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
-
-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"* ]]
+ if [ ! -d $JENKINS_WKSP/archives ]
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
- if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
- NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
+ mkdir $JENKINS_WKSP/archives
fi
-done
-if [ $NB_PATTERN_FILES -ne $NB_FOUND_FILES ]; then STATUS=-1; fi
+ if [ ! -d $ARCHIVES_LOC ]
+ then
+ mkdir $ARCHIVES_LOC
+ fi
-if [ $STATUS -eq 0 ]
-then
- echo "STATUS seems OK"
-else
- echo "STATUS failed?"
-fi
-exit $STATUS
+ 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
+ if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
+ NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
+ fi
+ done
+
+ if [ $NB_PATTERN_FILES -ne $NB_FOUND_FILES ]; then STATUS=-1; fi
+
+}
diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml
index 57b16bcca4..64ea824187 100644
--- a/cmake_targets/autotests/test_case_list.xml
+++ b/cmake_targets/autotests/test_case_list.xml
@@ -1055,7 +1055,7 @@
-s-11 -S-10 -n1000
-s-11 -S-10 -n10 -I
nr_pbchsim.test1
- n_errors \(negative CRC\) = 0
+ PBCH test OK
segmentation fault|assertion|exiting|fatal
3
diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c
index 307935068f..17029ff2a8 100644
--- a/openair1/PHY/INIT/nr_init.c
+++ b/openair1/PHY/INIT/nr_init.c
@@ -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->sch_config.half_frame_index.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;
@@ -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->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.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;
if (phy_config->cfg->subframe_config.duplex_mode.value == 0) {
diff --git a/openair1/PHY/INIT/nr_init_ue.c b/openair1/PHY/INIT/nr_init_ue.c
index 4b0e9e356f..1e8f2bc990 100644
--- a/openair1/PHY/INIT/nr_init_ue.c
+++ b/openair1/PHY/INIT/nr_init_ue.c
@@ -655,7 +655,7 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
int i,j,k,l;
int eNB_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;
fp->nb_antennas_tx = 1;
fp->nb_antennas_rx=1;
diff --git a/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c b/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
index 3b26f28720..c4df10e13c 100755
--- a/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
@@ -49,7 +49,7 @@
//#define NR_LTE_PDCCH_DCI_SWITCH
#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_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
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c b/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
index d53ba3daa5..aab7617832 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
@@ -149,7 +149,7 @@ int nr_initial_sync(PHY_VARS_NR_UE *ue, runmode_t mode)
int rx_power=0; //aarx,
//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
fp->Ncp=NORMAL;
fp->frame_type=TDD;
@@ -212,12 +212,12 @@ int nr_initial_sync(PHY_VARS_NR_UE *ue, runmode_t mode)
nr_gold_pdcch(ue,0, 2);
/*
- int nb_prefix_samples0 = frame_parms->nb_prefix_samples0;
- frame_parms->nb_prefix_samples0 = frame_parms->nb_prefix_samples.
+ int nb_prefix_samples0 = fp->nb_prefix_samples0;
+ fp->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,1, 0, ue->ssb_offset, 0, 1, NR_PDCCH_EST);
- frame_parms->nb_prefix_samples0 = nb_prefix_samples0;
+ fp->nb_prefix_samples0 = nb_prefix_samples0;
LOG_I(PHY,"[UE %d] AUTOTEST Cell Sync : frame = %d, rx_offset %d, freq_offset %d \n",
ue->Mod_id,
diff --git a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
index 5c8e482e2f..711f3df68b 100644
--- a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+++ b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
@@ -5557,8 +5557,8 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
#endif
//nr_gold_pdcch(ue,0, 2);
-/*
- for (l=0; l<2; l++) {
+
+ for (int l=0; l<2; l++) {
if (abstraction_flag == 0) {
#if UE_TIMING_TRACE
start_meas(&ue->ofdm_demod_stats);
@@ -5566,40 +5566,63 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
nr_slot_fep(ue,
- l,
- nr_tti_rx,
- ue->ssb_offset,
- 0,
- 1,
+ l,
+ nr_tti_rx,
+ 0,
+ 0,
+ 1,
NR_PDCCH_EST);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT);
#if UE_TIMING_TRACE
stop_meas(&ue->ofdm_demod_stats);
#endif
}
- }*/
- //ue_measurement_procedures(l-1,ue,proc,eNB_id,(nr_tti_rx<<1),abstraction_flag,mode);
+ }
- //if (do_pdcch_flag) {
-// 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);
+ 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);
- //start_meas(&ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]]);
- 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);
- return(-1);
- }
- //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",
- // 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));
- LOG_D(PHY,"num_pdcch_symbols %d\n",ue->pdcch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->num_pdcch_symbols);
-// }
- //}
+ //ue_measurement_procedures(l-1,ue,proc,eNB_id,(nr_tti_rx<<1),abstraction_flag,mode);
-// } // for l=1..l2
+ //if (do_pdcch_flag) {
+ // 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);
+ //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) {
+ 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);
+ }
+ //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]]);
+ //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,
+ // (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);
+ // }
+ //}
+
+ // } // for l=1..l2
+
+
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);
diff --git a/openair1/SIMULATION/NR_PHY/pbchsim.c b/openair1/SIMULATION/NR_PHY/pbchsim.c
index 5a2e8e7789..7bd56ef8e5 100644
--- a/openair1/SIMULATION/NR_PHY/pbchsim.c
+++ b/openair1/SIMULATION/NR_PHY/pbchsim.c
@@ -133,6 +133,8 @@ int main(int argc, char **argv)
int loglvl=OAILOG_WARNING;
+ float target_error_rate = 0.01;
+
cpuf = get_cpu_freq_GHz();
if ( load_configmodule(argc,argv) == 0) {
@@ -296,6 +298,7 @@ int main(int argc, char **argv)
case 'I':
run_initial_sync=1;
+ target_error_rate=0.1;
break;
case 'L':
@@ -442,11 +445,10 @@ int main(int argc, char **argv)
for (int i=0;i<4;i++) gNB->pbch_pdu[i]=i+1;
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);
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);
- */
+
//TODO: loop over slots
for (aa=0; aaframe_parms.nb_antennas_tx; aa++) {
if (gNB_config->subframe_config.dl_cyclic_prefix_type.value == 1) {
@@ -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);
+ if ((float)n_errors/(float)n_trials <= target_error_rate) {
+ printf("PBCH test OK\n");
+ break;
+ }
+
if (n_trials==1)
break;
diff --git a/targets/RT/USER/nr-ue.c b/targets/RT/USER/nr-ue.c
index 2f9c7c6b0a..559b64f452 100644
--- a/targets/RT/USER/nr-ue.c
+++ b/targets/RT/USER/nr-ue.c
@@ -963,7 +963,7 @@ nb_sf_init=5;
#if BASIC_SIMULATOR
{
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];
pthread_mutex_lock(&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;
}
}
#endif
+
LOG_D(PHY,"Process subframe %d thread Idx %d \n", subframe_nr, UE->current_thread_id[subframe_nr]);
thread_idx++;
if(thread_idx>=RX_NB_TH)
thread_idx = 0;
-
if (UE->mode != loop_through_memory) {
for (i=0; iframe_parms.nb_antennas_rx; i++)
rxp[i] = (void*)&UE->common_vars.rxdata[i][UE->frame_parms.ofdm_symbol_size+
@@ -1040,9 +1040,6 @@ nb_sf_init=5;
if ( first_symbols <0 )
LOG_E(PHY,"can't compensate: diff =%d\n", first_symbols);
}
- } //UE->mode != loop_through_memory
- else
- rt_sleep_ns(1000*1000);
pickTime(gotIQs);
// operate on thread sf mod 2
@@ -1054,13 +1051,13 @@ nb_sf_init=5;
UE->proc.proc_rxtx[th_id].frame_rx++;
}
#ifdef SAIF_ENABLED
- if (!(proc->frame_rx%4000))
- {
- printf("frame_rx=%d rx_thread_busy=%ld - rate %8.3f\n",
- proc->frame_rx, g_ue_rx_thread_busy,
- (float)g_ue_rx_thread_busy/(proc->frame_rx*10+1)*100.0);
- fflush(stdout);
- }
+ if (!(proc->frame_rx%4000))
+ {
+ printf("frame_rx=%d rx_thread_busy=%ld - rate %8.3f\n",
+ proc->frame_rx, g_ue_rx_thread_busy,
+ (float)g_ue_rx_thread_busy/(proc->frame_rx*10+1)*100.0);
+ fflush(stdout);
+ }
#endif
}
//UE->proc.proc_rxtx[0].gotIQs=readTime(gotIQs);
@@ -1078,7 +1075,7 @@ nb_sf_init=5;
proc->frame_tx = (proc->frame_tx + 1)%MAX_FRAME_NUMBER;
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+
(DURATION_RX_TO_TX*UE->frame_parms.samples_per_subframe)-
UE->frame_parms.ofdm_symbol_size-UE->frame_parms.nb_prefix_samples0;
@@ -1114,7 +1111,41 @@ nb_sf_init=5;
// initStaticTime(lastTime);
// updateTimes(lastTime, &t1, 20000, "Delay between two IQ acquisitions (case 1)");
// 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
} // UE->is_synchronized==1