We use kill to cleanup processes from pidfiles.
Windows has a 'taskkill' which does something similar.
We can check if the process with a PID exists with
'tasklist'. Both tasklist and taskkill return 0 for
both success and failure. So, we will have to grep
to see if there is a o/p.

A typical o/p of tasklist is:
$ tasklist | grep ovs
ovsdb-server.exe              3228 RDP-Tcp#0                  2      6,132 K
ovs-vswitchd.exe              2080 RDP-Tcp#0                  2      5,808 K

$ tasklist //fi "PID eq 3228"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
ovsdb-server.exe              3228 RDP-Tcp#0                  2      6,132 K

Signed-off-by: Gurucharan Shetty <gshe...@nicira.com>
---
 tests/testsuite.at |   29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/tests/testsuite.at b/tests/testsuite.at
index 9cd90a3..95e53d2 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -46,6 +46,35 @@ if test "$IS_WIN32" = "yes"; then
 pwd () {
     command pwd -W "$@"
 }
+
+kill () {
+    case "$1" in
+        -0)
+            shift
+            for i in $*; do
+                # tasklist will always have return code 0.
+                # If pid does exist, there will be a line with the pid.
+                if tasklist //fi "PID eq $i" | grep $i; then
+                    :
+                else
+                    return 1
+                fi
+            done
+            return 0
+            ;;
+        -[1-9]*)
+            shift
+            for i in $*; do
+                taskkill //F //PID $i
+            done
+            ;;
+        [1-9][1-9]*)
+            for i in $*; do
+                taskkill //F //PID $i
+            done
+            ;;
+    esac
+}
 fi
 ]
 m4_divert_pop([PREPARE_TESTS])
-- 
1.7.9.5

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to