| #!/usr/bin/python | |
| # Copyright (C) 2010 Apple Inc. All rights reserved. | |
| # Copyright (C) 2011 Google Inc. All rights reserved. | |
| # | |
| # Redistribution and use in source and binary forms, with or without | |
| # modification, are permitted provided that the following conditions | |
| # are met: | |
| # | |
| # 1. Redistributions of source code must retain the above copyright | |
| # notice, this list of conditions and the following disclaimer. | |
| # 2. Redistributions in binary form must reproduce the above copyright | |
| # notice, this list of conditions and the following disclaimer in the | |
| # documentation and/or other materials provided with the distribution. | |
| # | |
| # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY | |
| # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
| # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
| # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY | |
| # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
| # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |
| # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | |
| # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| import os, sys | |
| def main(): | |
| tasksToKillWin = [ | |
| "cl.exe", | |
| "devenv.com", | |
| "devenv.exe", | |
| "DumpRenderTree.exe", | |
| "DumpRenderTree_debug.exe", | |
| "httpd.exe", | |
| "imagediff.exe", | |
| "imagediff_debug.exe", | |
| "jsc.exe", | |
| "jsc_debug.exe", | |
| "LightTPD.exe", | |
| "link.exe", | |
| "midl.exe", | |
| "perl.exe", | |
| "Safari.exe", | |
| "svn.exe", | |
| "testapi.exe", | |
| "testapi_debug.exe", | |
| "VcBuildHelper.exe", | |
| "wdiff.exe", | |
| "WebKit2WebProcess.exe", | |
| "WebKit2WebProcess_debug.exe", | |
| "WebKitTestRunner.exe", | |
| "WebKitTestRunner_debug.exe", | |
| ] | |
| tasksToKillMac = [ | |
| "apache2", | |
| "cc1plus", | |
| "cc1objplus", | |
| "clang", | |
| "clang\+\+", | |
| "gcc-4.2", | |
| "httpd", | |
| "i686-apple-darwin10-gcc-4.2.1", | |
| "jsc", | |
| "make", | |
| "pboard", # FIXME: https://bugs.webkit.org/show_bug.cgi?id=81012 | |
| "per5.12", | |
| "perl", | |
| "Problem Reporter", | |
| "ruby", | |
| "Safari Web Content", | |
| "Safari", | |
| "svn", | |
| "DumpRenderTree", | |
| "TestWebKitAPI Web Content", | |
| "TestWebKitAPI", | |
| "WebKitPluginAgen", # FIXME: Why no 't'? | |
| "WebKitTestRunner Web Content", | |
| "WebKitTestRunner", | |
| "WebProcess", | |
| "xcodebuild", | |
| ] | |
| taskToKillUnix = [ | |
| "apache2", | |
| "cc1plus", | |
| "DumpRenderTree", | |
| "gold", | |
| "httpd", | |
| "ld", | |
| "make", | |
| "ruby", | |
| "svn", | |
| "webkit_unit_tests", | |
| "WebKitTestRunner", | |
| "Xvfb", | |
| ] | |
| if sys.platform == 'darwin': | |
| for task in tasksToKillMac: | |
| os.system("killall -9 -v -m " + task) | |
| # Kill all instances of python executing run-webkit-tests | |
| os.system("ps aux | grep -P '.+/Python .+(run_webkit_tests|run-webkit-tests)' | grep -v grep | awk '{print $2}' | xargs kill") | |
| elif sys.platform == 'cygwin' or sys.platform == 'win32': | |
| for task in tasksToKillWin: | |
| os.system("taskkill /t /f /im " + task) | |
| elif sys.platform.startswith('linux'): | |
| for task in taskToKillUnix: | |
| os.system("killall -9 -v " + task) | |
| os.system("ps aux | grep -P '.+/python .+(run_webkit_tests|run-webkit-tests)' | grep -v grep | awk '{print $2}' | xargs kill") | |
| else: | |
| sys.exit() | |
| # FIXME: Should we return an exit code based on how the kills went? | |
| if __name__ == '__main__': | |
| sys.exit(main()) |