On 05/30/2016 04:10 AM, archus(a)linux.vnet.ibm.com wrote:
From: Archana Singh <archus(a)linux.vnet.ibm.com>
Script to run FVT test cases which also take care of
installing all
dependencies from requirements.txt.
The part of installing dependencies should be done separated. Thinking
about a completed CI infrastructure, it would be done by a Chef/Puppet
recipe to launch a new server to run the tests.
Signed-off-by: Archana Singh <archus(a)linux.vnet.ibm.com>
---
tests/fvt/run_tests.sh.in | 92 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
create mode 100755 tests/fvt/run_tests.sh.in
diff --git a/tests/fvt/run_tests.sh.in b/tests/fvt/run_tests.sh.in
new file mode 100755
index 0000000..ee31b95
--- /dev/null
+++ b/tests/fvt/run_tests.sh.in
@@ -0,0 +1,92 @@
+#!/bin/bash
+#
+# Project Wok
+#
+# Copyright IBM Corp, 2016
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301USA
+
+mkdir -p venv
+
+HAVE_UNITTEST=@HAVE_PYMOD_UNITTEST@
+PYTHON_VER=@PYTHON_VERSION@
+
+# Verify if the required commands exists on the system
+command -v virtualenv >/dev/null 2>&1 || { echo >&2 "virtualenv
must be installed for your distribution. Aborting."; exit 1; }
+command -v pip >/dev/null 2>&1 || { echo >&2 "pip must be
installed for your distribution. Aborting."; exit 1; }
+
+# Get absolute path of this script
+pushd `dirname $0` > /dev/null
+SCRIPTPATH=`pwd -P`
+reqfile=$SCRIPTPATH'/requirements.txt'
+
+# Start the virtual environment
+virtualenv venv --no-site-packages
+
+
+# Actiate the virtual environment
+source venv/bin/activate
+
+while read line; do
+
+ case "$line" in
+ \#*)
+ continue ;; # skip comments
+ "")
+ continue ;; # skip empty lines
+ *)
+ venv/bin/python$PYTHON_VER -c "import $line" > /dev/null 2>&1
+ status=$?
+ if [ $status -ne 0 ]; then
+ pip install -r $reqfile # Install the required modules to run tests
+ break
+ fi
+ esac
+done < $reqfile
+
+# Execute the test suite
+#python registered_tests.py
+#nosetests --with-html --html-file=test_report.html registered_tests.py
+
+if [ "$1" = "-v" ]; then
+ OPTS="-v"
+ shift
+else
+ OPTS=""
+fi
+
+if [ $# -ne 0 ]; then
+ ARGS="$@"
+else
+ ARGS=`find -name "fvt_*.py" | xargs -I @ basename @ .py`
+fi
+
+if [ "$HAVE_UNITTEST" != "yes" -o "$PYTHON_VER" ==
"2.6" ]; then
+ CMD="unit2"
+else
+ CMD="python -m unittest"
+fi
+
+LIST=($ARGS)
+FVT_LIST=()
+for ((i=0;i<${#LIST[@]};i++)); do
+ FVT_LIST+=(${LIST[$i]})
+done
+PYTHONPATH=../ $CMD $OPTS ${FVT_LIST[@]}
+
+# Deativate the virtual environment
+deactivate
+
+rm -fr venv