From 1c5a5f21a339523ad5984287d9194cb511659136 Mon Sep 17 00:00:00 2001 From: Matt Kwong Date: Tue, 12 Sep 2017 17:44:37 -0700 Subject: Add .NET CLI to coverage Dockerfile --- .../test/multilang_jessie_x64/Dockerfile.template | 1 + tools/dockerfile/test/multilang_jessie_x64/Dockerfile | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/templates/tools/dockerfile/test/multilang_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/multilang_jessie_x64/Dockerfile.template index 6cad474a20..0d47aa91f3 100644 --- a/templates/tools/dockerfile/test/multilang_jessie_x64/Dockerfile.template +++ b/templates/tools/dockerfile/test/multilang_jessie_x64/Dockerfile.template @@ -19,6 +19,7 @@ <%include file="../../apt_get_basic.include"/> <%include file="../../gcp_api_libraries.include"/> <%include file="../../csharp_deps.include"/> + <%include file="../../csharp_dotnetcli_deps.include"/> <%include file="../../cxx_deps.include"/> <%include file="../../node_deps.include"/> <%include file="../../php_deps.include"/> diff --git a/tools/dockerfile/test/multilang_jessie_x64/Dockerfile b/tools/dockerfile/test/multilang_jessie_x64/Dockerfile index b7373b5d9c..6f1759bceb 100644 --- a/tools/dockerfile/test/multilang_jessie_x64/Dockerfile +++ b/tools/dockerfile/test/multilang_jessie_x64/Dockerfile @@ -70,6 +70,24 @@ RUN apt-get update && apt-get -y dist-upgrade && apt-get install -y \ RUN nuget update -self +# Install dotnet SDK based on https://www.microsoft.com/net/core#debian +RUN apt-get update && apt-get install -y curl libunwind8 gettext +# dotnet-dev-1.0.0-preview2-003131 +RUN curl -sSL -o dotnet100.tar.gz https://go.microsoft.com/fwlink/?LinkID=827530 +RUN mkdir -p /opt/dotnet && tar zxf dotnet100.tar.gz -C /opt/dotnet +# dotnet-dev-1.0.1 +RUN curl -sSL -o dotnet101.tar.gz https://go.microsoft.com/fwlink/?LinkID=843453 +RUN mkdir -p /opt/dotnet && tar zxf dotnet101.tar.gz -C /opt/dotnet +RUN ln -s /opt/dotnet/dotnet /usr/local/bin + +# Trigger the population of the local package cache +ENV NUGET_XMLDOC_MODE skip +RUN mkdir warmup \ + && cd warmup \ + && dotnet new \ + && cd .. \ + && rm -rf warmup + #================= # C++ dependencies RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean -- cgit v1.2.3 From 0c867bed5bb0425c57dd539e73c790ae3995d864 Mon Sep 17 00:00:00 2001 From: Matt Kwong Date: Thu, 21 Sep 2017 16:25:48 -0700 Subject: Add -lstdc++ flag for compiling under gcov --- Makefile | 2 +- binding.gyp | 1 + build.yaml | 2 +- grpc.gyp | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 0c3648566a..7e65718485 100644 --- a/Makefile +++ b/Makefile @@ -187,7 +187,7 @@ CXX_gcov = g++ LD_gcov = gcc LDXX_gcov = g++ CPPFLAGS_gcov = -O0 -fprofile-arcs -ftest-coverage -Wno-return-type -LDFLAGS_gcov = -fprofile-arcs -ftest-coverage -rdynamic +LDFLAGS_gcov = -fprofile-arcs -ftest-coverage -rdynamic -lstdc++ DEFINES_gcov = _DEBUG DEBUG GPR_GCOV VALID_CONFIG_memcheck = 1 diff --git a/binding.gyp b/binding.gyp index 06dc731935..3d07dda6d6 100644 --- a/binding.gyp +++ b/binding.gyp @@ -101,6 +101,7 @@ '-fprofile-arcs', '-ftest-coverage', '-rdynamic', + '-lstdc++', ], }], ['grpc_alpine=="true"', { diff --git a/build.yaml b/build.yaml index d15cf0339c..635c908e09 100644 --- a/build.yaml +++ b/build.yaml @@ -4778,7 +4778,7 @@ configs: CXX: g++ DEFINES: _DEBUG DEBUG GPR_GCOV LD: gcc - LDFLAGS: -fprofile-arcs -ftest-coverage -rdynamic + LDFLAGS: -fprofile-arcs -ftest-coverage -rdynamic -lstdc++ LDXX: g++ helgrind: CPPFLAGS: -O0 diff --git a/grpc.gyp b/grpc.gyp index 48fb2ba7cf..6be7050fca 100644 --- a/grpc.gyp +++ b/grpc.gyp @@ -98,6 +98,7 @@ '-fprofile-arcs', '-ftest-coverage', '-rdynamic', + '-lstdc++', ], }], ['grpc_alpine=="true"', { -- cgit v1.2.3 From c111341a178e526e3b92573514db0910acc69ccb Mon Sep 17 00:00:00 2001 From: Matt Kwong Date: Fri, 22 Sep 2017 11:25:34 -0700 Subject: Make Python generate coverage report in gcov mode --- tools/run_tests/run_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index b66c5f7f71..86fd7b34b2 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -639,7 +639,7 @@ class PythonLanguage(object): return [config.build for config in self.pythons] def post_tests_steps(self): - if self.config != 'gcov': + if self.config.build_config != 'gcov': return [] else: return [['tools/run_tests/helper_scripts/post_tests_python.sh']] -- cgit v1.2.3 From 316855ef9857636f5501678a7feac7b9cf9441fc Mon Sep 17 00:00:00 2001 From: Matt Kwong Date: Wed, 27 Sep 2017 14:26:41 -0700 Subject: Don't stop on failure in post test steps --- tools/run_tests/run_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 86fd7b34b2..aafd8bba35 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -1575,7 +1575,7 @@ def _build_and_run( suite_name=args.report_suite_name) number_failures, _ = jobset.run( - post_tests_steps, maxjobs=1, stop_on_failure=True, + post_tests_steps, maxjobs=1, stop_on_failure=False, newline_on_success=newline_on_success, travis=args.travis) out = [] -- cgit v1.2.3 From fa90655822ed6e02502f9d05b0479e12829042b9 Mon Sep 17 00:00:00 2001 From: Matt Kwong Date: Thu, 28 Sep 2017 10:24:22 -0700 Subject: Add coverage test to Kokoro --- tools/internal_ci/linux/grpc_coverage.cfg | 24 ++++++++++++++++++++++++ tools/internal_ci/linux/grpc_coverage.sh | 30 ++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 tools/internal_ci/linux/grpc_coverage.cfg create mode 100755 tools/internal_ci/linux/grpc_coverage.sh diff --git a/tools/internal_ci/linux/grpc_coverage.cfg b/tools/internal_ci/linux/grpc_coverage.cfg new file mode 100644 index 0000000000..56b7745b21 --- /dev/null +++ b/tools/internal_ci/linux/grpc_coverage.cfg @@ -0,0 +1,24 @@ +# Copyright 2017 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Config file for the internal CI (in protobuf text format) + +# Location of the continuous shell script in repository. +build_file: "grpc/tools/internal_ci/linux/grpc_coverage.sh" +timeout_mins: 420 +action { + define_artifacts { + regex: "github/grpc/reports/**" + } +} diff --git a/tools/internal_ci/linux/grpc_coverage.sh b/tools/internal_ci/linux/grpc_coverage.sh new file mode 100755 index 0000000000..31623d2618 --- /dev/null +++ b/tools/internal_ci/linux/grpc_coverage.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +# Copyright 2017 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -ex + +# Enter the gRPC repo root +cd $(dirname $0)/../../.. + +source tools/internal_ci/helper_scripts/prepare_build_linux_rc + +python tools/run_tests/run_tests.py \ + --use_docker \ + -t \ + -l all \ + -c gcov \ + -x report.xml \ + -j 16 + \ No newline at end of file -- cgit v1.2.3