-
Notifications
You must be signed in to change notification settings - Fork 38.7k
tests: Separately check for rapidcheck/boost_test.h in configure #14694
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
|
/cc @Christewart #12775 |
250aa1e to
34e61d6
Compare
|
Update to fix given that |
|
This makes sense to me. Although in reality we probably want to figure out a way to cleanly install the utack |
| The last travis run for this pull request was 278 days ago and is thus outdated. To trigger a fresh travis build, this pull request should be closed and re-opened. |
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.
EDIT: Suspending my initial approval. This PR improves the situation for the case when neither --with-rapidcheck nor --without-rapidcheck is passed into the configure but rapidcheck.h is detected while rapidcheck/boost_test.h is missing, and the build fails when it tries to compile test/key_properties.cpp which has an #include <rapidcheck/boost_test.h>.
However, the PR also seems to cause a new issue: When boost_test.h is present and it runs fine when --with-rapidcheck is passed (and before this PR when no argument is passed), e.g.
CXX test/test_bitcoin-key_properties.o
[...]
Running tests: key_properties from test/key_properties.cpp
then when no argument is passed to configure, the checks added in this PR return a false negative and the build does not compile rapidcheck when it otherwise should:
checking rapidcheck.h usability... yes
checking rapidcheck.h presence... yes
checking for rapidcheck.h... yes
checking rapidcheck/boost_test.h usability... no
checking rapidcheck/boost_test.h presence... yes
configure: WARNING: rapidcheck/boost_test.h: present but cannot be compiled
configure: WARNING: rapidcheck/boost_test.h: check for missing prerequisite headers?
configure: WARNING: rapidcheck/boost_test.h: see the Autoconf documentation
configure: WARNING: rapidcheck/boost_test.h: section "Present But Cannot Be Compiled"
configure: WARNING: rapidcheck/boost_test.h: proceeding with the compiler's result
configure: WARNING: ## -------------------------------------------------------- ##
configure: WARNING: ## Report this to https://github.com/bitcoin/bitcoin/issues ##
configure: WARNING: ## -------------------------------------------------------- ##
A couple of autoconf docs, for info:
As per https://github.com/emil-e/rapidcheck/blob/master/doc/boost_test.md Boost Test integration is an "extra" and not guaranteed to be available alongside rapidcheck itself. Checking for it in configure.ac avoids rapidcheck being enabled when not fully available. On my machine, before: checking rapidcheck.h usability... yes checking rapidcheck.h presence... yes checking for rapidcheck.h... yes [...] CXX wallet/test/test_test_bitcoin-psbt_wallet_tests.o test/key_properties.cpp:16:10: fatal error: 'rapidcheck/boost_test.h' file not found #include <rapidcheck/boost_test.h> ^~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. After: checking rapidcheck/boost_test.h usability... no checking rapidcheck/boost_test.h presence... no checking for rapidcheck/boost_test.h... no Note that as rapidcheck/boost_test.h includes rapidcheck.h, the default compile test will also effectively test rapidcheck.h for presence and usability.
34e61d6 to
0a7c5f0
Compare
|
@jonatack could you give this another try? I changed the test to check only for |
|
This should probably be closed as of #18514 |
As per https://github.com/emil-e/rapidcheck/blob/master/doc/boost_test.md
Boost Test integration is an "extra" and not guaranteed to be available
alongside rapidcheck itself. Checking for it in configure.ac avoids rapidcheck
being enabled when not fully available.
On my machine, before:
After: