-
Notifications
You must be signed in to change notification settings - Fork 37
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #377 from caleb-sitton-inl/code-coverage
Code coverage
- Loading branch information
Showing
8 changed files
with
158 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
#!/bin/bash | ||
SCRIPT_DIRNAME=`dirname $0` | ||
SCRIPT_DIR=`(cd $SCRIPT_DIRNAME; pwd)` | ||
RAVEN_DIR=`python -c 'from src._utils import get_raven_loc; print(get_raven_loc())'` | ||
source $RAVEN_DIR/scripts/establish_conda_env.sh --quiet --load | ||
RAVEN_LIBS_PATH=`conda env list | awk -v rln="$RAVEN_LIBS_NAME" '$0 ~ rln {print $NF}'` | ||
BUILD_DIR=${BUILD_DIR:=$RAVEN_LIBS_PATH/build} | ||
INSTALL_DIR=${INSTALL_DIR:=$RAVEN_LIBS_PATH} | ||
PYTHON_CMD=${PYTHON_CMD:=python} | ||
JOBS=${JOBS:=1} | ||
mkdir -p $BUILD_DIR | ||
mkdir -p $INSTALL_DIR | ||
DOWNLOADER='curl -C - -L -O ' | ||
|
||
ORIGPYTHONPATH="$PYTHONPATH" | ||
|
||
update_python_path () | ||
{ | ||
if ls -d $INSTALL_DIR/lib/python* | ||
then | ||
export PYTHONPATH=`ls -d $INSTALL_DIR/lib/python*/site-packages/`:"$ORIGPYTHONPATH" | ||
fi | ||
} | ||
|
||
update_python_path | ||
PATH=$INSTALL_DIR/bin:$PATH | ||
|
||
if which coverage | ||
then | ||
echo coverage already available, skipping building it. | ||
else | ||
if curl http://www.energy.gov > /dev/null | ||
then | ||
echo Successfully got data from the internet | ||
else | ||
echo Could not connect to internet | ||
fi | ||
|
||
cd $BUILD_DIR | ||
#SHA256=56e448f051a201c5ebbaa86a5efd0ca90d327204d8b059ab25ad0f35fbfd79f1 | ||
$DOWNLOADER https://files.pythonhosted.org/packages/ef/05/31553dc038667012853d0a248b57987d8d70b2d67ea885605f87bcb1baba/coverage-7.5.4.tar.gz | ||
tar -xvzf coverage-7.5.4.tar.gz | ||
cd coverage-7.5.4 | ||
(unset CC CXX; $PYTHON_CMD setup.py install --prefix=$INSTALL_DIR) | ||
fi | ||
|
||
update_python_path | ||
|
||
cd $SCRIPT_DIR | ||
|
||
#coverage help run | ||
SRC_DIR=`(cd src && pwd)` | ||
|
||
# get display var | ||
DISPLAY_VAR=`(echo $DISPLAY)` | ||
# reset it | ||
export DISPLAY= | ||
|
||
export COVERAGE_RCFILE="$SRC_DIR/../tests/.coveragerc" | ||
SOURCE_DIRS=($SRC_DIR,$SRC_DIR/../templates/) | ||
OMIT_FILES=($SRC_DIR/dispatch/twin_pyomo_test.py,$SRC_DIR/dispatch/twin_pyomo_test_rte.py,$SRC_DIR/dispatch/twin_pyomo_limited_ramp.py,$SRC_DIR/ArmaBypass.py) | ||
EXTRA="--source=${SOURCE_DIRS[@]} --omit=${OMIT_FILES[@]} --parallel-mode " | ||
export COVERAGE_FILE=`pwd`/.coverage | ||
|
||
coverage erase | ||
($RAVEN_DIR/run_tests "$@" --re=HERON/tests --python-command="coverage run $EXTRA " || echo run_tests done but some tests failed) | ||
|
||
#get DISPLAY BACK | ||
DISPLAY=$DISPLAY_VAR | ||
|
||
## Prepare data and generate the html documents | ||
coverage combine | ||
coverage html | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# .coveragerc to control coverage.py | ||
[run] | ||
#branch = True | ||
parallel = True | ||
|
||
[report] | ||
# Regexes for lines to exclude from consideration | ||
exclude_lines = | ||
# Have to re-enable the standard pragma | ||
pragma: no cover | ||
|
||
# Don't complain about missing debug-only code: | ||
#def __repr__ | ||
#if self\.debug | ||
|
||
# Don't complain if tests don't hit defensive assertion code: | ||
raise AssertionError | ||
raise NotImplementedError | ||
raise IOError | ||
raise Exception | ||
|
||
# Don't complain for the things under development | ||
pragma: under development | ||
|
||
# Don't complain if non-runnable code isn't run: | ||
if 0: | ||
if __name__ == .__main__.: | ||
|
||
ignore_errors = True | ||
|
||
[html] | ||
directory = tests/coverage_html_report |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Code Coverage | ||
## Coverage source | ||
The "source" for code coverage defines a list of files over which code coverage is checked. This is defined in the `HERON/check_py_coverage.sh` script. By default when the source directory is specified, coverage.py measures coverage over all files in the source directory(ies) ending with .py, .pyw, .pyo, or .pyc that have typical punctuation. It also measures all files in subdirectories that also include an `__init__.py` file. For details see https://coverage.readthedocs.io/en/7.5.4/source.html#source | ||
|
||
HERON code coverage is currently set up to run all files in the `HERON/src/` directory as well as in the `HERON/templates/` directory (provided the limitations listed above). Exceptions, which are in these directories but not covered, are listed as omitted files and directories in `HERON/check_py_coverage.sh`. Currently this list is comprised of the following files: | ||
- `HERON/src/ARMABypass.py` | ||
- `HERON/src/dispatch/twin_pyomo_test.py` | ||
- `HERON/src/dispatch/twin_pyomo_test_rte.py` | ||
- `HERON/src/dispatch/twin_pyomo_limited_ramp.py` | ||
|
||
Note additionally that files in some subdirectories of `HERON/src` are omitted automatically by coverage.py because those subdirectories lack an `__init__.py` file. An example is the `HERON/src/Testers/` directory. |