| #!/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", |
| r"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 -E '.+/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()) |