This commit is contained in:
kevkevin 2025-04-29 11:50:23 +02:00 committed by GitHub
commit 487a5ad688
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -251,6 +251,10 @@ def generate_corpus(*, fuzz_pool, src_dir, fuzz_bin, corpus_dir, targets):
targets = transform_process_message_target(targets, Path(src_dir))
targets = transform_rpc_target(targets, Path(src_dir))
# Counter for completed jobs
completed_jobs = 0
last_reported = -5
def job(command, t, t_env):
logging.debug(f"Running '{command}'")
logging.debug("Command '{}' output:\n'{}'\n".format(
@ -284,11 +288,17 @@ def generate_corpus(*, fuzz_pool, src_dir, fuzz_bin, corpus_dir, targets):
for future in as_completed(futures):
future.result()
completed_jobs, last_reported = log_and_update_percent_complete(completed_jobs, len(targets), last_reported)
def merge_inputs(*, fuzz_pool, corpus, test_list, src_dir, fuzz_bin, merge_dirs):
logging.info(f"Merge the inputs from the passed dir into the corpus_dir. Passed dirs {merge_dirs}")
jobs = []
# Counter for completed jobs
completed_jobs = 0
last_reported = -5
for t in test_list:
args = [
fuzz_bin,
@ -326,10 +336,25 @@ def merge_inputs(*, fuzz_pool, corpus, test_list, src_dir, fuzz_bin, merge_dirs)
for future in as_completed(jobs):
future.result()
completed_jobs, last_reported = log_and_update_percent_complete(completed_jobs, len(test_list), last_reported)
def log_and_update_percent_complete(completed_jobs, number_of_jobs, last_reported):
completed_jobs += 1
percentage = (completed_jobs / number_of_jobs) * 100
if percentage >= last_reported + 5:
logging.info(f"Progress: {completed_jobs}/{number_of_jobs} jobs completed ({percentage:.2f}%)")
last_reported = (percentage // 5) * 5
return completed_jobs, last_reported
def run_once(*, fuzz_pool, corpus, test_list, src_dir, fuzz_bin, using_libfuzzer, use_valgrind, empty_min_time):
jobs = []
# Counter for completed jobs
completed_jobs = 0
last_reported = -5
for t in test_list:
corpus_path = corpus / t
os.makedirs(corpus_path, exist_ok=True)
@ -366,6 +391,9 @@ def run_once(*, fuzz_pool, corpus, test_list, src_dir, fuzz_bin, using_libfuzzer
stats = []
for future in as_completed(jobs):
output, result, target = future.result()
completed_jobs, last_reported = log_and_update_percent_complete(completed_jobs, len(test_list), last_reported)
logging.debug(output)
try:
result.check_returncode()