diff options
author | practicalswift <practicalswift@users.noreply.github.com> | 2018-08-28 10:19:37 +0200 |
---|---|---|
committer | practicalswift <practicalswift@users.noreply.github.com> | 2018-08-28 14:28:14 +0200 |
commit | ca1a093127c11bb2aea10bf96c38dbfb40f8d170 (patch) | |
tree | a348be71f30b23a30dec10d879e8aae5b1644f26 /test/lint/lint-assertions.sh | |
parent | 4c3c9c38699360f93d3c52a01a90ff15ee5e1a62 (diff) |
Add regression test: Don't assert(...) with side effects
Diffstat (limited to 'test/lint/lint-assertions.sh')
-rwxr-xr-x | test/lint/lint-assertions.sh | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/lint/lint-assertions.sh b/test/lint/lint-assertions.sh new file mode 100755 index 0000000000..5bbcae79eb --- /dev/null +++ b/test/lint/lint-assertions.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2018 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +# +# Check for assertions with obvious side effects. + +export LC_ALL=C + +EXIT_CODE=0 + +# PRE31-C (SEI CERT C Coding Standard): +# "Assertions should not contain assignments, increment, or decrement operators." +OUTPUT=$(git grep -E '[^_]assert\(.*(\+\+|\-\-|[^=!<>]=[^=!<>]).*\);' -- "*.cpp" "*.h") +if [[ ${OUTPUT} != "" ]]; then + echo "Assertions should not have side effects:" + echo + echo "${OUTPUT}" + EXIT_CODE=1 +fi + +exit ${EXIT_CODE} |