aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2021-01-26 09:56:15 +0100
committerMarcoFalke <falke.marco@gmail.com>2021-01-26 09:56:24 +0100
commitce75fc36edc8bf98b353ec228bfa1184d6d35916 (patch)
tree90e91c79fadd644827a9c7e3863f3100b9ff328f /test
parentcbe439629e2baa1d0791c630c3f5b1a9632e7601 (diff)
parentfa39c8a3e8f1090103468780d122a4cf4191bc13 (diff)
downloadbitcoin-ce75fc36edc8bf98b353ec228bfa1184d6d35916.tar.xz
Merge #20971: test: Work around libFuzzer deadlock
fa39c8a3e8f1090103468780d122a4cf4191bc13 test: Work around libFuzzer deadlock (MarcoFalke) Pull request description: Only required part is `symbolize=0`, but the other changes shouldn't hurt ACKs for top commit: practicalswift: cr ACK fa39c8a3e8f1090103468780d122a4cf4191bc13: patch looks correct Tree-SHA512: 9cddf1de46ad12aea9b8be2c1acb86ba0e07ffdb52f8155d943edf970955551c7cb049a3a6c027846b45dab0dc0966dec42999476ebde50aa761a08dbb751eae
Diffstat (limited to 'test')
-rwxr-xr-xtest/fuzz/test_runner.py27
1 files changed, 17 insertions, 10 deletions
diff --git a/test/fuzz/test_runner.py b/test/fuzz/test_runner.py
index 3c743603bb..ab766b4a45 100755
--- a/test/fuzz/test_runner.py
+++ b/test/fuzz/test_runner.py
@@ -14,6 +14,14 @@ import subprocess
import sys
+def get_fuzz_env(*, target):
+ return {
+ 'FUZZ': target,
+ 'ASAN_OPTIONS': # symbolizer disabled due to https://github.com/google/sanitizers/issues/1364#issuecomment-761072085
+ 'symbolize=0:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1',
+ }
+
+
def main():
parser = argparse.ArgumentParser(
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
@@ -129,9 +137,7 @@ def main():
os.path.join(config["environment"]["BUILDDIR"], 'src', 'test', 'fuzz', 'fuzz'),
'-help=1',
],
- env={
- 'FUZZ': test_list_selection[0]
- },
+ env=get_fuzz_env(target=test_list_selection[0]),
timeout=20,
check=True,
stderr=subprocess.PIPE,
@@ -186,9 +192,7 @@ def generate_corpus_seeds(*, fuzz_pool, build_dir, seed_dir, targets):
' '.join(command),
subprocess.run(
command,
- env={
- 'FUZZ': t
- },
+ env=get_fuzz_env(target=t),
check=True,
stderr=subprocess.PIPE,
universal_newlines=True,
@@ -227,9 +231,7 @@ def merge_inputs(*, fuzz_pool, corpus, test_list, build_dir, merge_dir):
output = 'Run {} with args {}\n'.format(t, " ".join(args))
output += subprocess.run(
args,
- env={
- 'FUZZ': t
- },
+ env=get_fuzz_env(target=t),
check=True,
stderr=subprocess.PIPE,
universal_newlines=True,
@@ -257,7 +259,12 @@ def run_once(*, fuzz_pool, corpus, test_list, build_dir, use_valgrind):
def job(t, args):
output = 'Run {} with args {}'.format(t, args)
- result = subprocess.run(args, env={'FUZZ': t}, stderr=subprocess.PIPE, universal_newlines=True)
+ result = subprocess.run(
+ args,
+ env=get_fuzz_env(target=t),
+ stderr=subprocess.PIPE,
+ universal_newlines=True,
+ )
output += result.stderr
return output, result