diff options
Diffstat (limited to 'fuzz/helper.py')
-rwxr-xr-x | fuzz/helper.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/fuzz/helper.py b/fuzz/helper.py new file mode 100755 index 0000000000..75a9e12f0a --- /dev/null +++ b/fuzz/helper.py @@ -0,0 +1,45 @@ +#!/usr/bin/python + +"""Fuzzing helper, creates and uses corpus/crash directories. + +fuzzer.py <fuzzer> <extra fuzzer arguments> +""" + +import os +import subprocess +import sys + +FUZZER = sys.argv[1] + +THIS_DIR = os.path.abspath(os.path.dirname(__file__)) +CORPORA_DIR = os.path.abspath(os.path.join(THIS_DIR, "corpora")) + +FUZZER_DIR = os.path.abspath(os.path.join(CORPORA_DIR, FUZZER)) +if not os.path.isdir(FUZZER_DIR): + os.mkdir(FUZZER_DIR) + +corpora = [] + +def _create(d): + dd = os.path.abspath(os.path.join(CORPORA_DIR, d)) + if not os.path.isdir(dd): + os.mkdir(dd) + corpora.append(dd) + +def _add(d): + dd = os.path.abspath(os.path.join(CORPORA_DIR, d)) + if os.path.isdir(dd): + corpora.append(dd) + +def main(): + _create(FUZZER) + _create(FUZZER + "-crash") + _add(FUZZER + "-seed") + + cmd = ([os.path.abspath(os.path.join(THIS_DIR, FUZZER))] + sys.argv[2:] + + ["-artifact_prefix=" + corpora[1] + "/"] + corpora) + print " ".join(cmd) + subprocess.call(cmd) + +if __name__ == "__main__": + main() |