diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2017-04-05 21:13:20 -0400 |
---|---|---|
committer | Oliver Chang <oliverchang@users.noreply.github.com> | 2017-04-05 18:13:20 -0700 |
commit | 9db317d3b5415ef09c607ffd687984359e1e25ac (patch) | |
tree | d9c4e5b4b8e75f92393df4aef459660d687ad64a /infra/helper.py | |
parent | 8f4a2ad5a2ae7ec3235f3715879c1e3567a0517c (diff) |
Added environment and sanitizer flag support to shell command (#519)
Diffstat (limited to 'infra/helper.py')
-rwxr-xr-x | infra/helper.py | 21 |
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, |