Kill old run-webkit-tests processes in kill-process on Mac
[WebKit-https.git] / Tools / BuildSlaveSupport / kill-old-processes
1 #!/usr/bin/python\r
2 # Copyright (C) 2010 Apple Inc.  All rights reserved.\r
3 # Copyright (C) 2011 Google Inc.  All rights reserved.\r
4 #\r
5 # Redistribution and use in source and binary forms, with or without\r
6 # modification, are permitted provided that the following conditions\r
7 # are met:\r
8 #\r
9 # 1.  Redistributions of source code must retain the above copyright\r
10 #     notice, this list of conditions and the following disclaimer.\r
11 # 2.  Redistributions in binary form must reproduce the above copyright\r
12 #     notice, this list of conditions and the following disclaimer in the\r
13 #     documentation and/or other materials provided with the distribution.\r
14 #\r
15 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY\r
16 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
17 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
18 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\r
19 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
20 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
21 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r
22 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
23 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
24 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
25 \r
26 import os, sys\r
27 \r
28 \r
29 def main():\r
30     tasksToKillWin = [\r
31         "cl.exe",\r
32         "devenv.com",\r
33         "devenv.exe",\r
34         "DumpRenderTree.exe",\r
35         "DumpRenderTree_debug.exe",\r
36         "httpd.exe",\r
37         "imagediff.exe",\r
38         "imagediff_debug.exe",\r
39         "jsc.exe",\r
40         "jsc_debug.exe",\r
41         "LightTPD.exe",\r
42         "link.exe",\r
43         "midl.exe",\r
44         "perl.exe",\r
45         "Safari.exe",\r
46         "svn.exe",\r
47         "testapi.exe",\r
48         "testapi_debug.exe",\r
49         "VcBuildHelper.exe",\r
50         "wdiff.exe",\r
51         "WebKit2WebProcess.exe",\r
52         "WebKit2WebProcess_debug.exe",\r
53         "WebKitTestRunner.exe",\r
54         "WebKitTestRunner_debug.exe",\r
55     ]\r
56 \r
57     tasksToKillMac = [\r
58         "jsc",\r
59         "make",\r
60         "per5.12",\r
61         "perl",\r
62         "Problem Reporter",\r
63         "ruby",\r
64         "Safari Web Content",\r
65         "Safari",\r
66         "svn",\r
67         "DumpRenderTree",\r
68         "TestWebKitAPI Web Content",\r
69         "TestWebKitAPI",\r
70         "WebKitPluginAgen", # FIXME: Why no 't'?\r
71         "WebKitTestRunner Web Content",\r
72         "WebKitTestRunner",\r
73         "WebProcess",\r
74     ]\r
75 \r
76     if sys.platform == 'darwin':\r
77         for task in tasksToKillMac:\r
78             os.system("killall -9 -v -m " + task)\r
79         # Kill all instances of python executing run-webkit-tests\r
80         os.system("ps aux | grep -P '.+/Python .+(run_webkit_tests|run-webkit-tests)' | grep -v grep | awk '{print $2}' | xargs kill")\r
81     elif sys.platform == 'cygwin' or sys.platform == 'win32':\r
82         for task in tasksToKillWin:\r
83             os.system("taskkill /t /f /im " + task)\r
84     else:\r
85         raise Exception("Have not implemented kill-old-processes for this platform")\r
86     # FIXME: Should we return an exit code based on how the kills went?\r
87 \r
88 \r
89 if __name__ == '__main__':\r
90     sys.exit(main())\r