diff options
author | Deepak S <deepak.s@linux.intel.com> | 2017-06-20 14:31:19 -0700 |
---|---|---|
committer | Ross Brattain <ross.b.brattain@intel.com> | 2017-08-08 08:54:23 -0700 |
commit | 5ce3b6f8c8b3217091e51a6041455738603d90b8 (patch) | |
tree | ca34e15a85d69e2b23ce498fead47761624ae42c /tests/ci | |
parent | 72778951d6b8968f562fb8fefa02a57159ea1b83 (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.awk | 25 | ||||
-rw-r--r-- | tests/ci/cover.sh | 92 |
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} } |