diff options
author | Matt Kwong <mattkwong@google.com> | 2017-03-30 18:22:21 -0700 |
---|---|---|
committer | Matt Kwong <mattkwong@google.com> | 2017-03-31 09:54:11 -0700 |
commit | 0ff1957a5bb30f6ba0a461ce077f4b94ab0d6f63 (patch) | |
tree | 89319f44261c8e9b2d82865816f8fadf5eb2e955 /tools/run_tests | |
parent | 24eab2a127531ce322027734839548aa4a0932b1 (diff) |
Fix test coverage reporting
Diffstat (limited to 'tools/run_tests')
-rwxr-xr-x | tools/run_tests/helper_scripts/post_tests_php.sh | 2 | ||||
-rwxr-xr-x | tools/run_tests/helper_scripts/post_tests_python.sh | 39 | ||||
-rwxr-xr-x | tools/run_tests/run_tests.py | 9 |
3 files changed, 47 insertions, 3 deletions
diff --git a/tools/run_tests/helper_scripts/post_tests_php.sh b/tools/run_tests/helper_scripts/post_tests_php.sh index 23dc202322..43b665e23e 100755 --- a/tools/run_tests/helper_scripts/post_tests_php.sh +++ b/tools/run_tests/helper_scripts/post_tests_php.sh @@ -43,4 +43,4 @@ genhtml $tmp2 --output-directory $out rm $tmp2 rm $tmp1 -cp -rv $root/src/php/coverage $root/reports/php +# todo(mattkwong): generate coverage report for php and copy to reports/php diff --git a/tools/run_tests/helper_scripts/post_tests_python.sh b/tools/run_tests/helper_scripts/post_tests_python.sh new file mode 100755 index 0000000000..4f5986b3a1 --- /dev/null +++ b/tools/run_tests/helper_scripts/post_tests_python.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# Copyright 2017, Google 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. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# 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 +# OWNER 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 -ex + +if [ "$CONFIG" != "gcov" ] ; then exit ; fi + +# change to directory of Python coverage files +cd $(dirname $0)/../../../src/python/grpcio_tests/ + +coverage combine . +coverage html -i -d ./../../../reports/python diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 00dd4ca605..0b4f26ca44 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -614,7 +614,10 @@ class PythonLanguage(object): return [config.build for config in self.pythons] def post_tests_steps(self): - return [] + if self.config != 'gcov': + return [] + else: + return [['tools/run_tests/helper_scripts/post_tests_python.sh']] def makefile_name(self): return 'Makefile' @@ -1270,7 +1273,9 @@ if any(language.make_options() for language in languages): print('languages with custom make options cannot be built simultaneously with other languages') sys.exit(1) else: - language_make_options = next(iter(languages)).make_options() + # Combining make options is not clean and just happens to work. It allows C/C++ and C# to build + # together, and is only used under gcov. All other configs should build languages individually. + language_make_options = list(set([make_option for lang in languages for make_option in lang.make_options()])) if args.use_docker: if not args.travis: |