From 45484b31bbe736d6effb630ca0bc642856e883d1 Mon Sep 17 00:00:00 2001 From: David Garcia Quintas Date: Thu, 14 Jan 2016 18:59:20 -0800 Subject: [PATCH 1/3] Added sanity check for trailing newlines --- .../Grpc.Core.Tests/Internal/AsyncCallTest.cs | 2 +- src/csharp/Grpc.Core/Internal/AsyncCall.cs | 2 +- .../Grpc.Core/Internal/AsyncCallBase.cs | 2 +- .../Grpc.Core/Internal/AsyncCallServer.cs | 2 +- .../Grpc.Core/Internal/AsyncCompletion.cs | 2 +- .../Internal/BatchContextSafeHandle.cs | 2 +- .../Grpc.Core/Internal/CallSafeHandle.cs | 2 +- .../Grpc.Core/Properties/AssemblyInfo.cs | 2 +- .../HealthClientServerTest.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 +- src/node/test/echo_service.proto | 2 +- src/node/test/test_messages.proto | 2 +- src/node/test/test_service.proto | 2 +- src/proto/grpc/health/v1alpha/health.proto | 2 +- test/cpp/qps/client_async.cc | 2 +- test/cpp/qps/client_sync.cc | 2 +- .../generic_async_streaming_ping_pong_test.cc | 2 +- test/cpp/qps/qps_driver.cc | 2 +- test/cpp/qps/qps_worker.cc | 2 +- test/cpp/qps/server_async.cc | 2 +- test/cpp/util/subprocess.cc | 2 +- tools/distrib/check_trailing_newlines.sh | 67 +++++++++++++++++++ tools/run_tests/check_sources_and_headers.py | 2 +- tools/run_tests/run_sanity.sh | 2 +- 24 files changed, 90 insertions(+), 23 deletions(-) create mode 100755 tools/distrib/check_trailing_newlines.sh diff --git a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs index 246072bff13..543f6375df1 100644 --- a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs +++ b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs @@ -219,4 +219,4 @@ namespace Grpc.Core.Internal.Tests } } } -} \ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs index e3ecc472826..1423145b9ee 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs @@ -456,4 +456,4 @@ namespace Grpc.Core.Internal streamingCallFinishedTcs.SetResult(null); } } -} \ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs index 92f8d77e85d..13d75a826b7 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs @@ -356,4 +356,4 @@ namespace Grpc.Core.Internal FireCompletion(origCompletionDelegate, msg, null); } } -} \ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs index 0c805097f92..36f2fed82c4 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs @@ -215,4 +215,4 @@ namespace Grpc.Core.Internal finishedServersideTcs.SetResult(null); } } -} \ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs b/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs index c88cae98fe7..7e86fddb4d8 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs @@ -91,4 +91,4 @@ namespace Grpc.Core.Internal tcs.SetException(error); } } -} \ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs index 3a96414bea2..150e2115b31 100644 --- a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs @@ -263,4 +263,4 @@ namespace Grpc.Core.Internal } } } -} \ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs index 69dbdfea5e7..bbd8001492c 100644 --- a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs @@ -273,4 +273,4 @@ namespace Grpc.Core.Internal return buffered ? 0 : GRPC_WRITE_BUFFER_HINT; } } -} \ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs b/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs index 29db85d7aae..bde74945fbf 100644 --- a/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs +++ b/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs @@ -18,4 +18,4 @@ using System.Runtime.CompilerServices; "71394ee9672dfe5b55ea0f95dfd5a7f77d22c962ccf51320d3")] #else [assembly: InternalsVisibleTo("Grpc.Core.Tests")] -#endif \ No newline at end of file +#endif diff --git a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs index d90f21c2e1c..c7e15471444 100644 --- a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs +++ b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs @@ -93,4 +93,4 @@ namespace Grpc.HealthCheck.Tests // TODO(jtattermusch): add test with timeout once timeouts are supported } -} \ No newline at end of file +} diff --git a/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs b/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs index 41a54a98bc8..4d7b33c669c 100644 --- a/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs +++ b/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ using System.Runtime.CompilerServices; [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("Google Inc. All rights reserved.")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] \ No newline at end of file +[assembly: AssemblyCulture("")] diff --git a/src/node/test/echo_service.proto b/src/node/test/echo_service.proto index b2c7e3dc236..fc941a29044 100644 --- a/src/node/test/echo_service.proto +++ b/src/node/test/echo_service.proto @@ -36,4 +36,4 @@ message EchoMessage { service EchoService { rpc Echo (EchoMessage) returns (EchoMessage); -} \ No newline at end of file +} diff --git a/src/node/test/test_messages.proto b/src/node/test/test_messages.proto index 685e9482bd2..1b611b82a7e 100644 --- a/src/node/test/test_messages.proto +++ b/src/node/test/test_messages.proto @@ -35,4 +35,4 @@ message LongValues { sint64 sint_64 = 3; fixed64 fixed_64 = 4; sfixed64 sfixed_64 = 5; -} \ No newline at end of file +} diff --git a/src/node/test/test_service.proto b/src/node/test/test_service.proto index 564169829c3..c86ce51d910 100644 --- a/src/node/test/test_service.proto +++ b/src/node/test/test_service.proto @@ -49,4 +49,4 @@ service TestService { rpc BidiStream (stream Request) returns (stream Response) { } -} \ No newline at end of file +} diff --git a/src/proto/grpc/health/v1alpha/health.proto b/src/proto/grpc/health/v1alpha/health.proto index 28786c4427d..e6214c56910 100644 --- a/src/proto/grpc/health/v1alpha/health.proto +++ b/src/proto/grpc/health/v1alpha/health.proto @@ -48,4 +48,4 @@ message HealthCheckResponse { service Health { rpc Check(HealthCheckRequest) returns (HealthCheckResponse); -} \ No newline at end of file +} diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc index 3e2317c6d46..f270cd09875 100644 --- a/test/cpp/qps/client_async.cc +++ b/test/cpp/qps/client_async.cc @@ -599,4 +599,4 @@ std::unique_ptr CreateGenericAsyncStreamingClient( } } // namespace testing -} // namespace grpc \ No newline at end of file +} // namespace grpc diff --git a/test/cpp/qps/client_sync.cc b/test/cpp/qps/client_sync.cc index 1045915b832..92fbf240ce2 100644 --- a/test/cpp/qps/client_sync.cc +++ b/test/cpp/qps/client_sync.cc @@ -172,4 +172,4 @@ std::unique_ptr CreateSynchronousStreamingClient( } } // namespace testing -} // namespace grpc \ No newline at end of file +} // namespace grpc diff --git a/test/cpp/qps/generic_async_streaming_ping_pong_test.cc b/test/cpp/qps/generic_async_streaming_ping_pong_test.cc index 7a1275054a6..2b2e1c820f5 100644 --- a/test/cpp/qps/generic_async_streaming_ping_pong_test.cc +++ b/test/cpp/qps/generic_async_streaming_ping_pong_test.cc @@ -79,4 +79,4 @@ int main(int argc, char** argv) { grpc::testing::RunGenericAsyncStreamingPingPong(); return 0; -} \ No newline at end of file +} diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc index c70db188d9c..eb0a7a5f4e6 100644 --- a/test/cpp/qps/qps_driver.cc +++ b/test/cpp/qps/qps_driver.cc @@ -184,4 +184,4 @@ int main(int argc, char** argv) { grpc::testing::QpsDriver(); return 0; -} \ No newline at end of file +} diff --git a/test/cpp/qps/qps_worker.cc b/test/cpp/qps/qps_worker.cc index e7714c0bb30..bed867e1a4a 100644 --- a/test/cpp/qps/qps_worker.cc +++ b/test/cpp/qps/qps_worker.cc @@ -239,4 +239,4 @@ QpsWorker::QpsWorker(int driver_port) { QpsWorker::~QpsWorker() {} } // namespace testing -} // namespace grpc \ No newline at end of file +} // namespace grpc diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc index 1ae88d7323e..d530dac86b3 100644 --- a/test/cpp/qps/server_async.cc +++ b/test/cpp/qps/server_async.cc @@ -397,4 +397,4 @@ std::unique_ptr CreateAsyncGenericServer(const ServerConfig &config) { } } // namespace testing -} // namespace grpc \ No newline at end of file +} // namespace grpc diff --git a/test/cpp/util/subprocess.cc b/test/cpp/util/subprocess.cc index d758f629acc..c31802b9a3b 100644 --- a/test/cpp/util/subprocess.cc +++ b/test/cpp/util/subprocess.cc @@ -56,4 +56,4 @@ int SubProcess::Join() { return gpr_subprocess_join(subprocess_); } void SubProcess::Interrupt() { gpr_subprocess_interrupt(subprocess_); } -} // namespace grpc \ No newline at end of file +} // namespace grpc diff --git a/tools/distrib/check_trailing_newlines.sh b/tools/distrib/check_trailing_newlines.sh new file mode 100755 index 00000000000..0be21f0cfff --- /dev/null +++ b/tools/distrib/check_trailing_newlines.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# Copyright 2016, 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. + +# change to root directory +cd $(dirname $0)/../.. + +function find_without_newline() { + find . -type f -not -path './third_party/*' -and \( \ + -name '*.c' \ + -or -name '*.cc' \ + -or -name '*.proto' \ + -or -name '*.rb' \ + -or -name '*.py' \ + -or -name '*.cs' \ + -or -name '*.sh' \) -print0 \ + | while IFS= read -r -d '' f; do + if [[ ! -z $f ]]; then + if [[ $(tail -c 1 "$f") != $NEWLINE ]]; then + echo "Error: file '$f' is missing a trailing newline character." + if $2; then # fix + sed -i -e '$a\' $f + echo 'Fixed!' + fi + fi + fi + done +} + +if [[ $# == 1 && $1 == '--fix' ]]; then + ERRORS=$(find_without_newline true) +else + ERRORS=$(find_without_newline false) +fi + +if [[ "$ERRORS" != '' ]]; then + echo "$ERRORS" + if ! $FIX; then + exit 1 + fi +fi diff --git a/tools/run_tests/check_sources_and_headers.py b/tools/run_tests/check_sources_and_headers.py index cee32888dc4..6f4c5a8657c 100755 --- a/tools/run_tests/check_sources_and_headers.py +++ b/tools/run_tests/check_sources_and_headers.py @@ -80,4 +80,4 @@ for target in js: target['name'], fn, m.group(1))) errors += 1 -assert errors == 0 \ No newline at end of file +assert errors == 0 diff --git a/tools/run_tests/run_sanity.sh b/tools/run_tests/run_sanity.sh index 690332daae0..467f06edd75 100755 --- a/tools/run_tests/run_sanity.sh +++ b/tools/run_tests/run_sanity.sh @@ -60,4 +60,4 @@ fi ./tools/buildgen/generate_projects.sh ./tools/distrib/check_copyright.py ./tools/distrib/clang_format_code.sh - +./tools/distrib/check_trailing_newlines.sh From 3c1720c9845e751de194e4139ade9f4fb8f46244 Mon Sep 17 00:00:00 2001 From: David Garcia Quintas Date: Fri, 15 Jan 2016 12:16:03 -0800 Subject: [PATCH 2/3] Updated copyrights... --- src/core/census/initialize.c | 2 +- src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs | 2 +- src/csharp/Grpc.Core/Internal/AsyncCall.cs | 2 +- src/csharp/Grpc.Core/Internal/AsyncCallBase.cs | 2 +- src/csharp/Grpc.Core/Internal/AsyncCallServer.cs | 2 +- src/csharp/Grpc.Core/Internal/AsyncCompletion.cs | 2 +- src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs | 2 +- src/csharp/Grpc.Core/Internal/CallSafeHandle.cs | 2 +- src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs | 2 +- src/node/test/echo_service.proto | 2 +- src/node/test/test_messages.proto | 2 +- src/node/test/test_service.proto | 2 +- src/proto/grpc/health/v1alpha/health.proto | 2 +- test/cpp/util/subprocess.cc | 2 +- tools/run_tests/check_sources_and_headers.py | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/core/census/initialize.c b/src/core/census/initialize.c index 989708d42cd..b7af714e0be 100644 --- a/src/core/census/initialize.c +++ b/src/core/census/initialize.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs index 543f6375df1..d5a1eeb0fba 100644 --- a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs +++ b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs index 1423145b9ee..7dc4490281d 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs index 13d75a826b7..81a9a40fcc3 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs index 36f2fed82c4..6752d3fab33 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs b/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs index 7e86fddb4d8..d5bbf676ff7 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs index 150e2115b31..125fb40b326 100644 --- a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs index bbd8001492c..298c5e29ab8 100644 --- a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs index c7e15471444..a8a76c74922 100644 --- a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs +++ b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/src/node/test/echo_service.proto b/src/node/test/echo_service.proto index fc941a29044..11b4f18c35d 100644 --- a/src/node/test/echo_service.proto +++ b/src/node/test/echo_service.proto @@ -1,4 +1,4 @@ -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/src/node/test/test_messages.proto b/src/node/test/test_messages.proto index 1b611b82a7e..c77a937d3f4 100644 --- a/src/node/test/test_messages.proto +++ b/src/node/test/test_messages.proto @@ -1,4 +1,4 @@ -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/src/node/test/test_service.proto b/src/node/test/test_service.proto index c86ce51d910..0ac2ae79a7e 100644 --- a/src/node/test/test_service.proto +++ b/src/node/test/test_service.proto @@ -1,4 +1,4 @@ -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/src/proto/grpc/health/v1alpha/health.proto b/src/proto/grpc/health/v1alpha/health.proto index e6214c56910..05f837dd990 100644 --- a/src/proto/grpc/health/v1alpha/health.proto +++ b/src/proto/grpc/health/v1alpha/health.proto @@ -1,4 +1,4 @@ -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without diff --git a/test/cpp/util/subprocess.cc b/test/cpp/util/subprocess.cc index c31802b9a3b..33f3820a2bb 100644 --- a/test/cpp/util/subprocess.cc +++ b/test/cpp/util/subprocess.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/tools/run_tests/check_sources_and_headers.py b/tools/run_tests/check_sources_and_headers.py index 6f4c5a8657c..50574f44b0e 100755 --- a/tools/run_tests/check_sources_and_headers.py +++ b/tools/run_tests/check_sources_and_headers.py @@ -1,5 +1,5 @@ #!/usr/bin/env python2.7 -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without From 71a8604488a22ea2d36f8aca04010d88ed45f5bf Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 15 Jan 2016 14:59:58 -0800 Subject: [PATCH 3/3] Fix TSAN on Jenkins and on my machine --- Makefile | 7 +++++-- templates/Makefile.template | 7 +++++-- tools/run_tests/run_tests.py | 7 ++++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index d4131aefe97..6d15a57745d 100644 --- a/Makefile +++ b/Makefile @@ -36,6 +36,9 @@ +comma := , + + # Basic platform detection HOST_SYSTEM = $(shell uname | cut -f 1 -d_) ifeq ($(SYSTEM),) @@ -149,7 +152,7 @@ LD_tsan = clang LDXX_tsan = clang++ CFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE -pie CXXFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE -pie -LDFLAGS_tsan = -fsanitize=thread -fPIE -pie -Wl,-Ttext-segment=0x7e0000000000 +LDFLAGS_tsan = -fsanitize=thread -fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,) DEFINES_tsan = NDEBUG GRPC_TEST_SLOWDOWN_BUILD_FACTOR=10 VALID_CONFIG_asan = 1 @@ -171,7 +174,7 @@ LD_msan = clang LDXX_msan = clang++-libc++ CFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie CXXFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie -LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -fPIE -pie -Wl,-Ttext-segment=0x7e0000000000 +LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,) DEFINES_msan = NDEBUG GRPC_TEST_SLOWDOWN_BUILD_FACTOR=4 VALID_CONFIG_ubsan = 1 diff --git a/templates/Makefile.template b/templates/Makefile.template index e47b9f05189..4353a0de3a8 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -52,6 +52,9 @@ %> + comma := , + + # Basic platform detection HOST_SYSTEM = $(shell uname | cut -f 1 -d_) ifeq ($(SYSTEM),) @@ -165,7 +168,7 @@ LDXX_tsan = clang++ CFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE -pie CXXFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE -pie - LDFLAGS_tsan = -fsanitize=thread -fPIE -pie -Wl,-Ttext-segment=0x7e0000000000 + LDFLAGS_tsan = -fsanitize=thread -fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,) DEFINES_tsan = NDEBUG GRPC_TEST_SLOWDOWN_BUILD_FACTOR=10 VALID_CONFIG_asan = 1 @@ -187,7 +190,7 @@ LDXX_msan = clang++-libc++ CFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie CXXFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie - LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -fPIE -pie -Wl,-Ttext-segment=0x7e0000000000 + LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,) DEFINES_msan = NDEBUG GRPC_TEST_SLOWDOWN_BUILD_FACTOR=4 VALID_CONFIG_ubsan = 1 diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 0de20a634a4..97962bd9284 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -772,9 +772,10 @@ else: return [jobset.JobSpec([os.getenv('MAKE', 'make'), '-f', makefile, '-j', '%d' % (multiprocessing.cpu_count() + 1), - 'EXTRA_DEFINES=GRPC_TEST_SLOWDOWN_MACHINE_FACTOR=%f' % - args.slowdown, - 'CONFIG=%s' % cfg] + targets, + 'EXTRA_DEFINES=GRPC_TEST_SLOWDOWN_MACHINE_FACTOR=%f' % args.slowdown, + 'CONFIG=%s' % cfg] + + ([] if not args.travis else ['JENKINS_BUILD=1']) + + targets, timeout_seconds=30*60)] else: return []