Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | set -e |
| 4 | |
| 5 | SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" |
| 6 | |
| 7 | # Guess path to LLVM_CHECKOUT if not provided |
| 8 | if [ "${LLVM_CHECKOUT}" == "" ]; then |
| 9 | LLVM_CHECKOUT="${SCRIPT_DIR}/../../../../../" |
| 10 | echo "LLVM Checkout: ${LLVM_CHECKOUT}" |
| 11 | fi |
| 12 | |
| 13 | # Cpplint setup |
| 14 | cd ${SCRIPT_DIR} |
| 15 | if [ ! -d cpplint ]; then |
Alexey Samsonov | 49a32c1 | 2013-01-30 07:45:58 +0000 | [diff] [blame] | 16 | svn co http://google-styleguide.googlecode.com/svn/trunk/cpplint cpplint |
| 17 | else |
| 18 | (cd cpplint && svn up) |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 19 | fi |
| 20 | CPPLINT=${SCRIPT_DIR}/cpplint/cpplint.py |
| 21 | |
| 22 | # Filters |
| 23 | # TODO: remove some of these filters |
Evgeniy Stepanov | 60a8e5b | 2013-02-08 12:13:43 +0000 | [diff] [blame] | 24 | COMMON_LINT_FILTER=-build/include,-build/header_guard,-legal/copyright,-whitespace/comments,-readability/casting,\ |
| 25 | -build/namespaces |
Evgeniy Stepanov | ec1d286 | 2013-02-20 11:06:07 +0000 | [diff] [blame] | 26 | ASAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER},-readability/check,-runtime/int |
Evgeniy Stepanov | 60a8e5b | 2013-02-08 12:13:43 +0000 | [diff] [blame] | 27 | ASAN_TEST_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/sizeof,-runtime/int,-runtime/printf |
Alexey Samsonov | 506b97d | 2012-12-13 12:09:47 +0000 | [diff] [blame] | 28 | ASAN_LIT_TEST_LINT_FILTER=${ASAN_TEST_LINT_FILTER},-whitespace/line_length |
Evgeniy Stepanov | 60a8e5b | 2013-02-08 12:13:43 +0000 | [diff] [blame] | 29 | TSAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER} |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 30 | TSAN_TEST_LINT_FILTER=${TSAN_RTL_LINT_FILTER},-runtime/threadsafe_fn,-runtime/int |
Alexey Samsonov | 8474843 | 2012-12-28 10:06:26 +0000 | [diff] [blame] | 31 | TSAN_LIT_TEST_LINT_FILTER=${TSAN_TEST_LINT_FILTER},-whitespace/line_length |
Evgeniy Stepanov | 60a8e5b | 2013-02-08 12:13:43 +0000 | [diff] [blame] | 32 | MSAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER} |
Evgeniy Stepanov | 5fa8fb7 | 2013-02-12 11:34:52 +0000 | [diff] [blame] | 33 | COMMON_RTL_INC_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/int,-runtime/sizeof,-runtime/printf |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 34 | |
| 35 | cd ${LLVM_CHECKOUT} |
| 36 | |
| 37 | # LLVM Instrumentation |
| 38 | LLVM_INSTRUMENTATION=lib/Transforms/Instrumentation |
| 39 | LLVM_LINT_FILTER=-,+whitespace |
Evgeniy Stepanov | fb37510 | 2012-12-14 13:48:55 +0000 | [diff] [blame] | 40 | ${CPPLINT} --filter=${LLVM_LINT_FILTER} ${LLVM_INSTRUMENTATION}/*Sanitizer.cpp \ |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 41 | ${LLVM_INSTRUMENTATION}/BlackList.* |
| 42 | |
| 43 | COMPILER_RT=projects/compiler-rt |
| 44 | |
| 45 | # Headers |
| 46 | SANITIZER_INCLUDES=${COMPILER_RT}/include/sanitizer |
| 47 | ${CPPLINT} --filter=${TSAN_RTL_LINT_FILTER} ${SANITIZER_INCLUDES}/*.h |
| 48 | |
| 49 | # Sanitizer_common |
| 50 | COMMON_RTL=${COMPILER_RT}/lib/sanitizer_common |
| 51 | ${CPPLINT} --filter=${ASAN_RTL_LINT_FILTER} ${COMMON_RTL}/*.{cc,h} |
| 52 | ${CPPLINT} --filter=${TSAN_RTL_LINT_FILTER} ${COMMON_RTL}/tests/*.cc |
| 53 | |
Evgeniy Stepanov | 83f05bf | 2012-12-11 12:52:38 +0000 | [diff] [blame] | 54 | # Interception |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 55 | INTERCEPTION=${COMPILER_RT}/lib/interception |
| 56 | ${CPPLINT} --filter=${ASAN_RTL_LINT_FILTER} ${INTERCEPTION}/*.{cc,h} |
| 57 | |
| 58 | # ASan |
| 59 | ASAN_RTL=${COMPILER_RT}/lib/asan |
| 60 | ${CPPLINT} --filter=${ASAN_RTL_LINT_FILTER} ${ASAN_RTL}/*.{cc,h} |
Alexey Samsonov | c21f901 | 2012-09-11 10:31:28 +0000 | [diff] [blame] | 61 | ${CPPLINT} --filter=${ASAN_TEST_LINT_FILTER} ${ASAN_RTL}/tests/*.{cc,h} |
Alexey Samsonov | 506b97d | 2012-12-13 12:09:47 +0000 | [diff] [blame] | 62 | ${CPPLINT} --filter=${ASAN_LIT_TEST_LINT_FILTER} ${ASAN_RTL}/lit_tests/*.cc \ |
Kostya Serebryany | 4d45b9b | 2012-09-05 09:07:02 +0000 | [diff] [blame] | 63 | ${ASAN_RTL}/lit_tests/*/*.cc \ |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 64 | |
| 65 | # TSan |
| 66 | TSAN_RTL=${COMPILER_RT}/lib/tsan |
| 67 | ${CPPLINT} --filter=${TSAN_RTL_LINT_FILTER} ${TSAN_RTL}/rtl/*.{cc,h} |
Alexey Samsonov | 5a42ac5 | 2012-09-18 07:26:51 +0000 | [diff] [blame] | 68 | ${CPPLINT} --filter=${TSAN_TEST_LINT_FILTER} ${TSAN_RTL}/tests/rtl/*.{cc,h} \ |
Alexey Samsonov | 8474843 | 2012-12-28 10:06:26 +0000 | [diff] [blame] | 69 | ${TSAN_RTL}/tests/unit/*.cc |
| 70 | ${CPPLINT} --filter=${TSAN_LIT_TEST_LINT_FILTER} ${TSAN_RTL}/lit_tests/*.cc |
Evgeniy Stepanov | c8cde8d | 2013-01-18 15:53:43 +0000 | [diff] [blame] | 71 | |
Evgeniy Stepanov | 83f05bf | 2012-12-11 12:52:38 +0000 | [diff] [blame] | 72 | # MSan |
| 73 | MSAN_RTL=${COMPILER_RT}/lib/msan |
| 74 | ${CPPLINT} --filter=${MSAN_RTL_LINT_FILTER} ${MSAN_RTL}/*.{cc,h} |
Evgeniy Stepanov | c8cde8d | 2013-01-18 15:53:43 +0000 | [diff] [blame] | 75 | |
Evgeniy Stepanov | 8a3666f | 2013-01-18 16:24:50 +0000 | [diff] [blame] | 76 | set +e |
| 77 | |
Evgeniy Stepanov | c8cde8d | 2013-01-18 15:53:43 +0000 | [diff] [blame] | 78 | # Misc files |
| 79 | FILES=${COMMON_RTL}/*.inc |
| 80 | for FILE in $FILES; do |
Evgeniy Stepanov | 8a3666f | 2013-01-18 16:24:50 +0000 | [diff] [blame] | 81 | TMPFILE=$(mktemp -u ${FILE}.XXXXX).cc |
Evgeniy Stepanov | c8cde8d | 2013-01-18 15:53:43 +0000 | [diff] [blame] | 82 | echo "Checking $FILE" |
Evgeniy Stepanov | 8a3666f | 2013-01-18 16:24:50 +0000 | [diff] [blame] | 83 | cp -f $FILE $TMPFILE && \ |
Evgeniy Stepanov | 60a8e5b | 2013-02-08 12:13:43 +0000 | [diff] [blame] | 84 | ${CPPLINT} --filter=${COMMON_RTL_INC_LINT_FILTER} $TMPFILE |
Evgeniy Stepanov | c8cde8d | 2013-01-18 15:53:43 +0000 | [diff] [blame] | 85 | rm $TMPFILE |
| 86 | done |