build: Build minisketch test in make check, not in make#23670
build: Build minisketch test in make check, not in make#23670fanquake merged 1 commit intobitcoin:masterfrom
make check, not in make#23670Conversation
jonatack
left a comment
There was a problem hiding this comment.
Concept ACK modulo Win64 issue. Same result as pull description using debian 5.15.5-1 (2021-11-26), clang 14.
master
(master)$ make 2>&1 | grep LD
CXXLD libunivalue.la
CCLD libsecp256k1.la
CXXLD bitcoind
CXXLD bitcoin-cli
CXXLD bitcoin-tx
CXXLD bitcoin-util
CXXLD test/test_bitcoin
CXXLD bench/bench_bitcoin
CXXLD minisketch/test
CXXLD test/fuzz/fuzz
CXXLD univalue/test/object
CXXLD univalue/test/unitester
CXXLD univalue/test/no_nul
CXXLD libbitcoinconsensus.la
(master)$ make check 2>&1 | grep LD
CCLD tests
CCLD valgrind_ctime_test
CCLD exhaustive_tests
this branch
((HEAD detached from origin/pr/23670))$ make 2>&1 | grep LD
CXXLD libunivalue.la
CCLD libsecp256k1.la
CXXLD bitcoind
CXXLD bitcoin-cli
CXXLD bitcoin-tx
CXXLD bitcoin-util
CXXLD test/test_bitcoin
CXXLD bench/bench_bitcoin
CXXLD test/fuzz/fuzz
CXXLD libbitcoinconsensus.la
((HEAD detached from origin/pr/23670))$ make check 2>&1 | grep LD
CXXLD minisketch/test
CXXLD univalue/test/object
CXXLD univalue/test/unitester
CXXLD univalue/test/no_nul
CCLD tests
CCLD valgrind_ctime_test
CCLD exhaustive_tests
|
I think there's a slight value in always building all binaries (that are enabled by configure). But as |
|
Concept ACK given, as @laanwj said, this is only omitting dependency-test compilation during |
|
|
ff3f93a to
c39c553
Compare
Fixed. |
|
Rebased c39c553 -> 1593837 (pr23670.03 -> pr23670.04) due to the conflict with #24212. |
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
|
Rebased 1593837 -> e9fa9ac (pr23670.04 -> pr23670.05) due to the conflict with #24322. |
|
Rebased e9fa9ac -> 04dae33 (pr23670.05 -> pr23670.06). |
Thanks. The PR description has been updated. |
src/Makefile.test.include
Outdated
| if ENABLE_TESTS | ||
| UNIVALUE_TESTS = univalue/test/object univalue/test/unitester | ||
| noinst_PROGRAMS += $(UNIVALUE_TESTS) | ||
| check_PROGRAMS += $(UNIVALUE_TESTS) |
There was a problem hiding this comment.
Isn't univalue no longer a dependency but now maintained in-tree?
There was a problem hiding this comment.
@MarcoFalke Yes. it is. Why did you point at it?
There was a problem hiding this comment.
Wouldn't it be better to compile it at the same time that test_bitcoin is compiled?
There was a problem hiding this comment.
Why?
test_bitcoin is a part of the distributed package, but univalue tests are not. Why build them in contrib/guix/libexec/build.sh?
There was a problem hiding this comment.
I wasn't aware this changes the guix build and the release tarball. Maybe mention it in the description?
There was a problem hiding this comment.
This PR does not change the release tarball.
There was a problem hiding this comment.
I find it convenient to be notified of univalue build failures on make when developing univalue.
There was a problem hiding this comment.
"univalue build failures" or "univalue tests build failures"?
There was a problem hiding this comment.
Both.
Did you measure how many milliseconds this shaves off of the guix build? I'd bet it is far less than 0.1% of overall build time.
Unrelated: It may overall be more useful for devs to introduce a make check_quick to only run the bitcoin core unit tests (without any secp exhaustive_tests)
|
Concept ACK |
make check, not in makemake check, not in make
|
Updated 04dae33 -> 6d58117 (pr23670.06 -> pr23670.07):
|
|
ACK 6d58117 |
…t in `make` 6d58117 build: Build minisketch test in `make check`, not in `make` (Hennadii Stepanov) Pull request description: On master (d1e4265): ``` $ ./autogen.sh && ./configure --without-gui --disable-wallet && make clean $ make 2>&1 | grep LD | grep -v .la CXXLD bitcoind CXXLD bitcoin-cli CXXLD bitcoin-tx CXXLD bitcoin-util CXXLD test/test_bitcoin CXXLD bench/bench_bitcoin CXXLD minisketch/test CXXLD test/fuzz/fuzz CXXLD univalue/test/object CXXLD univalue/test/unitester $ make check 2>&1 | grep LD CCLD exhaustive_tests CCLD tests ``` With this PR: ``` $ ./autogen.sh && ./configure --without-gui --disable-wallet && make clean $ make 2>&1 | grep LD | grep -v .la CXXLD bitcoind CXXLD bitcoin-cli CXXLD bitcoin-tx CXXLD bitcoin-util CXXLD test/test_bitcoin CXXLD bench/bench_bitcoin CXXLD test/fuzz/fuzz CXXLD univalue/test/object CXXLD univalue/test/unitester $ make check 2>&1 | grep LD CXXLD minisketch/test CCLD exhaustive_tests CCLD tests ``` In fact, this PR restores behavior that was before bitcoin#22646, and that behavior looks more optimal. As an outcome, the `contrib/guix/libexec/build.sh` does not spend resources to build binaries which are not a part of the release package. ACKs for top commit: TheCharlatan: ACK 6d58117 Tree-SHA512: 4957c8f88a01aca005813bf4c1c26f433756bf68ea0c958481c638ead229fa8e23ecae3a8ac31ea555876ba6f2cc10ecd91caf2e2f664de5cb529ec05fb38fa7
On master (d1e4265):
With this PR:
In fact, this PR restores behavior that was before #22646, and that behavior looks more optimal.
As an outcome, the
contrib/guix/libexec/build.shdoes not spend resources to build binaries which are not a part of the release package.