Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(749)

Side by Side Diff: tools/clang/plugins/tests/test.sh

Issue 1124763003: Update from https://crrev.com/327068 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: update nacl, buildtools, fix display_change_notifier_unittest Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # 2 #
3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 # 6 #
7 # Hacky, primitive testing: This runs the style plugin for a set of input files 7 # Hacky, primitive testing: This runs the style plugin for a set of input files
8 # and compares the output with golden result files. 8 # and compares the output with golden result files.
9 9
10 E_BADARGS=65 10 E_BADARGS=65
11 E_FAILEDTEST=1 11 E_FAILEDTEST=1
12 12
13 failed_any_test= 13 failed_any_test=
14 14
15 THIS_DIR="$(dirname "${0}")"
16
15 # Prints usage information. 17 # Prints usage information.
16 usage() { 18 usage() {
17 echo "Usage: $(basename "${0}")" \ 19 echo "Usage: $(basename "${0}")" \
18 "<path to clang>" \ 20 "<path to clang>" \
19 "<path to plugin>" 21 "<path to plugin>"
20 echo "" 22 echo ""
21 echo " Runs all the libFindBadConstructs unit tests" 23 echo " Runs all the libFindBadConstructs unit tests"
22 echo "" 24 echo ""
23 } 25 }
24 26
25 # Runs a single test case. 27 # Runs a single test case.
26 do_testcase() { 28 do_testcase() {
27 local flags="" 29 local flags=""
28 if [ -e "${3}" ]; then 30 if [ -e "${3}" ]; then
29 flags="$(cat "${3}")" 31 flags="$(cat "${3}")"
30 fi 32 fi
31 33
32 if [ "$(uname -s)" = "Darwin" ]; then 34 if [ "$(uname -s)" = "Darwin" ]; then
33 flags="${flags} -isysroot $(xcrun --show-sdk-path) -stdlib=libstdc++" 35 flags="${flags} -isysroot $(xcrun --show-sdk-path) -stdlib=libstdc++"
34 fi 36 fi
35 37
36 flags="${flags} -Xclang -plugin-arg-find-bad-constructs \ 38 flags="${flags} -Xclang -plugin-arg-find-bad-constructs \
37 -Xclang with-ast-visitor" 39 -Xclang with-ast-visitor"
38 40
39 local output="$("${CLANG_PATH}" -fsyntax-only -Wno-c++11-extensions \ 41 local output="$("${CLANG_PATH}" -fsyntax-only -Wno-c++11-extensions \
40 -Wno-inconsistent-missing-override \ 42 -Wno-inconsistent-missing-override \
43 -isystem ${THIS_DIR}/system \
41 -Xclang -load -Xclang "${PLUGIN_PATH}" \ 44 -Xclang -load -Xclang "${PLUGIN_PATH}" \
42 -Xclang -add-plugin -Xclang find-bad-constructs ${flags} ${1} 2>&1)" 45 -Xclang -add-plugin -Xclang find-bad-constructs ${flags} ${1} 2>&1)"
43 local diffout="$(echo "${output}" | diff - "${2}")" 46 local diffout="$(echo "${output}" | diff - "${2}")"
44 if [ "${diffout}" = "" ]; then 47 if [ "${diffout}" = "" ]; then
45 echo "PASS: ${1}" 48 echo "PASS: ${1}"
46 else 49 else
47 failed_any_test=yes 50 failed_any_test=yes
48 echo "FAIL: ${1}" 51 echo "FAIL: ${1}"
49 echo "Output of compiler:" 52 echo "Output of compiler:"
50 echo "${output}" 53 echo "${output}"
(...skipping 23 matching lines...) Expand all
74 usage 77 usage
75 exit ${E_BADARGS} 78 exit ${E_BADARGS}
76 else 79 else
77 export CLANG_PATH="${1}" 80 export CLANG_PATH="${1}"
78 export PLUGIN_PATH="${2}" 81 export PLUGIN_PATH="${2}"
79 echo "Using clang ${CLANG_PATH}..." 82 echo "Using clang ${CLANG_PATH}..."
80 echo "Using plugin ${PLUGIN_PATH}..." 83 echo "Using plugin ${PLUGIN_PATH}..."
81 84
82 # The golden files assume that the cwd is this directory. To make the script 85 # The golden files assume that the cwd is this directory. To make the script
83 # work no matter what the cwd is, explicitly cd to there. 86 # work no matter what the cwd is, explicitly cd to there.
84 cd "$(dirname "${0}")" 87 cd "${THIS_DIR}"
85 fi 88 fi
86 89
87 for input in *.cpp; do 90 for input in *.cpp; do
88 do_testcase "${input}" "${input%cpp}txt" "${input%cpp}flags" 91 do_testcase "${input}" "${input%cpp}txt" "${input%cpp}flags"
89 done 92 done
90 93
91 for input in *.c; do 94 for input in *.c; do
92 do_testcase "${input}" "${input%c}txt" "${input%c}flags" 95 do_testcase "${input}" "${input%c}txt" "${input%c}flags"
93 done 96 done
94 97
95 if [[ "${failed_any_test}" ]]; then 98 if [[ "${failed_any_test}" ]]; then
96 exit ${E_FAILEDTEST} 99 exit ${E_FAILEDTEST}
97 fi 100 fi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698