@@ -22,6 +22,28 @@ import ovs.unixctl.client
import ovs.util
import ovs.vlog
+if sys.platform == 'win32':
+ import os
+ import time
+ import threading
+
+def _win_signal_alarm(timeout):
+
+ class Alarm (threading.Thread):
+ def __init__ (self, timeout):
+ super(Alarm, self).__init__ ()
+ self.timeout = timeout
+ self.setDaemon (True)
+
+ def run (self):
+ time.sleep (self.timeout)
+ os._exit (1)
+
+ def win_signal(timeout):
+ alarm = Alarm (timeout)
+ alarm.start ()
+
+ win_signal(timeout)
def connect_to_target(target):
error, str_result = ovs.unixctl.socket_name_from_target(target)
@@ -52,7 +74,10 @@ def main():
args = parser.parse_args()
if args.timeout:
- signal.alarm(int(args.timeout))
+ if sys.platform == "win32":
+ _win_signal_alarm(int(args.timeout))
+ else:
+ signal.alarm(int(args.timeout))
ovs.vlog.Vlog.init()
target = args.target
@@ -31,6 +31,27 @@ import ovs.poller
import ovs.util
import six
+def _win_signal_alarm(timeout):
+ import signal
+ import os
+ import time
+ import threading
+
+ class Alarm (threading.Thread):
+ def __init__ (self, timeout):
+ threading.Thread.__init__ (self)
+ self.timeout = timeout
+ self.setDaemon (True)
+
+ def run (self):
+ time.sleep (self.timeout)
+ os._exit (1)
+
+ def win_signal(timeout):
+ alarm = Alarm (timeout)
+ alarm.start ()
+
+ win_signal(timeout)
def unbox_json(json):
if type(json) == list and len(json) == 1:
@@ -612,7 +633,10 @@ def main(argv):
except TypeError:
raise error.Error("value %s on -t or --timeout is not at "
"least 1" % value)
- signal.alarm(timeout)
+ if sys.platform == "win32":
+ _win_signal_alarm(timeout)
+ else:
+ signal.alarm(timeout)
else:
sys.exit(0)
@@ -20,6 +20,27 @@ import sys
import ovs.socket_util
+def _win_signal_alarm(timeout):
+ import signal
+ import os
+ import time
+ import threading
+
+ class Alarm (threading.Thread):
+ def __init__ (self, timeout):
+ threading.Thread.__init__ (self)
+ self.timeout = timeout
+ self.setDaemon (True)
+
+ def run (self):
+ time.sleep (self.timeout)
+ os._exit (1)
+
+ def win_signal(timeout):
+ alarm = Alarm (timeout)
+ alarm.start ()
+
+ win_signal(timeout)
def main(argv):
if len(argv) not in (2, 3):
@@ -33,7 +54,10 @@ def main(argv):
sockname2 = sockname1
signal.signal(signal.SIGALRM, signal.SIG_DFL)
- signal.alarm(5)
+ if sys.platform == "win32":
+ _win_signal_alarm(5)
+ else:
+ signal.alarm(5)
# Create a listening socket under name 'sockname1'.
error, sock1 = ovs.socket_util.make_unix_socket(socket.SOCK_STREAM, False,
signal.alarm is not available in Windows and would trigger an exception when called. Implemented this to mentain compatibility between Windows and Linux for python tests. Signed-off-by: Paul-Daniel Boca <pboca@cloudbasesolutions.com> --- V2: No changes V3: Code styling changes V4: No changes V5: No changes V6: No changes --- tests/appctl.py | 27 ++++++++++++++++++++++++++- tests/test-ovsdb.py | 26 +++++++++++++++++++++++++- tests/test-unix-socket.py | 26 +++++++++++++++++++++++++- 3 files changed, 76 insertions(+), 3 deletions(-)