mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
Merge bitcoin/bitcoin#25091: test: Remove extended lint (cppcheck)
BACKPORT NOTICE: we keep and maintain cppcheck linter as lint-cppcheck-dash.sh efae252f3072da598160670691757a0d60b9beb4 test: Remove extended lint (cppcheck) (laanwj) Pull request description: These are unreferenced in the CI and documentation, and have been since 2019 (see #17549). I'm not sure the cppcheck is worthwhile. It takes a long time to run (I think this is why it isn't in the normal lints), and right now it only appears to find implicit constructors. The list of exceptions is out of date. But if anyone wants to bring it back at any time in the future they can do so from git history (and port it to Python). ACKs for top commit: fanquake: ACK efae252f3072da598160670691757a0d60b9beb4 Tree-SHA512: 1a770b5d20ff1199d0d6bc471ae3d2c3438f0f0b169ce8d2fe73480daf8d3a7146c066b799afc90aa7898982c5fee79c1daca10e16e2bff0a7b38850aedd55b2
This commit is contained in:
parent
4dbdecdd1e
commit
acf1315270
@ -26,7 +26,6 @@ if [ "$CHECK_DOC" = 1 ]; then
|
|||||||
#test/lint/check-doc.py
|
#test/lint/check-doc.py
|
||||||
# Run all linters
|
# Run all linters
|
||||||
test/lint/lint-all.sh
|
test/lint/lint-all.sh
|
||||||
test/lint/extended-lint-all.sh
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ccache --zero-stats --max-size=$CCACHE_SIZE
|
ccache --zero-stats --max-size=$CCACHE_SIZE
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Copyright (c) 2019-2020 The Bitcoin Core developers
|
|
||||||
# Distributed under the MIT software license, see the accompanying
|
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
||||||
#
|
|
||||||
# This script runs all contrib/devtools/extended-lint-*.sh files, and fails if
|
|
||||||
# any exit with a non-zero status code.
|
|
||||||
|
|
||||||
# This script is intentionally locale dependent by not setting "export LC_ALL=C"
|
|
||||||
# in order to allow for the executed lint scripts to opt in or opt out of locale
|
|
||||||
# dependence themselves.
|
|
||||||
|
|
||||||
set -u
|
|
||||||
|
|
||||||
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
|
|
||||||
LINTALL=$(basename "${BASH_SOURCE[0]}")
|
|
||||||
|
|
||||||
for f in "${SCRIPTDIR}"/extended-lint-*.sh; do
|
|
||||||
if [ "$(basename "$f")" != "$LINTALL" ]; then
|
|
||||||
if ! "$f"; then
|
|
||||||
echo "^---- failure generated from $f"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
@ -1,86 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Copyright (c) 2019-2020 The Bitcoin Core developers
|
|
||||||
# Distributed under the MIT software license, see the accompanying
|
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
||||||
#
|
|
||||||
|
|
||||||
export LC_ALL=C
|
|
||||||
|
|
||||||
ENABLED_CHECKS=(
|
|
||||||
"Class '.*' has a constructor with 1 argument that is not explicit."
|
|
||||||
"Struct '.*' has a constructor with 1 argument that is not explicit."
|
|
||||||
)
|
|
||||||
|
|
||||||
IGNORED_WARNINGS=(
|
|
||||||
"src/arith_uint256.h:.* Class 'arith_uint256' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/arith_uint256.h:.* Class 'base_uint < 256 >' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/arith_uint256.h:.* Class 'base_uint' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/coins.h:.* Class 'CCoinsViewBacked' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/coins.h:.* Class 'CCoinsViewCache' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/coins.h:.* Class 'CCoinsViewCursor' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/net.h:.* Class 'CNetMessage' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/policy/feerate.h:.* Class 'CFeeRate' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/prevector.h:.* Class 'const_iterator' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/prevector.h:.* Class 'const_reverse_iterator' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/prevector.h:.* Class 'iterator' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/prevector.h:.* Class 'reverse_iterator' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/primitives/block.h:.* Class 'CBlock' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/primitives/transaction.h:.* Class 'CTransaction' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/protocol.h:.* Class 'CMessageHeader' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/qt/guiutil.h:.* Class 'ItemDelegate' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/rpc/util.h:.* Struct 'RPCResults' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/rpc/util.h:.* Struct 'UniValueType' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/rpc/util.h:.* style: Struct 'UniValueType' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/script/descriptor.cpp:.* Class 'AddressDescriptor' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/script/descriptor.cpp:.* Class 'ComboDescriptor' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/script/descriptor.cpp:.* Class 'ConstPubkeyProvider' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/script/descriptor.cpp:.* Class 'PKDescriptor' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/script/descriptor.cpp:.* Class 'PKHDescriptor' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/script/descriptor.cpp:.* Class 'RawDescriptor' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/script/descriptor.cpp:.* Class 'SHDescriptor' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/script/script.h:.* Class 'CScript' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/script/standard.h:.* Class 'CScriptID' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/span.h:.* Class 'Span < const CRPCCommand >' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/span.h:.* Class 'Span < const char >' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/span.h:.* Class 'Span < const std :: vector <unsigned char > >' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/span.h:.* Class 'Span < const uint8_t >' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/span.h:.* Class 'Span' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/support/allocators/secure.h:.* Struct 'secure_allocator < char >' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/support/allocators/secure.h:.* Struct 'secure_allocator < RNGState >' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/support/allocators/secure.h:.* Struct 'secure_allocator < unsigned char >' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/support/allocators/zeroafterfree.h:.* Struct 'zero_after_free_allocator < char >' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/test/checkqueue_tests.cpp:.* Struct 'FailingCheck' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/test/checkqueue_tests.cpp:.* Struct 'MemoryCheck' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/test/checkqueue_tests.cpp:.* Struct 'UniqueCheck' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/test/fuzz/util.h:.* Class 'FuzzedFileProvider' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/test/fuzz/util.h:.* Class 'FuzzedAutoFileProvider' has a constructor with 1 argument that is not explicit."
|
|
||||||
"src/wallet/db.h:.* Class 'BerkeleyEnvironment' has a constructor with 1 argument that is not explicit."
|
|
||||||
)
|
|
||||||
|
|
||||||
if ! command -v cppcheck > /dev/null; then
|
|
||||||
echo "Skipping cppcheck linting since cppcheck is not installed. Install by running \"apt install cppcheck\""
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
function join_array {
|
|
||||||
local IFS="$1"
|
|
||||||
shift
|
|
||||||
echo "$*"
|
|
||||||
}
|
|
||||||
|
|
||||||
ENABLED_CHECKS_REGEXP=$(join_array "|" "${ENABLED_CHECKS[@]}")
|
|
||||||
IGNORED_WARNINGS_REGEXP=$(join_array "|" "${IGNORED_WARNINGS[@]}")
|
|
||||||
WARNINGS=$(git ls-files -- "*.cpp" "*.h" ":(exclude)src/dashbls/" ":(exclude)src/util/expected.h" ":(exclude)src/leveldb/" ":(exclude)src/secp256k1/" ":(exclude)src/univalue/" | \
|
|
||||||
xargs cppcheck --enable=all -j "$(getconf _NPROCESSORS_ONLN)" --language=c++ --std=c++17 --template=gcc -D__cplusplus -DCLIENT_VERSION_BUILD -DCLIENT_VERSION_IS_RELEASE -DCLIENT_VERSION_MAJOR -DCLIENT_VERSION_MINOR -DCOPYRIGHT_YEAR -DDEBUG -I src/ -q 2>&1 | sort -u | \
|
|
||||||
grep -E "${ENABLED_CHECKS_REGEXP}" | \
|
|
||||||
grep -vE "${IGNORED_WARNINGS_REGEXP}")
|
|
||||||
if [[ ${WARNINGS} != "" ]]; then
|
|
||||||
echo "${WARNINGS}"
|
|
||||||
echo
|
|
||||||
echo "Advice not applicable in this specific case? Add an exception by updating"
|
|
||||||
echo "IGNORED_WARNINGS in $0"
|
|
||||||
# Uncomment to enforce the developer note policy "By default, declare single-argument constructors `explicit`"
|
|
||||||
# exit 1
|
|
||||||
fi
|
|
||||||
exit 0
|
|
Loading…
Reference in New Issue
Block a user