#!/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", ] 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())