diff options
-rw-r--r-- | sources/pyside6/tests/util/processtimer.py | 55 | ||||
-rw-r--r-- | sources/pyside6/tests/util/test_processtimer.py | 74 |
2 files changed, 0 insertions, 129 deletions
diff --git a/sources/pyside6/tests/util/processtimer.py b/sources/pyside6/tests/util/processtimer.py deleted file mode 100644 index 905405585..000000000 --- a/sources/pyside6/tests/util/processtimer.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env python -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 -from __future__ import annotations - -import os -import time - - -class TimeoutException(Exception): - def __init__(self, msg): - self.msg = msg - - def __str__(self): - return repr(self.msg) - - -class ProcessTimer: - '''Timeout function for controlling a subprocess.Popen instance. - - Naive implementation using busy loop, see later other means - of doing this. - ''' - - def __init__(self, proc, timeout): - self.proc = proc - self.timeout = timeout - - def waitfor(self): - time_passed = 0 - while (self.proc.poll() is None and time_passed < self.timeout): - time_passed = time_passed + 1 - time.sleep(1) - - if time_passed >= self.timeout: - raise TimeoutException("Timeout expired, possible deadlock") - - -if __name__ == "__main__": - # simple example - - from subprocess import Popen - - proc = Popen(['sleep', '10']) - t = ProcessTimer(proc, 5) - try: - t.waitfor() - except TimeoutException: - print(f"timeout - PID: {t.proc.pid}") - #TODO: detect SO and kill accordingly - #Linux - os.kill(t.proc.pid, 9) - #Windows (not tested) - #subprocess.Popen("taskkill /F /T /PID %i"%handle.pid , shell=True) - print(f"exit code: {t.proc.poll()}") diff --git a/sources/pyside6/tests/util/test_processtimer.py b/sources/pyside6/tests/util/test_processtimer.py deleted file mode 100644 index 417db8bec..000000000 --- a/sources/pyside6/tests/util/test_processtimer.py +++ /dev/null @@ -1,74 +0,0 @@ -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 -from __future__ import annotations - -'Tests for processtimer.py' - -import unittest -import os - -from subprocess import Popen, PIPE -from processtimer import TimeoutException, ProcessTimer - - -class TimeoutTest(unittest.TestCase): - - def tearDown(self): - try: - os.kill(self.proc.pid, 9) - except OSError: - pass - - def testRaise(self): - self.proc = Popen(['python2.5', '-c', 'while True: pass'], stdout=PIPE, stderr=PIPE) - timer = ProcessTimer(self.proc, 1) - self.assertRaises(TimeoutException, timer.waitfor) - - -class SimpleTest(unittest.TestCase): - - def tearDown(self): - try: - os.kill(self.proc.pid, 9) - except OSError: - pass - - def testSimple(self): - self.proc = Popen(['python2.5', '-c', '"print"'], stdout=PIPE, stderr=PIPE) - timer = ProcessTimer(self.proc, 10) - timer.waitfor() - - -class TestEchoOutput(unittest.TestCase): - - def tearDown(self): - try: - os.kill(self.proc.pid, 9) - except OSError: - pass - - def testOutput(self): - self.proc = Popen(['python2.5', '-c', 'print 1',], stdout=PIPE, stderr=PIPE) - timer = ProcessTimer(self.proc, 1) - timer.waitfor() - self.assertEqual(self.proc.stdout.read().strip(), '1') - - -class TestRetCode(unittest.TestCase): - - def tearDown(self): - try: - os.kill(self.proc.pid, 9) - except OSError: - pass - - def testSimple(self): - self.proc = Popen(['python2.5', '-c', 'print 1'], stdout=PIPE, stderr=PIPE) - timer = ProcessTimer(self.proc, 10) - timer.waitfor() - - self.assertEqual(self.proc.poll(), 0) - - -if __name__ == '__main__': - unittest.main() |