dash/ci/test
Samuel Dobson 209c48a90a
Merge #15382: util: add RunCommandParseJSON
31cf68a3ad1f0a5537c8419e2912b55fbfb88fa0 [util] add RunCommandParseJSON (Sjors Provoost)
c17f54ee535faaedf9033717403e1f775b5f1530 [ci] use boost::process (Sjors Provoost)
32128ba682033560d6eb2e4848a9f77a842016d2 [doc] include Doxygen comments for HAVE_BOOST_PROCESS (Sjors Provoost)
3c84d85f7d218fa27e9343c5cd1a55e519218980 [build] msvc: add boost::process (Sjors Provoost)
c47e4bbf0b44f2de1278f9538124ec98ee0815bb [build] make boost-process opt-in (Sjors Provoost)
929cda5470f98d1ef85c05b1cad4e2fb9227e3b0 configure: add ax_boost_process (Sjors Provoost)
8314c23d7b39fc36dde8b40b03b6efbe96f85698 [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 31cf68a3ad1f0a5537c8419e2912b55fbfb88fa0
  hebasto:
    re-ACK 31cf68a3ad1f0a5537c8419e2912b55fbfb88fa0, 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 31cf68a3ad1f0a5537c8419e2912b55fbfb88fa0, although I am not very confident with build stuff.
  promag:
    Code review ACK 31cf68a3ad1f0a5537c8419e2912b55fbfb88fa0, don't mind the nit.
  ryanofsky:
    Code review ACK 31cf68a3ad1f0a5537c8419e2912b55fbfb88fa0. I left some comments below that could be ignored or followed up later. The current change is clean and comprehensive.

Tree-SHA512: c506e747014b263606e1f538ed4624a8ad7bcf4e025cb700c12cc5739964e254dc04a2bbb848996b170e2ccec3fbfa4fe9e2b3976b191222cfb82fc3e6ab182d
2024-02-01 09:22:03 -06:00
..
00_setup_env_arm.sh Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
00_setup_env_mac_host.sh Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
00_setup_env_mac.sh Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
00_setup_env_native_asan.sh Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
00_setup_env_native_cxx20.sh partial Merge #20182: ci: Build with --enable-werror by default, and document exceptions 2024-01-06 19:30:15 -06:00
00_setup_env_native_fuzz_with_valgrind.sh chore: dashification: drop DOCKER_NAME_TAG 2024-01-22 19:47:11 -06:00
00_setup_env_native_fuzz.sh Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
00_setup_env_native_multiprocess.sh Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
00_setup_env_native_nowallet.sh Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
00_setup_env_native_qt5.sh Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
00_setup_env_native_sqlite.sh merge bitcoin#22930: remove glibc back compat 2023-08-01 12:07:31 -05:00
00_setup_env_native_tsan.sh Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
00_setup_env_native_ubsan.sh partial Merge #20182: ci: Build with --enable-werror by default, and document exceptions 2024-01-06 19:30:15 -06:00
00_setup_env_native_valgrind.sh Merge #19371: ci: Increase test timeout for sanitizer configs 2024-01-23 22:14:13 -06:00
00_setup_env_s390x.sh Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
00_setup_env_win64.sh Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
00_setup_env.sh Merge #19495: ci: Disable macOS functional tests on forked repos to avoid timeouts 2024-01-23 22:14:15 -06:00
03_before_install.sh partial Merge #19041: ci: tsan with -stdlib=libc++-10 2024-01-27 22:44:47 -06:00
04_install.sh partial Merge #19041: ci: tsan with -stdlib=libc++-10 2024-01-27 22:44:47 -06:00
05_before_script.sh Merge #19276: ci: Move travis workarounds to .travis.yml 2024-01-27 22:44:49 -06:00
wrap-valgrind.sh Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00