Merge pull request #1329 from mcintyre94/CP-19888-copy

[CP-19888] Add support for code coverage in build jobs
This commit is contained in:
Konstantina Chremmou 2017-01-10 08:39:45 +00:00 committed by GitHub
commit b170fdecc1
2 changed files with 81 additions and 6 deletions

View File

@ -54,6 +54,7 @@ function check_deps ()
}
check_deps nunit-console.exe zip unzip wget curl hg git patch mt.exe candle.exe light.exe
if [ "${BUILD_KIND:+$BUILD_KIND}" != production ]
then
check_deps signtool.exe
@ -72,14 +73,28 @@ XENADMIN_DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )"
source ${XENADMIN_DIR}/mk/declarations.sh
run_tests()
{
if [ -n "${REPORT_COVERAGE+x}" ]; then
if [ -z "${NCOVER_PROJECT_ID+x}" ]; then
echo "FATAL: REPORT_COVERAGE was set, but NCOVER_PROJECT_ID was not"
exit 1
fi
echo "Running tests with coverage because REPORT_COVERAGE declared"
source ${XENADMIN_DIR}/mk/tests-checks-cover.sh
else
source ${XENADMIN_DIR}/mk/tests-checks.sh
fi
}
test_phase()
{
# Skip the tests if the SKIP_TESTS variable is defined (e.g. in the Jenkins UI, add "export SKIP_TESTS=1" above the call for build script)
if [ -n "${SKIP_TESTS+x}" ]; then
echo "Tests skipped because SKIP_TESTS declared"
else
source ${XENADMIN_DIR}/mk/tests-checks.sh
fi
# Skip the tests if the SKIP_TESTS variable is defined (e.g. in the Jenkins UI, add "export SKIP_TESTS=1" above the call for build script)
if [ -n "${SKIP_TESTS+x}" ]; then
echo "Tests skipped because SKIP_TESTS declared"
else
run_tests
fi
}
production_jenkins_build()

60
mk/tests-checks-cover.sh Normal file
View File

@ -0,0 +1,60 @@
#!/bin/bash
# Copyright (c) Citrix Systems Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms,
# with or without modification, are permitted provided
# that the following conditions are met:
#
# * Redistributions of source code must retain the above
# copyright notice, this list of conditions and the
# following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the
# following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
set -u
source "$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/declarations.sh"
net stop ncover || true # Stop ncover if it's running, so we have a known good service
net start ncover
echo "Running + monitoring coverage of tests..."
export NCOVER_USING_PROJECT="${NCOVER_PROJECT_ID}"
export NCOVER_BUILD_ID="${BUILD_ID}"
source "$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/tests-checks.sh"
ncover summarize --project="XC Tests" --wait
echo "Generating coverage report..."
ncover report --project="XC Tests" --execution="${BUILD_ID}" --file="$(cygpath -d ${TEST_DIR})\coverage.html" --detail=method
net stop ncover || true # Stop ncover, ignore the error if it's already stopped
cp ${TEST_DIR}/coverage.html ${OUTPUT_DIR}