<jamesob>
Do we have some conventional way of marking a fuzz test as not being applicable to certain platforms? (e.g. win, macos)
<sipa>
could just return; immediately in the test if that's the case
Guest24 has joined #bitcoin-core-dev
<jamesob>
the issue I'm looking at is a compilation error - one of darosior's proposed fuzz tests uses fmemopen, which is (afaict) not available on win or macos
Guest24 has quit [Client Quit]
<dergoegge>
jamesob: afaik we don't have any such exceptions atm
<dergoegge>
for the fmemopen one we could just ifdef the mocking?
AaronvanW has joined #bitcoin-core-dev
<jamesob>
dergoegge: yeah that's what I'm thinking, and then early-exit on macos/win... or implement some kind of fmemopen equivalent
<dergoegge>
I think the targets should be able to run without the mocking, it'll just be much slower
<jamesob>
oh yeah, good point
<jamesob>
do we ever use stderr to emit warnings in fuzz tests - e.g. "there's degraded behavior on this platform"
<dergoegge>
no, i think that's more of a job for the fuzz engines
<dergoegge>
e.g. afl++ will complain about slow harnesses
virtu has joined #bitcoin-core-dev
<achow101>
#proposedmeetingtopic bip324 defaults for 27.0
not_reserved has quit [Quit: Client closed]
dberkelmans has quit [Quit: Client closed]
<bitcoin-git>
[bitcoin] dergoegge opened pull request #29219: fuzz: Improve fuzzing stability for ellswift_roundtrip harness (master...2024-01-fuzz-stability-ellswift_roundtrip) https://github.com/bitcoin/bitcoin/pull/29219
<bitcoin-git>
[bitcoin] glozow merged pull request #29215: test: assumeutxo: spend coin from snapshot chainstate after loading (master...202401-test-assumeutxo-spend_coin_from_snapshot_chainstate) https://github.com/bitcoin/bitcoin/pull/29215
GregTonoski has joined #bitcoin-core-dev
dviola has joined #bitcoin-core-dev
virtu has quit [Quit: leaving]
<jamesob>
One thing that's a bummer about some of the test/lint infra moving to rust (e.g. lint/test_runner) is that when changing parts of the lint, an entire container rebuild/compilation has to happen
<jamesob>
Some of the pain there is probably unique to the fact that I'm having to experiment with weird `git grep` syntax...
not_reserved has quit [Quit: Client closed]
GregTonoski has quit [Quit: Client closed]
not_reserved has joined #bitcoin-core-dev
Talkless has joined #bitcoin-core-dev
jeremyrubin has joined #bitcoin-core-dev
angusp has joined #bitcoin-core-dev
utzig has joined #bitcoin-core-dev
<bitcoin-git>
[gui] xonx4l opened pull request #786: FIX:When opening or autoloading wallets there should be clear messages about rescanning in progress and wallets' names. (master...patch-1) https://github.com/bitcoin-core/gui/pull/786
<instagibbs>
anyone have tips running fuzz targets with integer sanitizer? everything seems to get very upset
<instagibbs>
trying to replicate overflow detection from ci
<sipa>
instagibbs: in (low_sum_high << 32) you're shifting a 32-bit integer by 32 positions, which is UB.
<instagibbs>
errr maybe, I'd still like to know how to do this
<sipa>
Do what?
<instagibbs>
> trying to replicate overflow detection from ci
<sipa>
Oh, right.
<sipa>
running with --with-sanitizers=undefined doesn't work?
<sipa>
I'm also wrong, low_sum_high is a uint64_t; this is perfectly well defined
<instagibbs>
I'll just agree with whatever you say in public about bit shifting
<sipa>
But we enable some optional ubsan settings that trigger in case of well-defined-but-probably-not-what-you-want in some CI environments.
<instagibbs>
yeah noticed
<instagibbs>
think ive worked around it :) just trying to not guess and check so much going forward, double checking my config flag attempts
<sipa>
I'm not sure how or where that is configured, but the solution is probably just a silencer
Guest48 has joined #bitcoin-core-dev
aureleoules has quit [Ping timeout: 245 seconds]
<sipa>
-fsanitize=shift enables this
lbia has quit [Quit: lbia]
<sipa>
and we enable it in CI through -fsanitize=integer: ci/test/00_setup_env_native_asan.sh:--with-sanitizers=address,float-divide-by-zero,integer,undefined
<sipa>
eg
Guest48 has quit [Ping timeout: 250 seconds]
<sipa>
and i think you should add a suppression to test/sanitizer_suppressions/ubsan for this... sanitizers are supposed to help you, if they're wrong or in the way, ignore them
<instagibbs>
k, will take a look at how to add those
<instagibbs>
some seemed valid, some not
<sipa>
shift-base:filename, or shift-base:FunctionName
Guest81 has joined #bitcoin-core-dev
lbia has joined #bitcoin-core-dev
Guest81 has quit [Client Quit]
<darosior>
"everything seems to get very upset" -> did you add the suppressions?
<darosior>
What i've been using, but haven't updated it in a while
<darosior>
iirc i took it from the ci scripts
<sipa>
i think it's somewhat unfortunate that when configured, ubsan really doesn't distinguish between actual UB, and "optional other warnings you've opted into"