X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=ric_robot_suite%2FrunTags.sh;fp=ric_robot_suite%2FrunTags.sh;h=f870507e8d5ebb7f55e9d7fb10b07d49297797cb;hb=c5fa07bcd8cbd614bcd813cac698385b789bcfcb;hp=0000000000000000000000000000000000000000;hpb=59f84608ec15c016958a6e0e0ddd813f376c0925;p=it%2Ftest.git diff --git a/ric_robot_suite/runTags.sh b/ric_robot_suite/runTags.sh new file mode 100755 index 0000000..f870507 --- /dev/null +++ b/ric_robot_suite/runTags.sh @@ -0,0 +1,124 @@ +#!/bin/bash + +################################################################################ +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 # +# # +# 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. # +################################################################################ + + + + +# Set the defaults +DEFAULT_LOG_LEVEL="TRACE" # Available levels: TRACE, DEBUG, INFO (default), WARN, NONE (no logging) +DEFAULT_RES="1280x1024x24" +DEFAULT_DISPLAY=":99" +DEFAULT_ROBOT_TEST="-i health" +INSTALL_NAME="RIC" +DEFAULT_OUTPUT_FOLDER=./ + +# To mitigate the chromedriver hanging issue +export DBUS_SESSION_BUS_ADDRESS=/dev/null + +# Use default if none specified as env var +LOG_LEVEL=${LOG_LEVEL:-$DEFAULT_LOG_LEVEL} +RES=${RES:-$DEFAULT_RES} +DISPLAY=${DISPLAY:-$DEFAULT_DISPLAY} + +# OUTPUT_FOLDER env variable will be overridden by -d command line argument. +OUTPUT_FOLDER=${OUTPUT_FOLDER:-$DEFAULT_OUTPUT_FOLDER} + +VARIABLEFILES= +LISTENERS= +VARIABLES="--removekeywords name:keystone_interface.*" + +## Single argument, it is an include tag +if [ $# -eq 1 ]; then + ROBOT_TAGS="-i $1" +fi + +## +## if more than 1 tag is supplied, the must be provided with -i or -e +## +while [ $# -gt 1 ] +do + key="$1" + + case $key in + -i|--include) + ROBOT_TAGS="${ROBOT_TAGS} -i $2" + shift + ;; + -e|--exclude) + ROBOT_TAGS="${ROBOT_TAGS} -e $2" + shift + ;; + -d|--outputdir) + OUTPUT_FOLDER=$2 + shift + ;; + --display) + DISPLAY=:$2 + shift + ;; + --listener) + LISTENERS="${LISTENER} --listener $2 " + shift + ;; + -V) + VARIABLEFILES="${VARIABLEFILES} -V $2 " + shift + ;; + -v) + VARIABLES="${VARIABLES} -v $2 " + shift + ;; + esac + shift +done + +if [ "${ROBOT_TAGS}" = "" ];then + ROBOT_TAGS=$DEFAULT_ROBOT_TEST +fi + +# Start Xvfb +echo -e "Starting Xvfb on display ${DISPLAY} with res ${RES}" +Xvfb ${DISPLAY} -ac -screen 0 ${RES} +extension RANDR & +XVFBPID=$! +# Get pid of this spawned process to make sure we kill the correct process later + +export DISPLAY=${DISPLAY} + +# Execute tests +echo -e "Executing robot tests at log level ${LOG_LEVEL}" + +ROBOT_LIBS=./robot/library:./robot/library/ricutils:./robot/library/eteutils:./robot/library/heatbridge + +cd /var/opt/${INSTALL_NAME} +python -m robot.run -L ${LOG_LEVEL} -d ${OUTPUT_FOLDER} ${VARIABLEFILES} ${VARIABLES} ${LISTENERS} -P ${ROBOT_LIBS} ${ROBOT_TAGS} /var/opt/${INSTALL_NAME}/robot/testsuites/ +RET_CODE=$? + +# Stop Xvfb we started earlier +# select it from list of possible Xvfb pids running because +# a) there may be multiple Xvfbs running and +# b) the XVFBPID may not be the correct if the start did not actually work (unlikely and that may be) +PIDS=$(pgrep Xvfb) +for P in $PIDS +do + if [ $P == $XVFBPID ];then + kill -9 $P + fi +done + +exit $RET_CODE