summaryrefslogtreecommitdiffstats
path: root/fuzz/helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'fuzz/helper.py')
-rwxr-xr-xfuzz/helper.py45
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()