mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-21 14:34:49 +01:00
Merge bitcoin/bitcoin#28656: fuzz: Allow multiple --m_dir args
faa5e061c2
fuzz: Allow multiple --m_dir args (MarcoFalke) Pull request description: This allows to merge the result from several servers (or just several folders) at the same time, instead of having to iterate over them. This should also allow the fuzz engine (libFuzzer) to optimize the final merge result more, because all fuzz inputs from all folders are available at the same time. ACKs for top commit: dergoegge: tACKfaa5e061c2
Tree-SHA512: bf0da418b1f7b8a8af16bb7cc1e148b1ccd0f17062ce70758d1ca5b35c3eee77c0c30377d376befdd55480adfd1f1a1073cfc47118e7a710e6760e020abe24bb
This commit is contained in:
commit
e6c30834b4
1 changed files with 8 additions and 7 deletions
|
@ -69,7 +69,8 @@ def main():
|
|||
)
|
||||
parser.add_argument(
|
||||
'--m_dir',
|
||||
help='Merge inputs from this directory into the corpus_dir.',
|
||||
action="append",
|
||||
help="Merge inputs from these directories into the corpus_dir.",
|
||||
)
|
||||
parser.add_argument(
|
||||
'-g',
|
||||
|
@ -176,7 +177,7 @@ def main():
|
|||
test_list=test_list_selection,
|
||||
src_dir=config['environment']['SRCDIR'],
|
||||
build_dir=config["environment"]["BUILDDIR"],
|
||||
merge_dir=args.m_dir,
|
||||
merge_dirs=[Path(m_dir) for m_dir in args.m_dir],
|
||||
)
|
||||
return
|
||||
|
||||
|
@ -270,8 +271,8 @@ def generate_corpus(*, fuzz_pool, src_dir, build_dir, corpus_dir, targets):
|
|||
future.result()
|
||||
|
||||
|
||||
def merge_inputs(*, fuzz_pool, corpus, test_list, src_dir, build_dir, merge_dir):
|
||||
logging.info("Merge the inputs from the passed dir into the corpus_dir. Passed dir {}".format(merge_dir))
|
||||
def merge_inputs(*, fuzz_pool, corpus, test_list, src_dir, build_dir, merge_dirs):
|
||||
logging.info(f"Merge the inputs from the passed dir into the corpus_dir. Passed dirs {merge_dirs}")
|
||||
jobs = []
|
||||
for t in test_list:
|
||||
args = [
|
||||
|
@ -289,10 +290,10 @@ def merge_inputs(*, fuzz_pool, corpus, test_list, src_dir, build_dir, merge_dir)
|
|||
# [0] https://github.com/google/oss-fuzz/issues/1406#issuecomment-387790487
|
||||
# [1] https://github.com/bitcoin-core/qa-assets/issues/130#issuecomment-1749075891
|
||||
os.path.join(corpus, t),
|
||||
os.path.join(merge_dir, t),
|
||||
]
|
||||
] + [str(m_dir / t) for m_dir in merge_dirs]
|
||||
os.makedirs(os.path.join(corpus, t), exist_ok=True)
|
||||
os.makedirs(os.path.join(merge_dir, t), exist_ok=True)
|
||||
for m_dir in merge_dirs:
|
||||
(m_dir / t).mkdir(exist_ok=True)
|
||||
|
||||
def job(t, args):
|
||||
output = 'Run {} with args {}\n'.format(t, " ".join(args))
|
||||
|
|
Loading…
Add table
Reference in a new issue