Skip to content

Commit a04440f

Browse files
author
MarcoFalke
committed
Merge #11878: Add Travis check for duplicate includes
c36b720 Add Travis check for duplicate includes (practicalswift) 280023f Remove duplicate includes (practicalswift) Pull request description: This enforces parts of the project header include guidelines (added by @sipa in #10575). Example run: ``` $ git diff diff --git a/src/warnings.cpp b/src/warnings.cpp index c52a1fd..d8994dd 100644 --- a/src/warnings.cpp +++ b/src/warnings.cpp @@ -5,6 +5,8 @@ #include <sync.h> #include <clientversion.h> +#include <string> #include <util.h> #include <warnings.h> +#include <util.h> diff --git a/src/warnings.h b/src/warnings.h index e8e982c..8d2252e 100644 --- a/src/warnings.h +++ b/src/warnings.h @@ -7,6 +7,7 @@ #define BITCOIN_WARNINGS_H #include <stdlib.h> #include <string> +#include <stdlib.h> void SetMiscWarning(const std::string& strWarning); $ contrib/devtools/lint-includes.sh Duplicate include(s) in src/warnings.h: #include <stdlib.h> Include(s) from src/warnings.h duplicated in src/warnings.cpp: #include <string> Duplicate include(s) in src/warnings.cpp: #include <util.h> $ echo $? 1 $ git checkout . $ contrib/devtools/lint-includes.sh $ echo $? 0 ``` Tree-SHA512: f653d23c58ebc024dfc5b1fb8570698fd3c515c75b60b5cabbc43595548c488fca92349fa4c8b64460edbe61c879ff1d24f37f959e18552e202a7342460ddbf1
2 parents 6fc5a05 + c36b720 commit a04440f

File tree

15 files changed

+43
-17
lines changed

15 files changed

+43
-17
lines changed

contrib/devtools/lint-includes.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/bin/bash
2+
#
3+
# Copyright (c) 2018 The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
#
7+
# Check for duplicate includes.
8+
9+
filter_suffix() {
10+
git ls-files | grep -E "^src/.*\.${1}"'$' | grep -Ev "/(leveldb|secp256k1|univalue)/"
11+
}
12+
13+
EXIT_CODE=0
14+
for HEADER_FILE in $(filter_suffix h); do
15+
DUPLICATE_INCLUDES_IN_HEADER_FILE=$(grep -E "^#include " < "${HEADER_FILE}" | sort | uniq -d)
16+
if [[ ${DUPLICATE_INCLUDES_IN_HEADER_FILE} != "" ]]; then
17+
echo "Duplicate include(s) in ${HEADER_FILE}:"
18+
echo "${DUPLICATE_INCLUDES_IN_HEADER_FILE}"
19+
echo
20+
EXIT_CODE=1
21+
fi
22+
CPP_FILE=${HEADER_FILE/%\.h/.cpp}
23+
if [[ ! -e $CPP_FILE ]]; then
24+
continue
25+
fi
26+
DUPLICATE_INCLUDES_IN_HEADER_AND_CPP_FILES=$(grep -hE "^#include " <(sort -u < "${HEADER_FILE}") <(sort -u < "${CPP_FILE}") | grep -E "^#include " | sort | uniq -d)
27+
if [[ ${DUPLICATE_INCLUDES_IN_HEADER_AND_CPP_FILES} != "" ]]; then
28+
echo "Include(s) from ${HEADER_FILE} duplicated in ${CPP_FILE}:"
29+
echo "${DUPLICATE_INCLUDES_IN_HEADER_AND_CPP_FILES}"
30+
echo
31+
EXIT_CODE=1
32+
fi
33+
done
34+
for CPP_FILE in $(filter_suffix cpp); do
35+
DUPLICATE_INCLUDES_IN_CPP_FILE=$(grep -E "^#include " < "${CPP_FILE}" | sort | uniq -d)
36+
if [[ ${DUPLICATE_INCLUDES_IN_CPP_FILE} != "" ]]; then
37+
echo "Duplicate include(s) in ${CPP_FILE}:"
38+
echo "${DUPLICATE_INCLUDES_IN_CPP_FILE}"
39+
echo
40+
EXIT_CODE=1
41+
fi
42+
done
43+
exit ${EXIT_CODE}

src/chainparams.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
#include <utilstrencodings.h>
1212

1313
#include <assert.h>
14-
#include <memory>
1514

1615
#include <chainparamsseeds.h>
1716

src/chainparamsbase.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
#include <util.h>
1010

1111
#include <assert.h>
12-
#include <memory>
1312

1413
const std::string CBaseChainParams::MAIN = "main";
1514
const std::string CBaseChainParams::TESTNET = "test";

src/init.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
#include <walletinitinterface.h>
4848
#include <stdint.h>
4949
#include <stdio.h>
50-
#include <memory>
5150

5251
#ifndef WIN32
5352
#include <signal.h>

src/interfaces/handler.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
#include <util.h>
88

99
#include <boost/signals2/connection.hpp>
10-
#include <memory>
1110
#include <utility>
1211

1312
namespace interfaces {

src/interfaces/wallet.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
#include <wallet/feebumper.h>
2323
#include <wallet/wallet.h>
2424

25-
#include <memory>
26-
2725
namespace interfaces {
2826
namespace {
2927

src/miner.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
#include <validationinterface.h>
2828

2929
#include <algorithm>
30-
#include <memory>
3130
#include <queue>
3231
#include <utility>
3332

src/net.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#include <ui_interface.h>
2121
#include <utilstrencodings.h>
2222

23-
#include <memory>
2423
#ifdef WIN32
2524
#include <string.h>
2625
#else

src/qt/paymentrequestplus.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
#include <qt/paymentrequestplus.h>
1111

12-
#include <script/script.h>
1312
#include <util.h>
1413

1514
#include <stdexcept>

src/random.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include <utilstrencodings.h> // for GetTime()
1616

1717
#include <stdlib.h>
18-
#include <limits>
1918
#include <chrono>
2019
#include <thread>
2120

0 commit comments

Comments
 (0)