Skip to content
Snippets Groups Projects
Commit 19b7b159 authored by Todd Gamblin's avatar Todd Gamblin
Browse files

coverage: use kcov to get coverage for our cc script

parent 51cbc278
No related branches found
No related tags found
No related merge requests found
...@@ -29,7 +29,6 @@ coverage: ...@@ -29,7 +29,6 @@ coverage:
ignore: ignore:
- lib/spack/spack/test/.* - lib/spack/spack/test/.*
- lib/spack/env/.*
- lib/spack/docs/.* - lib/spack/docs/.*
- lib/spack/external/.* - lib/spack/external/.*
......
...@@ -7,7 +7,6 @@ branch = True ...@@ -7,7 +7,6 @@ branch = True
source = lib source = lib
omit = omit =
lib/spack/spack/test/* lib/spack/spack/test/*
lib/spack/env/*
lib/spack/docs/* lib/spack/docs/*
lib/spack/external/* lib/spack/external/*
......
...@@ -133,17 +133,19 @@ addons: ...@@ -133,17 +133,19 @@ addons:
apt: apt:
packages: packages:
- ccache - ccache
- cmake
- gfortran - gfortran
- mercurial
- graphviz - graphviz
- gnupg2 - gnupg2
- cmake - kcov
- mercurial
- ninja-build - ninja-build
- perl
- perl-base
- realpath
- r-base - r-base
- r-base-core - r-base-core
- r-base-dev - r-base-dev
- perl
- perl-base
# for Mac builds, we use Homebrew # for Mac builds, we use Homebrew
homebrew: homebrew:
packages: packages:
......
#!/bin/bash
#
# This script acts like bash but runs kcov on the input script. We use it
# to get coverage for Spack's bash scripts.
#
if [ -z "$SPACK_ROOT" ]; then
echo "ERROR: SPACK_ROOT was not set!"
exit 1
fi
kcov "$SPACK_ROOT/coverage" "$@"
...@@ -11,15 +11,28 @@ ...@@ -11,15 +11,28 @@
# #
QA_DIR="$(dirname ${BASH_SOURCE[0]})" QA_DIR="$(dirname ${BASH_SOURCE[0]})"
SPACK_ROOT="$QA_DIR/../../.." export SPACK_ROOT=$(realpath "$QA_DIR/../../..")
# Source the setup script # Source the setup script
. "$SPACK_ROOT/share/spack/setup-env.sh" . "$SPACK_ROOT/share/spack/setup-env.sh"
# Set up some variables for running coverage tests. # Set up some variables for running coverage tests.
if [[ "$TEST_SUITE" == "unit" || "$TEST_SUITE" == "build" ]]; then if [[ "$TEST_SUITE" == "unit" || "$TEST_SUITE" == "build" ]]; then
# these set up coverage for Python
coverage=coverage coverage=coverage
coverage_run="coverage run" coverage_run="coverage run"
# make a coverage directory for kcov, and patch cc to use our bashcov
# script instead of plain bash
if [[ $TEST_SUITE == unit && # kcov segfaults for the MPICH build test
$TRAVIS_OS_NAME == linux &&
$TRAVIS_PYTHON_VERSION != 2.6 ]];
then
mkdir -p coverage
cc_script="$SPACK_ROOT/lib/spack/env/cc"
bashcov=$(realpath ${QA_DIR}/bashcov)
sed -i~ "s@#\!/bin/bash@#\!${bashcov}@" "$cc_script"
fi
else else
coverage="" coverage=""
coverage_run="" coverage_run=""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment