diff options
Diffstat (limited to 'runEteTag.sh')
-rw-r--r-- | runEteTag.sh | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/runEteTag.sh b/runEteTag.sh new file mode 100644 index 00000000..64f36e75 --- /dev/null +++ b/runEteTag.sh @@ -0,0 +1,90 @@ +#!/bin/bash +INSTALL_DIR=/var/opt/OpenECOMP_ETE + +##################################################################### +# Start display on 256 if it has not already been started... +# This will stay up and be used for all soak tests +# Tried this once and got an unexpected error so restored the start/kill +# pattern for each test for now. +# Perhaps the error was unrelated to the using the same display for +# all tests. Preserve this just in case.... +function start_display_if +{ + export DISPLAY=:256 + xdpyinfo -display $DISPLAY >/dev/null 2>&1 + while [ $? = 1 ] + do + # Start Xvfb + echo -e "Starting Xvfb on display ${DISPLAY} with res ${RES}" + Xvfb ${DISPLAY} -ac -screen 0 ${RES} +extension RANDR & + disown + done +} + +##################################################################### +function start_display +{ + export DISPLAY=:$(( $TEST_NUMBER % 256 )) + xdpyinfo -display $DISPLAY >/dev/null 2>&1 + while [ $? = 0 ] + do + DISPLAY=$(( $RANDOM % 1000 )) + xdpyinfo -display $DISPLAY >/dev/null 2>&1 + done + # Start Xvfb + echo -e "Starting Xvfb on display ${DISPLAY} with res ${RES}" + Xvfb ${DISPLAY} -ac -screen 0 ${RES} +extension RANDR & + XVFBPID=$! + disown + echo ${DISPLAY} > /tmp/robotDisplay.$TEST_NUMBER + # Get and save pid of this spawned process to make sure we kill the correct process later +} + +##################################################################### +function kill_display +{ + xdpyinfo -display $DISPLAY >/dev/null 2>&1 + if [ $? = 0 ]; then + kill -9 $XVFBPID >/dev/null 2>&1 + fi + rm -rf /tmp/robotDisplay.$TEST_NUMBER +} + +##################################################################### +# main +##################################################################### +export ROBOT_TAG=$1 +export TEST_NUMBER=$2 + +if [ "$TEST_NUMBER" = "" ];then + TEST_NUMBER=$$ +fi + +# Use default if none specified as env var +DEFAULT_LOG_LEVEL="INFO" # Available levels: TRACE, DEBUG, INFO (default), WARN, NONE (no logging) +LOG_LEVEL=${LOG_LEVEL:-$DEFAULT_LOG_LEVEL} + +# To mitigate the chromedriver hanging issue +export DBUS_SESSION_BUS_ADDRESS=/dev/null + +RES="1280x1024x24" +OUTPUT_FOLDER=/share/logs/${SOAKSUBFOLDER}runEteTag_$TEST_NUMBER +mkdir -p $OUTPUT_FOLDER +INSTALL_DIR="/var/opt/OpenECOMP_ETE" + +ROBOT_LIBS=./robot/library:./robot/library/eteutils:./robot/library/heatbridge +VARIABLEFILES="-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py" +VARIABLES="-v GLOBAL_BUILD_NUMBER:$TEST_NUMBER" +LISTENERS= + +start_display + +# Execute tests +echo -e "Executing robot test ${ROBOT_TAG} at log level ${LOG_LEVEL}" + +cd ${INSTALL_DIR} +python -m robot.run -L ${LOG_LEVEL} -d ${OUTPUT_FOLDER} ${VARIABLEFILES} ${VARIABLES} ${LISTENERS} -P ${ROBOT_LIBS} -i ${ROBOT_TAG} $(pwd) > ${OUTPUT_FOLDER}/robot.out 2>&1 + +#################################################################### +# Stop Xvfb we started earlier +kill_display |