aboutsummaryrefslogtreecommitdiffhomepage
path: root/infra/helper.py
diff options
context:
space:
mode:
authorGravatar Alex Gaynor <alex.gaynor@gmail.com>2017-04-05 21:13:20 -0400
committerGravatar Oliver Chang <oliverchang@users.noreply.github.com>2017-04-05 18:13:20 -0700
commit9db317d3b5415ef09c607ffd687984359e1e25ac (patch)
treed9c4e5b4b8e75f92393df4aef459660d687ad64a /infra/helper.py
parent8f4a2ad5a2ae7ec3235f3715879c1e3567a0517c (diff)
Added environment and sanitizer flag support to shell command (#519)
Diffstat (limited to 'infra/helper.py')
-rwxr-xr-xinfra/helper.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/infra/helper.py b/infra/helper.py
index 6e1d6146..7f60883f 100755
--- a/infra/helper.py
+++ b/infra/helper.py
@@ -53,7 +53,7 @@ def main():
'build_fuzzers', help='Build fuzzers for a project.')
_add_engine_args(build_fuzzers_parser)
_add_sanitizer_args(build_fuzzers_parser)
- build_fuzzers_parser.add_argument('-e', action='append', help="set environment variable e.g. VAR=value")
+ _add_environment_args(build_fuzzers_parser)
build_fuzzers_parser.add_argument('project_name')
build_fuzzers_parser.add_argument('source_path', help='path of local source',
nargs='?')
@@ -86,6 +86,9 @@ def main():
shell_parser = subparsers.add_parser(
'shell', help='Run /bin/bash in an image.')
shell_parser.add_argument('project_name', help='name of the project')
+ _add_engine_args(shell_parser)
+ _add_sanitizer_args(shell_parser)
+ _add_environment_args(shell_parser)
args = parser.parse_args()
if args.command == 'generate':
@@ -161,6 +164,12 @@ def _add_sanitizer_args(parser):
choices=['address', 'memory', 'undefined'])
+def _add_environment_args(parser):
+ """Add common environment args."""
+ parser.add_argument('-e', action='append',
+ help="set environment variable e.g. VAR=value")
+
+
def _build_image(image_name, no_cache=False):
"""Build image."""
@@ -393,7 +402,15 @@ def shell(args):
if not _build_image(args.project_name):
return 1
- run_args = [
+ env = [
+ 'FUZZING_ENGINE=' + args.engine,
+ 'SANITIZER=' + args.sanitizer
+ ]
+
+ if args.e:
+ env += args.e
+
+ run_args = sum([['-e', v] for v in env], []) + [
'-v', '%s:/out' % os.path.join(BUILD_DIR, 'out', args.project_name),
'-v', '%s:/work' % os.path.join(BUILD_DIR, 'work', args.project_name),
'-t', 'gcr.io/oss-fuzz/%s' % args.project_name,