summaryrefslogtreecommitdiffstats
path: root/tests/ci
diff options
context:
space:
mode:
authorDeepak S <deepak.s@linux.intel.com>2017-06-20 14:31:19 -0700
committerRoss Brattain <ross.b.brattain@intel.com>2017-08-08 08:54:23 -0700
commit5ce3b6f8c8b3217091e51a6041455738603d90b8 (patch)
treeca34e15a85d69e2b23ce498fead47761624ae42c /tests/ci
parent72778951d6b8968f562fb8fefa02a57159ea1b83 (diff)
NSB update
Refactored main NSB VNF classes accroding to class diagram https://wiki.opnfv.org/display/yardstick/NSB+class+diagram All the SampleVNFs have been separated and placed under the SampleVNF class. Added AutoConnectSSH to automatically create SSH conneciton on demand. Added VnfdHelper class to wrap the VNFD dictionary in prepartion for class-based modeling. Extracted DpdkVnfSetupEnvHelper for DPDK based VNF setup. Extracted Stats and other client config to ResourceHelper Had to replace dict_key_flatten with deepgetitem due to Python 2.7 Jinja2 infinite recursion. Change-Id: Ia8840e9c44cdbdf39aab6b02e6d2176b31937dc9 Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
Diffstat (limited to 'tests/ci')
-rw-r--r--tests/ci/cover.awk25
-rw-r--r--tests/ci/cover.sh92
2 files changed, 91 insertions, 26 deletions
diff --git a/tests/ci/cover.awk b/tests/ci/cover.awk
new file mode 100644
index 000000000..e4bb816dc
--- /dev/null
+++ b/tests/ci/cover.awk
@@ -0,0 +1,25 @@
+BEGIN{
+ template = "%6s %-75s\n"
+ printf template, "Delta", "Module Path"
+}
+
+/^-/{
+ s = substr($1, 2)
+ x[s] = $3;
+};
+
+/^+/{
+ s = substr($1, 2)
+ d = $3
+ if (s in x)
+ d = d - x[s]
+ y[s" "d] = d
+}
+
+END{
+ asorti(y, z1, "@val_num_asc")
+ for (i=1; i <= length(z1); i++){
+ split(z1[i], z2, " ")
+ printf template, z2[2], z2[1]
+ }
+}
diff --git a/tests/ci/cover.sh b/tests/ci/cover.sh
index 822ed2ff2..780a85a22 100644
--- a/tests/ci/cover.sh
+++ b/tests/ci/cover.sh
@@ -1,3 +1,4 @@
+#!/bin/bash
##############################################################################
# Copyright 2015: Mirantis Inc.
# All Rights Reserved.
@@ -17,65 +18,104 @@
# rally/tests/ci/cover.sh
##############################################################################
+if [[ -n $COVER_DIR_NAME ]]; then
+ :
+elif [[ -n $_ ]]; then
+ COVER_DIR_NAME=$( dirname $_ )
+else
+ COVER_DIR_NAME=$( dirname $0 )
+fi
+
show_diff () {
- head -1 $1
- diff -U 0 $1 $2 | sed 1,2d
+ diff -U 0 $1 $2 | awk -f $COVER_DIR_NAME/cover.awk
}
-
run_coverage_test() {
ALLOWED_EXTRA_MISSING=10
-
+ # enable debugging
+ set -x
# Stash uncommitted changes, checkout master and save coverage report
uncommited=$(git status --porcelain | grep -v "^??")
- [[ -n $uncommited ]] && git stash > /dev/null
+ [[ -n ${uncommited} ]] && git stash > /dev/null
git checkout HEAD^
baseline_report=$(mktemp -t yardstick_coverageXXXXXXX)
+ ls -l .testrepository
+
# workaround 'db type could not be determined' bug
# https://bugs.launchpad.net/testrepository/+bug/1229445
rm -rf .testrepository
- find . -type f -name "*.pyc" -delete && python setup.py testr --coverage --slowest --testr-args="$*"
- coverage report > $baseline_report
- baseline_missing=$(awk 'END { print $3 }' $baseline_report)
+ find . -type f -name "*.pyc" -delete
+
+ #python setup.py testr --coverage --testr-args=""
+ python setup.py testr --coverage --slowest --testr-args="$*"
+ testr failing
+ coverage report > ${baseline_report}
+
+ # debug awk
+ tail -1 ${baseline_report}
+ baseline_missing=$(awk 'END { if (int($3) > 0) print $3 }' ${baseline_report})
+
+ if [[ -z $baseline_missing ]]; then
+ echo "Failed to determine baseline missing"
+ exit 1
+ fi
# Checkout back and unstash uncommitted changes (if any)
git checkout -
- [[ -n $uncommited ]] && git stash pop > /dev/null
+ [[ -n ${uncommited} ]] && git stash pop > /dev/null
# Generate and save coverage report
current_report=$(mktemp -t yardstick_coverageXXXXXXX)
+ ls -l .testrepository
+
# workaround 'db type could not be determined' bug
# https://bugs.launchpad.net/testrepository/+bug/1229445
rm -rf .testrepository
- find . -type f -name "*.pyc" -delete && python setup.py testr --coverage --slowest --testr-args="$*"
- coverage report > $current_report
- current_missing=$(awk 'END { print $3 }' $current_report)
+ find . -type f -name "*.pyc" -delete
+
+ #python setup.py testr --coverage --testr-args=""
+ python setup.py testr --coverage --slowest --testr-args="$*"
+ testr failing
+ coverage report > ${current_report}
+
+ rm -rf cover-$PY_VER
+ coverage html -d cover-$PY_VER
+
+ # debug awk
+ tail -1 ${current_report}
+ current_missing=$(awk 'END { if (int($3) > 0) print $3 }' ${current_report})
+
+ if [[ -z $current_missing ]]; then
+ echo "Failed to determine current missing"
+ exit 1
+ fi
# Show coverage details
- allowed_missing=$((baseline_missing+ALLOWED_EXTRA_MISSING))
+ new_missing=$((current_missing - baseline_missing))
- echo "Allowed to introduce missing lines : ${ALLOWED_EXTRA_MISSING}"
+ echo "Missing lines allowed to introduce : ${ALLOWED_EXTRA_MISSING}"
+ echo "Missing lines introduced : ${new_missing}"
echo "Missing lines in master : ${baseline_missing}"
echo "Missing lines in proposed change : ${current_missing}"
- if [ $allowed_missing -gt $current_missing ];
+ if [[ ${new_missing} -gt ${ALLOWED_EXTRA_MISSING} ]];
then
- if [ $baseline_missing -lt $current_missing ];
- then
- show_diff $baseline_report $current_report
- echo "I believe you can cover all your code with 100% coverage!"
- else
- echo "Thank you! You are awesome! Keep writing unit tests! :)"
- fi
- else
- show_diff $baseline_report $current_report
+ show_diff ${baseline_report} ${current_report}
echo "Please write more unit tests, we should keep our test coverage :( "
- rm $baseline_report $current_report
+ rm ${baseline_report} ${current_report}
exit 1
+
+ elif [[ ${new_missing} -gt 0 ]];
+ then
+ show_diff ${baseline_report} ${current_report}
+ echo "I believe you can cover all your code with 100% coverage!"
+
+ else
+ echo "Thank you! You are awesome! Keep writing unit tests! :)"
fi
- rm $baseline_report $current_report
+ rm ${baseline_report} ${current_report}
}