aboutsummaryrefslogtreecommitdiff
path: root/contrib/devtools
AgeCommit message (Collapse)Author
2018-07-12Tools: fix BIND_NOW check in security-check.pyConrado Gouvea
Previously, the BIND_NOW check would work only if it was the first value in FLAGS.
2018-07-12Merge #13177: GCC-7 and glibc-2.27 back compat codeWladimir J. van der Laan
253f5929097548fb10ef995002dedbb8dadb6a0d Add stdin, stdout, stderr to ignored export list (Chun Kuan Lee) fc6a9f2ab18ca8466d65d14c263c4f78f9ccebbf Use IN6ADDR_ANY_INIT instead of in6addr_any (Cory Fields) 908c1d7745f0ed117b0374fcc8486f83bf743bfc GCC-7 and glibc-2.27 compat code (Chun Kuan Lee) Pull request description: The `__divmoddi4` code was modified from https://github.com/gcc-mirror/gcc/blob/master/libgcc/libgcc2.c . I manually find the older glibc version of log2f by objdump, use `.symver` to specify the certain version. Tree-SHA512: e8d875652003618c73e019ccc420e7a25d46f4eaff1c7a1a6bfc1770b3b46f074b368b2cb14df541b5ab124cca41dede4e28fe863a670589b834ef6b8713f9c4
2018-06-20Obsolete #!/bin/bash shebangDesWurstes
2018-06-18Merge #13454: Make sure LC_ALL=C is set in all shell scriptsWladimir J. van der Laan
47776a958b08382d76d69b5df7beed807af168b3 Add linter: Make sure all shell scripts opt out of locale dependence using "export LC_ALL=C" (practicalswift) 3352da8da1243c03fc83ba678d2f5d193bd5a0c2 Add "export LC_ALL=C" to all shell scripts (practicalswift) Pull request description: ~~Make sure `LC_ALL=C` is set when using `grep` range expressions.~~ Make sure `LC_ALL=C` is set in all shell scripts. From the `grep(1)` documentation: > Within a bracket expression, a range expression consists of two characters separated by a hyphen. It matches any single character that sorts between the two characters, inclusive, using the locale's collating sequence and character set. For example, in the default C locale, `[a-d]` is equivalent to `[abcd]`. Many locales sort characters in dictionary order, and in these locales `[a-d]` is typically not equivalent to `[abcd]`; it might be equivalent to `[aBbCcDd]`, for example. To obtain the traditional interpretation of bracket expressions, you can use the C locale by setting the `LC_ALL` environment variable to the value C. Context: [Locale issue found when reviewing #13450](https://github.com/bitcoin/bitcoin/pull/13450/files#r194877736) Tree-SHA512: fd74d2612998f9b49ef9be24410e505d8c842716f84d085157fc7f9799d40e8a7b4969de783afcf99b7fae4f91bbb4559651f7dd6578a6a081a50bdea29f0909
2018-06-14Add "export LC_ALL=C" to all shell scriptspracticalswift
2018-06-12Explicitly specify encoding when opening text files in Python codepracticalswift
2018-06-05utils: checking for bitcoin addresses in translationsMax Kaplan
Checking for and removing any bitcoin addresses in translations
2018-06-02Add stdin, stdout, stderr to ignored export listChun Kuan Lee
2018-05-29doc: remove leftover check-doc documentationfanquake
2018-05-29Merge #13281: test: Move linters to test/lint, add readmeWladimir J. van der Laan
fa3c910bfeab00703c947c5200a64c21225b50ef test: Move linters to test/lint, add readme (MarcoFalke) Pull request description: This moves the checks and linters from `devtools` to a subfolder in `test`. (Motivated by my opinion that the dev tools are mostly for generating code and updating the repo whereas the linters are read-only checks.) Also, adds a readme to clarify that checks and linters are only meant to prevent bugs and user facing issues, not merely stylistic preference or inconsistencies. (This is motivated by the diversity in developers and work flows as well as existing code styles. It would be too disruptive to change all existing code to a single style or too burdensome to force all developers to adhere to a single style. Also note that our style guide is changing, so locking in at the wrong style "too early" would only waste resources.) Tree-SHA512: 9b10e89f2aeaf0c8a9ae248aa891d74e0abf0569f8e5dfd266446efa8bfaf19f0ea0980abf0b0b22f0d8416ee90d7435d21a9f9285b66df43f370b7979173406
2018-05-24test: Move linters to test/lint, add readmeMarcoFalke
2018-05-18Merge #13228: Add script to detect circular dependencies between source modulesMarcoFalke
a7b295e91e Add circular dependencies script (Pieter Wuille) Pull request description: This script finds dependencies between source code modules, treating the `.cpp` and `.h` file as one unit (so it will detect `A.cpp` depending on `B.h` where `B.cpp` depends on `A.h`). This can be used to find out which modules cannot be used independently from each other. It is very simplistic at this point, and assumes that a `.cpp` file's corresponding header has the exact same name, with `.cpp` replaced by `.h`. Furthermore, it assumes all `#include`s are relative to the `src/` directory. This is not a linter, and is not enforced through Travis or otherwise. This is the current output: ``` $ ../contrib/devtools/circular-dependencies.py {*,*/*,*/*/*}.{h,cpp} Circular dependency: chain -> pow -> chain Circular dependency: chainparamsbase -> util -> chainparamsbase Circular dependency: checkpoints -> validation -> checkpoints Circular dependency: init -> index/txindex -> init Circular dependency: init -> validation -> init Circular dependency: init -> net_processing -> init Circular dependency: init -> rpc/server -> init Circular dependency: init -> txdb -> init Circular dependency: init -> validationinterface -> init Circular dependency: random -> util -> random Circular dependency: sync -> util -> sync Circular dependency: txmempool -> validation -> txmempool Circular dependency: txmempool -> policy/fees -> txmempool Circular dependency: validation -> index/txindex -> validation Circular dependency: validation -> policy/policy -> validation Circular dependency: validation -> validationinterface -> validation Circular dependency: qt/addresstablemodel -> qt/walletmodel -> qt/addresstablemodel Circular dependency: qt/bantablemodel -> qt/clientmodel -> qt/bantablemodel Circular dependency: qt/bitcoingui -> qt/walletview -> qt/bitcoingui Circular dependency: qt/bitcoingui -> qt/walletframe -> qt/bitcoingui Circular dependency: qt/bitcoingui -> qt/utilitydialog -> qt/bitcoingui Circular dependency: qt/clientmodel -> qt/peertablemodel -> qt/clientmodel Circular dependency: qt/paymentserver -> qt/walletmodel -> qt/paymentserver Circular dependency: qt/recentrequeststablemodel -> qt/walletmodel -> qt/recentrequeststablemodel Circular dependency: qt/sendcoinsdialog -> qt/walletmodel -> qt/sendcoinsdialog Circular dependency: qt/transactiontablemodel -> qt/walletmodel -> qt/transactiontablemodel Circular dependency: qt/walletmodel -> qt/walletmodeltransaction -> qt/walletmodel Circular dependency: rpc/rawtransaction -> wallet/rpcwallet -> rpc/rawtransaction Circular dependency: wallet/coincontrol -> wallet/wallet -> wallet/coincontrol Circular dependency: wallet/fees -> wallet/wallet -> wallet/fees Circular dependency: wallet/rpcwallet -> wallet/wallet -> wallet/rpcwallet Circular dependency: wallet/walletdb -> wallet/wallet -> wallet/walletdb Circular dependency: txmempool -> validation -> policy/rbf -> txmempool Circular dependency: txmempool -> validation -> validationinterface -> txmempool Circular dependency: qt/addressbookpage -> qt/bitcoingui -> qt/walletview -> qt/addressbookpage Circular dependency: qt/guiutil -> qt/walletmodel -> qt/optionsmodel -> qt/guiutil Circular dependency: qt/addressbookpage -> qt/bitcoingui -> qt/walletview -> qt/signverifymessagedialog -> qt/addressbookpage Circular dependency: qt/addressbookpage -> qt/bitcoingui -> qt/walletview -> qt/receivecoinsdialog -> qt/addressbookpage Circular dependency: qt/guiutil -> qt/walletmodel -> qt/optionsmodel -> qt/intro -> qt/guiutil Circular dependency: qt/addressbookpage -> qt/bitcoingui -> qt/walletview -> qt/sendcoinsdialog -> qt/sendcoinsentry -> qt/addressbookpage ``` Tree-SHA512: 29bc985b7a41699f4666b0aaa785ca63c2145e84c37458536f4dcf8e3de8f1312cf0323fe09cb8f348a9d363583f76eac2d5bee574bc6a9f9cc97a9b0aad406f
2018-05-16Add circular dependencies scriptPieter Wuille
2018-05-11Enable Travis checking for two Python linting rules we are currently not ↵practicalswift
violating
2018-05-11Enable W191 and W291 flake8 checks.John Bampton
Remove trailing whitespace from Python files. Convert tabs to spaces.
2018-05-09Make gArgs aware of the argumentsAndrew Chow
gArgs knows what the available arguments are and their help. Getting the help message is moved to gArgs and HelpMessage() is removed
2018-05-07Merge #13094: tests: Add test for 64-bit Windows PE, modify 32-bit test resultsWladimir J. van der Laan
ab3f4dd tests: Add test for 64-bit PE, modify 32-bit test results (Chun Kuan Lee) Pull request description: 9a75d29b6f0d6c4834e451b0fae2200786655a35 change the error result from `PIE` to `DYNAMIC_BASE`. And there are no test for 64-bit, so I made one Tree-SHA512: 9d5643dadf4d9fc34ea32d94655bfb98eec2f7bc2820b4b0f525d5acf1cd22f3acf38bf8904dda4f50fd9ca5a5e56d566a392e6f804eea6e50e03cba40048621
2018-05-02devtools: Make linter check LogPrint callsMarcoFalke
2018-04-27tests: Add test for 64-bit PE, modify 32-bit test resultsChun Kuan Lee
9a75d29b6f0d6c4834e451b0fae2200786655a35 change the error result from `PIE` to `DYNAMIC_BASE`. And there are no test for 64-bit, so I made one
2018-04-16Merge #12972: Add python3 script shebang lintMarcoFalke
2bff472992 [contrib] convert test-security-check to python3 (John Newbery) 958bf40489 add lint tool to check python3 shebang (practicalswift) Pull request description: base58.py can executed by python3 Tree-SHA512: 30511204feefd4ccd5b4bf698fb88e516633e692dc95d31fe957b1c0c4879de25906355b28a5a0522171887315c8464a611e601ff00540db172d5bd463ee13d9
2018-04-16Enable additional flake8 rulespracticalswift
2018-04-16Minor Python cleanups to make flake8 pass with the new rules enabledpracticalswift
2018-04-14[contrib] convert test-security-check to python3John Newbery
2018-04-14add lint tool to check python3 shebangpracticalswift
2018-04-11Merge #12933: doc: Refine header include policyMarcoFalke
fad0fc3c9a Refine travis check for duplicate includes (MarcoFalke) Pull request description: Since there is no harm in having "duplicate" includes and it makes it obvious what are the dependencies of each file, without having to do static analysis or jumping between files, I'd suggest to revert the travis check for duplicate includes. Generally, I think that enforcing minor style preferences should not be done via travis. The cost of maintaining and the burden on other developers is too high. C.f discussion in https://github.com/bitcoin/bitcoin/pull/10973#discussion_r180142594 Tree-SHA512: 97ab0e769d457ccfb873fff6c99613f8b944cd7ef95bfdccb0e1bbe8f5df1f16548c658fa03af42516f806546e75646d338a061e7b057619490235d311ca21f1
2018-04-11Add shell script linting: Check for shellcheck warnings in shell scriptspracticalswift
2018-04-10Refine travis check for duplicate includesMarcoFalke
This partially reverts commit c36b720d009f1ab1c3900750e05c1f17412e564d.
2018-04-10Merge #12852: [doc] devtools: Setup ots git integrationWladimir J. van der Laan
fa385c3 [doc] devtools: Setup ots git integration (MarcoFalke) Pull request description: Document the simple steps on how to set up ots git integration. Tree-SHA512: 1b9f99bfaa6cd9dc581243d3a3584301645e95450acc3b5898dcdb53849569de16bb8ef2676b18f6b8dd402de10aee80119e15c1b28cef36f17ad121cbba2ba3
2018-04-09[doc] devtools: Setup ots git integrationMarcoFalke
2018-04-09Add Travis check for duplicate includespracticalswift
This enforces parts of the project header include guidelines (added by @sipa in #10575).
2018-04-08Merge #12891: [logging] add lint-logs.sh to check for newline termination.Wladimir J. van der Laan
d207207 [logging] add lint-logs.sh to check for newline termination. (John Newbery) 5c21e6c [logging] Comment all continuing logs. (John Newbery) Pull request description: Check that all calls to LogPrintf() are terminated by a newline, except those that are explicitly marked as 'continued' logs. Tree-SHA512: fe5162b2b2df1e8a4c807da87584fa9af97a6b8377e4090fe0caa136d90bf29a487a123cde94569bdce7101fee3478196d99aa13f1212e24bfe5f41c773604fc
2018-04-07[logging] add lint-logs.sh to check for newline termination.John Newbery
Check that all calls to LogPrintf() are terminated by a newline, except those that are explicitly marked as 'continued' logs.
2018-04-06tests: Add check for test suite name uniqueness in lint-tests.shpracticalswift
2018-04-01Merge #12757: Clarify include guard naming conventionMarcoFalke
3bcc0059b8 Add lint-include-guards.sh which checks include guard consistency (practicalswift) 8fd6af89a0 Fix missing or inconsistent include guards (practicalswift) 8af65d96f4 Document include guard convention (practicalswift) Pull request description: * **Documentation**: Document include guard convention * **Fix**: Fix missing or inconsistent include guards * **Regression test**: Add `lint-include-guards.sh` which checks include guard consistency Tree-SHA512: 8171878f60fd08ccbea943a11e835195750592abb9d7ab74eaa4265ae7fac523b1da9d31ca13d6ab73dd596e49986bfb7593c696e5f39567c93e610165bc2acc
2018-04-01Merge #12719: tests: Add note about test suite naming convention in ↵MarcoFalke
developer-notes.md db983beba6 tests: Add lint-tests.sh which checks the test suite naming convention (practicalswift) 5fd864fe8a tests: Rename test suits not following the test suite naming convention (practicalswift) 7b4a296a71 tests: Add note about test suite naming convention (practicalswift) Pull request description: Changes: * Add note about test suite naming convention * Fix exceptions * Add regression test Rationale: * Consistent naming of test suites makes programmatic test running of specific tests/subsets of tests easier * Explicit is better than implicit Before this commit: ``` $ contrib/devtools/lint-tests.sh The test suite in file src/test/foo_tests.cpp should be named "foo_tests". Please make sure the following test suites follow that convention: src/test/blockchain_tests.cpp:BOOST_FIXTURE_TEST_SUITE(blockchain_difficulty_tests, BasicTestingSetup) src/test/prevector_tests.cpp:BOOST_FIXTURE_TEST_SUITE(PrevectorTests, TestingSetup) src/wallet/test/coinselector_tests.cpp:BOOST_FIXTURE_TEST_SUITE(coin_selection_tests, WalletTestingSetup) src/wallet/test/crypto_tests.cpp:BOOST_FIXTURE_TEST_SUITE(wallet_crypto, BasicTestingSetup) $ ``` After this commit: ``` $ contrib/devtools/lint-tests.sh $ ``` Tree-SHA512: 7258ab9a6b9b8fc1939efadc619e2f2f02cfce8034c7f2e5dc5ecc769aa12e17f6fb8e363817feaf15c026c5b958b2574525b8d2d3f6be69658679bf8ceea9e9
2018-04-01Merge #12284: Remove assigned but never used local variables. Enable Travis ↵MarcoFalke
checking for unused local variables. ea04bf7862 Enable flake8 warning F841 ("local variable 'foo' is assigned to but never used") (practicalswift) 169f3e8637 Remove assigned but never used local variables (practicalswift) Pull request description: Remove assigned but never used local variables. Enable Travis checking for unused local variables. Tree-SHA512: d6052ec9044c5d1f03d874ea3c8addd5a156779213ef9200f89d3ae53230f2fd1691aff405c3dae14178e5ef09912c4432e92f606ef4a5220ed9daa140cdee81
2018-03-30Merge #12820: contrib: Fix check-doc script regexesMarcoFalke
0c17e27630 init: Remove help text for non-existent -fuzzmessagestest arg (MarcoFalke) 136084470c contrib: Fix check-doc script regexes (MarcoFalke) Pull request description: Fixup the regexes to properly find all used args. The regex should now match all of the getter and setter methods of the `ArgsManager`. See https://dev.visucore.com/bitcoin/doxygen/class_args_manager.html#pub-methods Before: ``` Args used : 159 Args documented : 188 Args undocumented: 0 Args unknown : 29 ``` After: ``` Args used : 183 Args documented : 188 Args undocumented: 0 Args unknown : 5 ``` Tree-SHA512: 1a7fb7ea55b2f6030358a1055d8f2c19b31f69d0603be0b009e6e603564014b4e2bb824357c9d43d0fba3ce7159b7c4e7eaa60b3f962053d94f73d0e626294fc
2018-03-29Merge #12829: Python3 fixupWladimir J. van der Laan
f50975b [contrib] fixup symbol-check.py Python3 support (John Newbery) 5de2b18 [contrib] fixup security-check.py Python3 support (John Newbery) Pull request description: security-check.py and symbol-check.py were broken by #11881. Fix them. Tree-SHA512: 86de3d6dc3292b1ae4cc04c2d7d7dbbf39c9270551d7b224b8d8b19e3184c30c897dbf823200403706d06bb405c0decad5cfd690cb2c0312992a235a4ffcf6bf
2018-03-29Enable flake8 warning F841 ("local variable 'foo' is assigned to but never ↵practicalswift
used")
2018-03-29Remove assigned but never used local variablespracticalswift
2018-03-28[contrib] fixup symbol-check.py Python3 supportJohn Newbery
2018-03-28[contrib] fixup security-check.py Python3 supportJohn Newbery
2018-03-28contrib: Remove unused import stringMarcoFalke
2018-03-28contrib: Fix check-doc script regexesMarcoFalke
2018-03-26Change all python files to use Python3John Newbery
2018-03-22Add lint-include-guards.sh which checks include guard consistencypracticalswift
2018-03-19tests: Add lint-tests.sh which checks the test suite naming conventionpracticalswift
2018-03-11Merge #12572: [script] lint-whitespace: find errors more easilyMarcoFalke
0fbed98e42 [script] lint-whitespace: improve print linenumber (Akio Nakamura) Pull request description: Before this PR, the linenumber infomaition is output if trailing-space or tab code was found, but the output occurence is only per a file. This PR separates the output timing of file name and line number. As a result, users will find where they need to fix more easily. example: 0) git diff ``` diff --git a/dummy.txt b/dummy.txt index c0ce4d776..aebbdb88d 100644 --- a/dummy.txt +++ b/dummy.txt @@ -1,2 +1,2 @@ -1 -2 +1 + 2 @@ -8,2 +8,2 @@ -8 -9 + 8 +9 ``` 1) before this PR - Is there "9 " in second line? It may lead to be misunderstood. ``` This diff appears to have added new lines with trailing whitespace. The following changes were suspected: diff --git a/dummy.txt b/dummy.txt @@ -1,2 +1,2 @@ +1 +9 ``` 2) after this PR ``` This diff appears to have added new lines with trailing whitespace. The following changes were suspected: diff --git a/dummy.txt b/dummy.txt @@ -1,2 +1,2 @@ +1 @@ -8,2 +8,2 @@ +9 ``` Tree-SHA512: 2fd52e3c982786f86cfe10aa2578589bc9c502bcad9b85111467840d726143330c23968cde5483ee0f563893c8381044b80e8c22a7c8eca56fc73c548b9a9496
2018-03-06Merge #12098: [scripts] lint-whitespace: add param to check last N commitsWladimir J. van der Laan
8dbf740f8 [scripts] lint-whitespace: check last N commits or unstaged changes (Sjors Provoost) Pull request description: E.g. before you push three commits to Github and upset Travis, check if you didn't make any whitespace mistakes: ```sh contrib/devtools/lint-whitespace.sh 3 ``` This is slightly more convenient than doing: ```sh TRAVIS_COMMIT_RANGE=HEAD~3...HEAD contrib/devtools/lint-whitespace.sh ``` Tree-SHA512: 5d9c1ae978ccbe59477e8cf53391e9bd697d2da87f417a2519264af560d4768138e0b2d320dd497a1f1e704e18ab279d724f523b57c17a80ccd753133a5445bf
2018-03-06Merge #12097: [scripts] lint-whitespace: use perl instead of grep -PWladimir J. van der Laan
40b17f5f9 [scripts] lint-whitespace: use perl instead of grep -P (Sjors Provoost) Pull request description: MacOS does not support `grep -P` out of the box. This change makes it easier for developers to check for whitespace problems locally. Based on [this](https://stackoverflow.com/a/16658690) and [this](https://serverfault.com/a/504387) Stack Exchange answer. Tested with: ```sh export TRAVIS_COMMIT_RANGE='fe78c9a...62e0453' contrib/devtools/lint-whitespace.sh This diff appears to have added new lines with tab characters instead of spaces. The following changes were suspected: diff --git a/src/test/bignum_tests.cpp b/src/test/bignum_tests.cpp @@ -0,0 +1,110 @@ + num.setint64(n); ``` Tree-SHA512: 37c342a0ca2580289cf326a278a051a7c21ba918d6b2143fd9987f159fab85f1de3d770fcf532a642cd5d1957afc8595678128196e102dc473924758f133db7f