Merge "test_vnf_generic: fix unitests when files are present"
[yardstick.git] / run_tests.sh
index c8d8e7d..1f985b6 100755 (executable)
@@ -9,7 +9,7 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
-# Run yardstick's test suite(s)
+# Run yardstick's flake8, unit, coverage, functional test
 
 getopts ":f" FILE_OPTION
 
@@ -33,7 +33,33 @@ run_flake8() {
     fi
 }
 
+get_external_libs() {
+    cd $(dirname ${BASH_SOURCE[0]})
+    TREX_DOWNLOAD="https://trex-tgn.cisco.com/trex/release/v2.05.tar.gz"
+    TREX_DIR=$PWD/trex/scripts
+    if [ ! -d "$TREX_DIR" ]; then
+        rm -rf ${TREX_DOWNLOAD##*/}
+        if [ ! -e ${TREX_DOWNLOAD##*/} ] ; then
+            wget -nv $TREX_DOWNLOAD
+        fi
+        tar xf ${TREX_DOWNLOAD##*/}
+        pushd .
+        rm -rf trex && mkdir -p trex
+        mv v2.05 trex/scripts
+        rm -rf v2.05.tar.gz
+        touch "$PWD/trex/scripts/automation/trex_control_plane/stl/__init__.py"
+        popd
+    fi
+    echo "Done."
+    export PYTHONPATH=$PYTHONPATH:"$PWD/trex/scripts/automation/trex_control_plane"
+    export PYTHONPATH=$PYTHONPATH:"$PWD/trex/scripts/automation/trex_control_plane/stl"
+    echo $PYTHONPATH
+}
+
 run_tests() {
+    echo "Get external libs needed for unit test"
+    get_external_libs
+
     echo "Running unittest ... "
     if [ $FILE_OPTION == "f" ]; then
         python -m unittest discover -v -s tests/unit > $logfile 2>&1
@@ -53,6 +79,30 @@ run_tests() {
     fi
 }
 
+run_coverage() {
+    source tests/ci/cover.sh
+    run_coverage_test
+}
+
+run_functional_test() {
+
+    mkdir -p .testrepository
+    python -m subunit.run discover tests/functional > .testrepository/subunit.log
+
+    subunit2pyunit < .testrepository/subunit.log
+    EXIT_CODE=$?
+    subunit-stats < .testrepository/subunit.log
+
+    if [ $EXIT_CODE -ne 0 ]; then
+        exit 1
+    else
+        echo "OK"
+    fi
+}
+
+export PYTHONPATH='yardstick/vTC/apexlake'
+
 run_flake8
 run_tests
-
+run_coverage
+run_functional_test