#!/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 = [ | |
"jsc", | |
"make", | |
"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", | |
] | |
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) | |
else: | |
sys.exit() | |
# FIXME: Should we return an exit code based on how the kills went? | |
if __name__ == '__main__': | |
sys.exit(main()) |