• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/sh
2# Copyright 2019 gRPC authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#     http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16set -e
17
18cd "$(dirname "$0")/../../.."
19
20#
21# Prevent the use of synchronization and threading constructs from std:: since
22# the code should be using grpc_core::Mutex, grpc::internal::Mutex,
23# grpc_core::Thread, etc.
24#
25
26grep -EIrn \
27    '\bstd::(mutex|condition_variable|lock_guard|unique_lock|thread|string_view)' \
28    include/grpc include/grpcpp src/core src/cpp | \
29    grep -Ev 'include/grpcpp/impl/sync.h|src/core/util/work_serializer.cc' | \
30    diff - /dev/null
31
32#
33# Prevent the include of disallowed C++ headers.
34#
35
36grep -EIrn \
37    '^#include (<mutex>|<condition_variable>|<thread>|<ratio>|<filesystem>|<future>|<system_error>)' \
38    include/grpc include/grpcpp src/core src/cpp | \
39    grep -Ev 'include/grpcpp/impl/sync.h|src/core/util/work_serializer.cc' | \
40    diff - /dev/null
41
42#
43# Prevent the include of headers that shouldn't be used in tests.
44#
45
46grep -EIrn \
47    '^#include (<pthread.h>)' \
48    test | \
49    diff - /dev/null
50
51#
52# Prevent the use of CHECK in this folder.
53# ABSL_CHECK should be used instead
54#
55
56grep -EIrn \
57    '\s(CHECK_EQ\(|CHECK_GE\(|CHECK_GT\(|CHECK_LE\(|CHECK_LT\(|CHECK_NE\(|CHECK_OK\(|CHECK_STRCASEEQ\(|CHECK_STRCASENE\(|CHECK_STREQ\(|CHECK_STRNE\(|DCHECK_EQ\(|DCHECK_GE\(|DCHECK_GT\(|DCHECK_LE\(|DCHECK_LT\(|DCHECK_NE\(|DCHECK_OK\(|DCHECK_STRCASEEQ\(|DCHECK_STRCASENE\(|DCHECK_STREQ\(|DCHECK_STRNE\(|QCHECK_EQ\(|QCHECK_GE\(|QCHECK_GT\(|QCHECK_LE\(|QCHECK_LT\(|QCHECK_NE\(|QCHECK_OK\(|QCHECK_STRCASEEQ\(|QCHECK_STRCASENE\(|QCHECK_STREQ\(|QCHECK_STRNE\()' \
58    include | \
59    diff - /dev/null
60
61#
62# Prevent the use of absl LOG in this folder.
63# ABSL_LOG should be used instead
64#
65
66grep -EIrn \
67    '\s(DLOG\(|DLOG_EVERY_N\(|DLOG_EVERY_N_SEC\(|DLOG_EVERY_POW_2\(|DLOG_FIRST_N\(|DLOG_IF\(|DLOG_IF_EVERY_N\(|DLOG_IF_EVERY_N_SEC\(|DLOG_IF_EVERY_POW_2\(|DLOG_IF_FIRST_N\(|DVLOG\(|LOG\(|LOG_EVERY_N\(|LOG_EVERY_N_SEC\(|LOG_EVERY_POW_2\(|LOG_FIRST_N\(|LOG_IF\(|LOG_IF_EVERY_N\(|LOG_IF_EVERY_N_SEC\(|LOG_IF_EVERY_POW_2\(|LOG_IF_FIRST_N\(|PLOG\(|PLOG_EVERY_N\(|PLOG_EVERY_N_SEC\(|PLOG_EVERY_POW_2\(|PLOG_FIRST_N\(|PLOG_IF\(|PLOG_IF_EVERY_N\(|PLOG_IF_EVERY_N_SEC\(|PLOG_IF_EVERY_POW_2\(|PLOG_IF_FIRST_N\(|VLOG\(|VLOG_EVERY_N\(|VLOG_EVERY_N_SEC\(|VLOG_EVERY_POW_2\(|VLOG_FIRST_N\()' \
68    include | \
69    diff - /dev/null
70