diff options
author | Ben Laurie <ben@links.org> | 2016-03-26 17:19:14 +0000 |
---|---|---|
committer | Ben Laurie <ben@links.org> | 2016-05-07 18:13:54 +0100 |
commit | c38bb72797916f2a0ab9906aad29162ca8d53546 (patch) | |
tree | e3df72e2e4c4d14a822cd0a3101d005a8923a929 /fuzz/helper.py | |
parent | 049f5bbce3eebdf4ec2030042eb2ae64bb67aedb (diff) |
Add fuzzing!
Reviewed-by: Emilia Käsper <emilia@openssl.org>
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() |