mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-27 00:00:07 -06:00
Split networking code into its own target (#2091)
This commit is contained in:
37
src/net/libslirp/fuzzing/coverage.py
vendored
Normal file
37
src/net/libslirp/fuzzing/coverage.py
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
from os import chdir,listdir,environ
|
||||
from os.path import isfile,join,isdir
|
||||
from subprocess import DEVNULL, run
|
||||
import sys
|
||||
|
||||
ignored_files = "-ignore-filename-regex=glib -ignore-filename-regex=fuzz -ignore-filename-regex=helper -ignore-filename-regex=h$"
|
||||
|
||||
if __name__ == "__main__":
|
||||
chdir("build/fuzzing/out")
|
||||
available_targets = [exe for exe in listdir("../") if isfile(join("..", exe))]
|
||||
available_corpus_path = [exe for exe in listdir("../../../fuzzing/") if isdir(join("../../../fuzzing/", exe))]
|
||||
available_result_types = ["export", "show", "report"]
|
||||
if len(sys.argv) != 4 or sys.argv[1] not in available_targets or sys.argv[2] not in available_corpus_path or sys.argv[3] not in available_result_types:
|
||||
print("usage : python coverage.py fuzz_target IN_protol result_type")
|
||||
print(" - available targets : ")
|
||||
print(available_targets)
|
||||
print(" - available_corpus_path : ")
|
||||
print(available_corpus_path)
|
||||
print(" - available result types : ")
|
||||
print(available_result_types)
|
||||
exit(0)
|
||||
fuzzing_target = sys.argv[1]
|
||||
corpus_path = "../../../fuzzing/"+sys.argv[2]+"/"
|
||||
result_type = sys.argv[3]
|
||||
if fuzzing_target in available_targets:
|
||||
environ["LLVM_PROFILE_FILE"] = fuzzing_target + "_%p.profraw"
|
||||
corpus = listdir(corpus_path)
|
||||
for f in corpus:
|
||||
#print(corpus_path+f)
|
||||
run(["../" + fuzzing_target, corpus_path+f,"-detect_leaks=0"], stdin=DEVNULL, stdout=DEVNULL, stderr=DEVNULL)
|
||||
run(["llvm-profdata merge -sparse " + fuzzing_target + "_*.profraw -o " + fuzzing_target + ".profdata"], shell=True)
|
||||
if result_type == "export" :
|
||||
run(["llvm-cov show ../" + fuzzing_target + " -format=html -output-dir=../report -instr-profile=" + fuzzing_target + ".profdata " + ignored_files], shell=True)
|
||||
elif result_type == "show" :
|
||||
run(["llvm-cov show ../" + fuzzing_target + " -instr-profile=" + fuzzing_target + ".profdata " + ignored_files], shell=True)
|
||||
else:
|
||||
run(["llvm-cov report ../" + fuzzing_target + " -instr-profile=" + fuzzing_target + ".profdata " + ignored_files], shell=True)
|
Reference in New Issue
Block a user