| #!/usr/bin/python |
| # |
| # Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Generate .sh runner for libfuzzer test. |
| |
| Invoked by GN from fuzzer_test.gni. |
| """ |
| |
| import argparse |
| import os |
| import sys |
| |
| |
| parser = argparse.ArgumentParser(description="Generate fuzzer launcher.") |
| parser.add_argument('--fuzzer', required=True) |
| parser.add_argument('--launcher', required=True) |
| parser.add_argument('--dict', required=True) |
| args = parser.parse_args() |
| |
| out = open(args.launcher, 'w') |
| out.write("""#!/bin/bash |
| set -ue |
| DIR=$(dirname $0) |
| $DIR/%(fuzzer)s -dict=$DIR/%(dict)s $* |
| """ % { "fuzzer": args.fuzzer, "dict": args.dict }) |
| out.close() |
| |
| os.chmod(args.launcher, os.stat(args.launcher).st_mode | 0o111) # chmod a+x |