-
Notifications
You must be signed in to change notification settings - Fork 37.7k
build: Build minisketch test in make check
, not in make
#23670
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 04dae33 - you could update the PR description to remove the no-longer-existant binaries.
Thanks. The PR description has been updated. |
src/Makefile.test.include
Outdated
@@ -374,7 +374,7 @@ endif | |||
|
|||
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't univalue no longer a dependency but now maintained in-tree?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@MarcoFalke Yes. it is. Why did you point at it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't it be better to compile it at the same time that test_bitcoin is compiled?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR does not change the release tarball.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I find it convenient to be notified of univalue build failures on make
when developing univalue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"univalue build failures" or "univalue tests build failures"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Updated.
Concept ACK |
make check
, not in make
make 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.sh
does not spend resources to build binaries which are not a part of the release package.