TEST-2 first cut a soak test engine 19/3219/2
authorJerry Flood <jf9860@att.com>
Sun, 9 Apr 2017 15:25:24 +0000 (11:25 -0400)
committerJerry Flood <jf9860@att.com>
Wed, 12 Apr 2017 13:09:04 +0000 (09:09 -0400)
runSoak.sh is used to initiate a soak test for a duration in seconds

runEteTag.sh is the command invoked by the soak test engine to execute a
single tag.

Change-Id: I11ee797442cd3baa246e0f4a20bc4dac19c5b89e
Signed-off-by: Jerry Flood <jf9860@att.com>
runEteTag.sh [new file with mode: 0644]
runSoak.sh [new file with mode: 0644]

diff --git a/runEteTag.sh b/runEteTag.sh
new file mode 100644 (file)
index 0000000..64f36e7
--- /dev/null
@@ -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
diff --git a/runSoak.sh b/runSoak.sh
new file mode 100644 (file)
index 0000000..3b223ae
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+INSTALL_DIR=/var/opt/OpenECOMP_ETE
+DURATION=$1
+
+cd ${INSTALL_DIR}
+export PYTHONPATH=${INSTALL_DIR}/robot/library
+python -m loadtest.TestMain -d ${DURATION} --logfile /share/logs/soak_$$.log
\ No newline at end of file