bitcoin/test/lint
Samuel Dobson e4df534c60
Merge #15382: util: add RunCommandParseJSON
31cf68a3ad [util] add RunCommandParseJSON (Sjors Provoost)
c17f54ee53 [ci] use boost::process (Sjors Provoost)
32128ba682 [doc] include Doxygen comments for HAVE_BOOST_PROCESS (Sjors Provoost)
3c84d85f7d [build] msvc: add boost::process (Sjors Provoost)
c47e4bbf0b [build] make boost-process opt-in (Sjors Provoost)
929cda5470 configure: add ax_boost_process (Sjors Provoost)
8314c23d7b [depends] boost: patch unused variable in boost_process (Sjors Provoost)

Pull request description:

  Prerequisite for external signer support in #16546. Big picture overview in [this gist](https://gist.github.com/Sjors/29d06728c685e6182828c1ce9b74483d).

  This adds a new dependency [boost process](https://github.com/boostorg/process/tree/boost-1.64.0). This is part of Boost since 1.64 which is part of `depends`. Because the minimum Boost version is 1.47, this functionality is skipped for older versions of Boost.

  Use `./configure --with-boost-process` to opt in, which checks for the presence of Boost::Process.

  We add `UniValue runCommandParseJSON(const std::string& strCommand)` to `system.{h,cpp}` which calls an arbitrary command and processes the JSON returned by it. This is currently only called by the test suite.

  ~For testing purposes this adds a new regtest-only RPC method `runcommand`, as well as `test/mocks/command.py` used by functional tests.~ (this is no longer the case)

  TODO:
  - [ ] review boost process in #15440

ACKs for top commit:
  achow101:
    ACK 31cf68a3ad
  hebasto:
    re-ACK 31cf68a3ad, only rebased (verified with `git range-diff`) and removed an unintentional tab character since the [previous](https://github.com/bitcoin/bitcoin/pull/15382#pullrequestreview-458371035) review.
  meshcollider:
    Very light utACK 31cf68a3ad, although I am not very confident with build stuff.
  promag:
    Code review ACK 31cf68a3ad, don't mind the nit.
  ryanofsky:
    Code review ACK 31cf68a3ad. I left some comments below that could be ignored or followed up later. The current change is clean and comprehensive.

Tree-SHA512: c506e747014b263606e1f538ed4624a8ad7bcf4e025cb700c12cc5739964e254dc04a2bbb848996b170e2ccec3fbfa4fe9e2b3976b191222cfb82fc3e6ab182d
2020-08-05 23:43:43 +12:00
..
check-doc.py test/contrib: Fix invalid escapes in regex strings 2019-09-03 14:38:38 -04:00
check-rpc-mappings.py scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
commit-script-check.sh scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
extended-lint-all.sh scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
extended-lint-cppcheck.sh scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
git-subtree-check.sh doc: improve subtree check instructions 2020-06-12 13:31:42 +02:00
lint-all.sh Run all lint scripts 2019-05-16 16:42:59 +02:00
lint-assertions.sh util: Add Assert identity function 2020-06-15 07:39:08 -04:00
lint-circular-dependencies.sh scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
lint-filenames.sh scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
lint-format-strings.py Refactor: Copy CWallet signals and print function to LegacyScriptPubKeyMan 2020-01-23 16:35:08 -05:00
lint-format-strings.sh scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
lint-git-commit-check.sh lint: Remove travis env var from commit linter 2020-08-04 10:48:56 +02:00
lint-include-guards.sh Replace current benchmarking framework with nanobench 2020-06-13 12:24:18 +02:00
lint-includes.sh [build] msvc: add boost::process 2020-07-31 13:38:09 +02:00
lint-locale-dependence.sh Merge #18649: tests: Add std::locale::global to list of locale dependent functions in lint-locale-dependence.sh 2020-07-03 10:42:18 +08:00
lint-logs.sh scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
lint-python-mutable-default-parameters.sh lint: Catch use of [] or {} as default parameter values in Python functions 2019-08-26 10:53:10 +00:00
lint-python-utf8-encoding.sh scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
lint-python.sh test: Bump linter versions 2020-06-22 20:15:53 +02:00
lint-qt.sh test: Add lint to prevent SIGNAL/SLOT connect style 2018-08-21 09:43:55 +01:00
lint-rpc-help.sh rpc: Documentation fixups 2018-11-15 12:19:11 -05:00
lint-shebang.sh scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
lint-shell-locale.sh macOS fix: Work around empty (sub)expression error when using BSD grep 2018-08-31 00:52:48 +02:00
lint-shell.sh test: Bump linter versions 2020-06-22 20:15:53 +02:00
lint-spelling.ignore-words.txt Make lint-spelling.py happy 2020-06-19 02:20:04 -07:00
lint-spelling.sh test: Add crc32c exception to various linters and generation scripts 2020-01-28 17:01:48 +01:00
lint-submodule.sh ci: Check for submodules 2020-02-10 16:48:15 +01:00
lint-tests.sh Obsolete #!/bin/bash shebang 2018-06-20 11:12:41 +03:00
lint-whitespace.sh test: Add crc32c exception to various linters and generation scripts 2020-01-28 17:01:48 +01:00
README.md doc: improve subtree check instructions 2020-06-12 13:31:42 +02:00

This folder contains lint scripts.

check-doc.py

Check for missing documentation of command line options.

commit-script-check.sh

Verification of scripted diffs. Scripted diffs are only assumed to run on the latest LTS release of Ubuntu. Running them on other operating systems might require installing GNU tools, such as GNU sed.

git-subtree-check.sh

Run this script from the root of the repository to verify that a subtree matches the contents of the commit it claims to have been updated to.

To use, make sure that you have fetched the upstream repository branch in which the subtree is maintained:

To do so, add the upstream repository as remote:

git remote add --fetch secp256k1 https://github.com/bitcoin-core/secp256k1.git

Usage: git-subtree-check.sh DIR (COMMIT)

COMMIT may be omitted, in which case HEAD is used.

lint-all.sh

Calls other scripts with the lint- prefix.