Skip to content

test: Add passDouble smoke test#294

Merged
ryanofsky merged 1 commit into
bitcoin-core:masterfrom
maflcko:2606-test-double-tidy
Jun 11, 2026
Merged

test: Add passDouble smoke test#294
ryanofsky merged 1 commit into
bitcoin-core:masterfrom
maflcko:2606-test-double-tidy

Conversation

@maflcko

@maflcko maflcko commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Mostly for clang-tidy to cover commit 733c643

Mostly for clang-tidy to cover commit 733c643
@DrahtBot

DrahtBot commented Jun 10, 2026

Copy link
Copy Markdown

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK ryanofsky

If your review is incorrectly listed, please copy-paste <!--meta-tag:bot-skip--> into the comment that the bot should ignore.

@maflcko

maflcko commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

Tested locally with the nix CI config:

[5/7] Building CXX object test/CMakeFiles/mptest.dir/mp/test/foo.capnp.proxy-client.c++.o
FAILED: [code=1] test/CMakeFiles/mptest.dir/mp/test/foo.capnp.proxy-client.c++.o
/nix/store/r9941n32g4wyvggz2703dlplbdq8a6rd-cmake-4.1.2/bin/cmake -E __run_co_compile --tidy="/nix/store/wcwr4iq7c8f4ygn8bd1q0k3i51lmhz35-clang-21.1.8/bin/clang-tidy;--extra-arg-before=--driver-mode=g++" --source=/tmp/tmp.A7Li
qAWKn2/git_dir/build-llvm/test/mp/test/foo.capnp.proxy-client.c++ -- /nix/store/fhwhpg79dwbmb7wg18864l8rk9j8634g-clang-wrapper-21.1.8/bin/clang++ -DKJ_USE_FIBERS -I/tmp/tmp.A7LiqAWKn2/git_dir/build-llvm/test -I/tmp/tmp.A7LiqAW
Kn2/git_dir/include -I/tmp/tmp.A7LiqAWKn2/git_dir/test -I/tmp/tmp.A7LiqAWKn2/git_dir/build-llvm/include -isystem /nix/store/njqpk50gg9b2awwdl4g8hdg048j7x7y8-libcxx-21.1.8-dev/include -isystem /nix/store/0balwgpf53vhjycd97mq1bkmz45nc1ks-compiler-rt-libc-21.1.8-dev/include -isystem /nix/store/i2vcdjg0hvr52qfh0il5jrfrg3c4h53m-capnproto-1.4.0/include -isystem /nix/store/wxws7pwyzk8mbmjc1rwwwx9v184hh67v-openssl-3.6.2-dev/include -isystem /nix/store/h7ik0g1xxayy0z8h27zbvrgmac63irgs-zlib-1.3.2-dev/include -isystem /nix/store/njqpk50gg9b2awwdl4g8hdg048j7x7y8-libcxx-21.1.8-dev/include/c++/v1 -isystem /nix/store/fhwhpg79dwbmb7wg18864l8rk9j8634g-clang-wrapper-21.1.8/resource-root/include -isystem /nix/store/15h9askp4k1lx44d9871wid23j2a8ijp-glibc-2.42-61-dev/include -Werror -Wall -Wextra -Wpedantic -Wthread-safety -Wno-unused-parameter -std=gnu++20 -pthread -MD -MT test/CMakeFiles/mptest.dir/mp/test/foo.capnp.proxy-client.c++.o -MF test/CMakeFiles/mptest.dir/mp/test/foo.capnp.proxy-client.c++.o.d -o test/CMakeFiles/mptest.dir/mp/test/foo.capnp.proxy-client.c++.o -c /tmp/tmp.A7LiqAWKn2/git_dir/build-llvm/test/mp/test/foo.capnp.proxy-client.c++
/tmp/tmp.A7LiqAWKn2/git_dir/include/mp/type-number.h:85:87: error: use nullptr [modernize-use-nullptr,-warnings-as-errors]
   85 |     typename std::enable_if<std::is_floating_point<LocalType>::value>::type* enable = 0)
      |                                                                                       ^
      |                                                                                       nullptr
179 warnings generated.
Suppressed 177 warnings (177 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error

@maflcko

maflcko commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

ci failure can be ignored 🫠

@maflcko

maflcko commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

Also, unrelated, I noticed that the CI not reproducible. Locally the iwyu CI fails with:

iwyu err
CI_CONFIG=ci/configs/llvm.bash ci/scripts/run.sh 
+ '[' x ']'
+ source ci/configs/llvm.bash
++ CI_DESC='CI job using LLVM-based libraries and tools (clang, libc++, clang-tidy, iwyu) and testing Ninja'
++ CI_DIR=build-llvm
++ NIX_ARGS=(--arg enableLibcxx true)
++ export CXX=clang++
++ CXX=clang++
++ export 'CXXFLAGS=-Werror -Wall -Wextra -Wpedantic -Wthread-safety -Wno-unused-parameter'
++ CXXFLAGS='-Werror -Wall -Wextra -Wpedantic -Wthread-safety -Wno-unused-parameter'
++ CMAKE_ARGS=(-G Ninja -DMP_ENABLE_CLANG_TIDY=ON -DMP_ENABLE_IWYU=ON)
++ BUILD_ARGS=(-k 0)
+ nix develop --ignore-environment --keep CI_CONFIG --keep CI_CLEAN --arg enableLibcxx true -f shell.nix --command ci/scripts/ci.sh
+ '[' x ']'
+ source ci/configs/llvm.bash
++ CI_DESC='CI job using LLVM-based libraries and tools (clang, libc++, clang-tidy, iwyu) and testing Ninja'
++ CI_DIR=build-llvm
++ NIX_ARGS=(--arg enableLibcxx true)
++ export CXX=clang++
++ CXX=clang++
++ export 'CXXFLAGS=-Werror -Wall -Wextra -Wpedantic -Wthread-safety -Wno-unused-parameter'
++ CXXFLAGS='-Werror -Wall -Wextra -Wpedantic -Wthread-safety -Wno-unused-parameter'
++ CMAKE_ARGS=(-G Ninja -DMP_ENABLE_CLANG_TIDY=ON -DMP_ENABLE_IWYU=ON)
++ BUILD_ARGS=(-k 0)
+ : build-llvm
+ '[' -v BUILD_TARGETS ']'
+ BUILD_TARGETS=(all tests mpexamples)
+ '[' -n '' ']'
+ cmake --version
cmake version 4.1.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).
++ cmake --version
++ awk '/version/{print $3; exit}'
+ cmake_ver=4.1.2
+ src_dir=/tmp/tmp.CdXP7X55gV/git_dir
+ mkdir -p build-llvm
+ cd build-llvm
+ cmake /tmp/tmp.CdXP7X55gV/git_dir -G Ninja -DMP_ENABLE_CLANG_TIDY=ON -DMP_ENABLE_IWYU=ON
-- The CXX compiler identification is Clang 21.1.8
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /nix/store/fhwhpg79dwbmb7wg18864l8rk9j8634g-clang-wrapper-21.1.8/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test HAVE_PTHREAD_GETNAME_NP
-- Performing Test HAVE_PTHREAD_GETNAME_NP - Success
-- Performing Test HAVE_PTHREAD_THREADID_NP
-- Performing Test HAVE_PTHREAD_THREADID_NP - Failed
-- Performing Test HAVE_PTHREAD_GETTHREADID_NP
-- Performing Test HAVE_PTHREAD_GETTHREADID_NP - Failed
-- Configuring done (3.8s)
-- Generating done (0.1s)
-- Build files have been written to: /tmp/tmp.CdXP7X55gV/git_dir/build-llvm
+ ver_ge 4.1.2 3.15
++ printf '%s\n' 3.15 4.1.2
++ sort -V
++ head -n1
+ '[' 3.15 = 3.15 ']'
+ cmake --build . -t all tests mpexamples -- -k 0
[1/60] Compiling Cap'n Proto schema include/mp/proxy.capnp
[2/60] Building CXX object CMakeFiles/multiprocess.dir/include/mp/proxy.capnp.c++.o
[3/60] Building CXX object CMakeFiles/mpgen.dir/src/mp/gen.cpp.o
FAILED: [code=1] CMakeFiles/mpgen.dir/src/mp/gen.cpp.o 
/nix/store/r9941n32g4wyvggz2703dlplbdq8a6rd-cmake-4.1.2/bin/cmake -E __run_co_compile --iwyu="/nix/store/zkvvr6wn4x6c2wjj9pfi5k896gsm337m-include-what-you-use-0.26/bin/include-what-you-use;-Xiwyu;--error;-Xiwyu;--mapping_file=/nix/store/njqpk50gg9b2awwdl4g8hdg048j7x7y8-libcxx-21.1.8-dev/include/c++/v1/libcxx.imp;--driver-mode=g++" --tidy="/nix/store/wcwr4iq7c8f4ygn8bd1q0k3i51lmhz35-clang-21.1.8/bin/clang-tidy;--extra-arg-before=--driver-mode=g++" --source=/tmp/tmp.CdXP7X55gV/git_dir/src/mp/gen.cpp -- /nix/store/fhwhpg79dwbmb7wg18864l8rk9j8634g-clang-wrapper-21.1.8/bin/clang++ -DKJ_USE_FIBERS -I/tmp/tmp.CdXP7X55gV/git_dir/build-llvm/include -I/tmp/tmp.CdXP7X55gV/git_dir/include -isystem /nix/store/njqpk50gg9b2awwdl4g8hdg048j7x7y8-libcxx-21.1.8-dev/include -isystem /nix/store/0balwgpf53vhjycd97mq1bkmz45nc1ks-compiler-rt-libc-21.1.8-dev/include -isystem /nix/store/i2vcdjg0hvr52qfh0il5jrfrg3c4h53m-capnproto-1.4.0/include -isystem /nix/store/wxws7pwyzk8mbmjc1rwwwx9v184hh67v-openssl-3.6.2-dev/include -isystem /nix/store/h7ik0g1xxayy0z8h27zbvrgmac63irgs-zlib-1.3.2-dev/include -isystem /nix/store/njqpk50gg9b2awwdl4g8hdg048j7x7y8-libcxx-21.1.8-dev/include/c++/v1 -isystem /nix/store/fhwhpg79dwbmb7wg18864l8rk9j8634g-clang-wrapper-21.1.8/resource-root/include -isystem /nix/store/15h9askp4k1lx44d9871wid23j2a8ijp-glibc-2.42-61-dev/include -Werror -Wall -Wextra -Wpedantic -Wthread-safety -Wno-unused-parameter -std=gnu++20 -pthread -MD -MT CMakeFiles/mpgen.dir/src/mp/gen.cpp.o -MF CMakeFiles/mpgen.dir/src/mp/gen.cpp.o.d -o CMakeFiles/mpgen.dir/src/mp/gen.cpp.o -c /tmp/tmp.CdXP7X55gV/git_dir/src/mp/gen.cpp
Warning: include-what-you-use reported diagnostics:

/tmp/tmp.CdXP7X55gV/git_dir/src/mp/gen.cpp should add these lines:
#include <capnp/schema.capnp.h>   // for Annotation

/tmp/tmp.CdXP7X55gV/git_dir/src/mp/gen.cpp should remove these lines:

The full include-list for /tmp/tmp.CdXP7X55gV/git_dir/src/mp/gen.cpp:
#include <capnp/schema-parser.h>  // for ParsedSchema, SchemaParser
#include <capnp/schema.capnp.h>   // for Annotation
#include <capnp/schema.h>         // for Type, InterfaceSchema, StructSchema
#include <kj/array.h>             // for Array, heapArray
#include <kj/common.h>            // for mv, KJ_IF_MAYBE, NullableValue, Arr...
#include <kj/filesystem.h>        // for ReadableDirectory, Directory, Files...
#include <kj/memory.h>            // for Own, OwnOwn
#include <kj/string.h>            // for StringPtr
#include <mp/config.h>            // for capnp_PREFIX, CMAKE_INSTALL_PREFIX
#include <mp/util.h>              // for ExecProcess, WaitProcess
#include <unistd.h>               // for fork
#include <algorithm>              // for __transform, transform
#include <cerrno>                 // for errno
#include <cstdint>                // for uint64_t, int32_t
#include <cstdio>                 // for size_t
#include <cstdlib>                // for exit
#include <fstream>                // for basic_ofstream, basic_ostream, oper...
#include <functional>             // for function
#include <initializer_list>       // for initializer_list
#include <iostream>               // for cerr
#include <map>                    // for map, operator!=, __map_iterator
#include <set>                    // for set
#include <sstream>                // for basic_ostringstream
#include <stdexcept>              // for runtime_error
#include <string>                 // for basic_string, char_traits, allocator
#include <system_error>           // for system_error, system_category
#include <utility>                // for pair, declval
#include <vector>                 // for vector
---

[4/60] Building CXX object CMakeFiles/mputil.dir/src/mp/util.cpp.o
[5/60] Building CXX object CMakeFiles/multiprocess.dir/src/mp/proxy.cpp.o
[6/60] Linking CXX static library libmultiprocess.a
ninja: build stopped: cannot make progress due to previous errors.

Maybe it could make sense to bump the GHA nix channel to be more recent?

@ryanofsky ryanofsky left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code review ACK faaedb1. Thanks for the test!

@ryanofsky

ryanofsky commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

re: #294 (comment)

ci failure can be ignored 🫠

Yep, CI failure is fixed by #286 (just needs review)

re: #294 (comment)

Also, unrelated, I noticed that the CI not reproducible. Locally the iwyu CI fails with:

I think the IWYU error is also fixed by #286 since I ran IWYU locally, and the cause is that a different capnproto version is used. It probably make sense to update the nixpkgs channel too as you suggest.

@ryanofsky ryanofsky merged commit 1593ee2 into bitcoin-core:master Jun 11, 2026
12 of 13 checks passed
@maflcko maflcko deleted the 2606-test-double-tidy branch June 11, 2026 05:18
Sjors added a commit to Sjors/sv2-tp that referenced this pull request Jun 17, 2026
8412fcdc65 Merge bitcoin-core/libmultiprocess#295: Mark Waiter m_cv as guarded by m_mutex
1593ee2d18 Merge bitcoin-core/libmultiprocess#294: test: Add passDouble smoke test
9885d7dd33 Merge bitcoin-core/libmultiprocess#286: proxy-client: fix TSan data race in clientDestroy
fa35501c4f Mark Waiter m_cv as guarded by m_mutex
faaedb11f8 test: Add passDouble smoke test
733c64318d Merge bitcoin-core/libmultiprocess#292: type-number: fix clang-tidy modernize-use-nullptr
9cc3479ab3 Merge bitcoin-core/libmultiprocess#291: cmake: Add `mp_headers` custom target
201abd9e3a Merge bitcoin-core/libmultiprocess#289: cmake: make target_capnp_sources use CURRENT dirs
99820c8aec Merge bitcoin-core/libmultiprocess#279: doc: Add comments to FIELD_* constants in proxy.h
73b985540c Merge bitcoin-core/libmultiprocess#278: doc: Fix and expand design.md
e7e91b2e23 Merge bitcoin-core/libmultiprocess#277: Add std::unordered_set support and a helper BuildList to dedup list build handlers
91a951f59a tidy fix: modernize-use-nullptr
16362f42d0 cmake: Add `mp_headers` custom target
615a94fe3a cmake: document ONLY_CAPNP option in target_capnp_sources
90982f75c6 mpgen: iwyu changes required by previous commit
25bb3e67f3 proxy-client: fix TSan data race in clientDestroy
620f297f31 cmake: make target_capnp_sources use CURRENT dirs
9de4b885aa test: use camelCase + $Proxy.name for FooStruct fields
011b91793d type: add std::unordered_set support
20d19b9644 proxy: add BuildList helper and dedup map/set/vector build handlers
e863c6cdf6 doc: Add comments to FIELD_* constants in proxy.h
18db0ab957 doc: Fix and expand design.md
61de697536 Merge bitcoin-core/libmultiprocess#273: proxy-client: tolerate exceptions from remote destroy during cleanup
9cec9d6ca5 Merge bitcoin-core/libmultiprocess#243: mpgen: support primitive std::optional struct fields
4aaff11374 Merge bitcoin-core/libmultiprocess#238: cmake, ci: updates for recent nixpkgs
2ac55a56b5 Merge bitcoin-core/libmultiprocess#218: Better error and log messages
6de92e1c73 proxy-client: tolerate exceptions from remote destroy during cleanup
90be8354d4 test: regression for ~ProxyClient destroy after peer disconnect
3c69d125a1 Merge bitcoin-core/libmultiprocess#260: event loop: tolerate unexpected exceptions in `post()` callbacks
b8a48c65e6 event loop: tolerate unexpected exceptions in `post()` callbacks
f787863d2c Merge bitcoin-core/libmultiprocess#270: doc: Bump version 10 > 11
a22f602910 doc: Bump version 10 > 11
4eae445d6d debug: Add TypeName() function and log statements for Proxy objects being created and destroyed
f326c5b1b7 logging: Add better logging on IPC server-side failures
6dbfa56a04 mpgen: support primitive std::optional struct fields
8d1277deb5 mpgen refactor: add AccessorType function
db716bbcba mpgen refactor: Move field handling code to FieldList class
db7acb3ce2 ci: Fix shell.nix compatibility with CMake 4.0
91a7759a9a cmake: Fix IWYU in nix by adding CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: 8412fcdc659e1379f9b4dea896c26bc1c5f3afa8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants