From 0da70e1c01e9f14d0792e0d7b64c433cdc2dbbaf Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Sat, 8 May 2021 14:57:00 +0200 Subject: [PATCH] bitcoin-core: Only compile one fuzz target when OSS_FUZZ_CI (#5738) --- projects/bitcoin-core/build.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/bitcoin-core/build.sh b/projects/bitcoin-core/build.sh index 69b3aa449..db9654792 100755 --- a/projects/bitcoin-core/build.sh +++ b/projects/bitcoin-core/build.sh @@ -49,19 +49,19 @@ make -j$(nproc) WRITE_ALL_FUZZ_TARGETS_AND_ABORT="/tmp/a" "./src/test/fuzz/fuzz" || true readarray FUZZ_TARGETS < "/tmp/a" +if [ -n "${OSS_FUZZ_CI-}" ]; then + # When running in CI, check the first targets only to save time and disk space + FUZZ_TARGETS=( ${FUZZ_TARGETS[@]:0:2} ) +fi # Compile the fuzz executable again with a "magic string" as the name of the fuzz target export MAGIC_STR="b5813eee2abc9d3358151f298b75a72264ffa119d2f71ae7fefa15c4b70b4bc5b38e87e3107a730f25891ea428b2b4fabe7a84f5bfa73c79e0479e085e4ff157" sed -i "s|std::getenv(\"FUZZ\")|\"$MAGIC_STR\"|g" "./src/test/fuzz/fuzz.cpp" make -j$(nproc) -# Clean all build files to avoid out-of-disk errors -mv "./src/test/fuzz/fuzz" "./fuzz_main" -make distclean - # Replace the magic string with the actual name of each fuzz target for fuzz_target in ${FUZZ_TARGETS[@]}; do - python3 -c "c_str_target=b\"${fuzz_target}\x00\";c_str_magic=b\"$MAGIC_STR\";c=open('./fuzz_main','rb').read();c=c.replace(c_str_magic, c_str_target+c_str_magic[len(c_str_target):]);open(\"$OUT/$fuzz_target\",'wb').write(c)" + python3 -c "c_str_target=b\"${fuzz_target}\x00\";c_str_magic=b\"$MAGIC_STR\";c=open('./src/test/fuzz/fuzz','rb').read();c=c.replace(c_str_magic, c_str_target+c_str_magic[len(c_str_target):]);open(\"$OUT/$fuzz_target\",'wb').write(c)" chmod +x "$OUT/$fuzz_target" ( cd assets/fuzz_seed_corpus