| Index: tools/ipc_fuzzer/remove_close_messages.py
|
| diff --git a/tools/ipc_fuzzer/remove_close_messages.py b/tools/ipc_fuzzer/remove_close_messages.py
|
| deleted file mode 100755
|
| index 669a123ab3680d5fb2262cf6d9cd138975d93057..0000000000000000000000000000000000000000
|
| --- a/tools/ipc_fuzzer/remove_close_messages.py
|
| +++ /dev/null
|
| @@ -1,75 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# Copyright 2014 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.
|
| -
|
| -"""Removes ViewHostMsg_Close and alike from testcases. These messages are an
|
| -annoyance for corpus distillation. They cause the browser to exit, so no
|
| -further messages are processed. On the other hand, ViewHostMsg_Close is useful
|
| -for fuzzing - many found bugs are related to a renderer disappearing. So the
|
| -fuzzer should be crafting random ViewHostMsg_Close messages.
|
| -"""
|
| -
|
| -import argparse
|
| -import os
|
| -import platform
|
| -import shutil
|
| -import subprocess
|
| -import sys
|
| -import tempfile
|
| -
|
| -def create_temp_file():
|
| - temp_file = tempfile.NamedTemporaryFile(delete=False)
|
| - temp_file.close()
|
| - return temp_file.name
|
| -
|
| -def main():
|
| - desc = 'Remove ViewHostMsg_Close and alike from the testcases.'
|
| - parser = argparse.ArgumentParser(description=desc)
|
| - parser.add_argument('--out-dir', dest='out_dir', default='out',
|
| - help='ouput directory under src/ directory')
|
| - parser.add_argument('--build-type', dest='build_type', default='Release',
|
| - help='Debug vs. Release build')
|
| - parser.add_argument('testcase_dir',
|
| - help='Directory containing testcases')
|
| - parsed = parser.parse_args()
|
| -
|
| - message_util_binary = 'ipc_message_util'
|
| -
|
| - script_path = os.path.realpath(__file__)
|
| - ipc_fuzzer_dir = os.path.dirname(script_path)
|
| - src_dir = os.path.abspath(os.path.join(ipc_fuzzer_dir, os.pardir, os.pardir))
|
| - out_dir = os.path.join(src_dir, parsed.out_dir);
|
| - build_dir = os.path.join(out_dir, parsed.build_type)
|
| -
|
| - message_util_path = os.path.join(build_dir, message_util_binary)
|
| - if not os.path.exists(message_util_path):
|
| - print 'ipc_message_util executable not found at ', message_util_path
|
| - return 1
|
| -
|
| - filter_command = [
|
| - message_util_path,
|
| - '--invert',
|
| - '--regexp=ViewHostMsg_Close|ViewHostMsg_ClosePage_ACK',
|
| - 'input',
|
| - 'output',
|
| - ]
|
| -
|
| - testcase_list = os.listdir(parsed.testcase_dir)
|
| - testcase_count = len(testcase_list)
|
| - index = 0
|
| - for testcase in testcase_list:
|
| - index += 1
|
| - print '[%d/%d] Processing %s' % (index, testcase_count, testcase)
|
| - testcase_path = os.path.join(parsed.testcase_dir, testcase)
|
| - filtered_path = create_temp_file()
|
| - filter_command[-2] = testcase_path
|
| - filter_command[-1] = filtered_path
|
| - subprocess.call(filter_command)
|
| - shutil.move(filtered_path, testcase_path)
|
| -
|
| - return 0
|
| -
|
| -
|
| -if __name__ == "__main__":
|
| - sys.exit(main())
|
|
|