From c70a2dfeb6492610619c2fcbf1aee7d45864be9d Mon Sep 17 00:00:00 2001 From: Per Cederqvist <ceder@lysator.liu.se> Date: Wed, 19 Jan 2005 14:27:15 +0000 Subject: [PATCH] Initial commit. --- test/.cvsignore | 2 + test/__init__.py | 0 test/test_popen.py | 104 +++++++++++++++++++++++++++++++++++++++++++++ test/test_spawn.py | 46 ++++++++++++++++++++ 4 files changed, 152 insertions(+) create mode 100644 test/.cvsignore create mode 100644 test/__init__.py create mode 100644 test/test_popen.py create mode 100755 test/test_spawn.py diff --git a/test/.cvsignore b/test/.cvsignore new file mode 100644 index 0000000..52e4e61 --- /dev/null +++ b/test/.cvsignore @@ -0,0 +1,2 @@ +*.pyc +*.pyo diff --git a/test/__init__.py b/test/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test/test_popen.py b/test/test_popen.py new file mode 100644 index 0000000..28bb8e8 --- /dev/null +++ b/test/test_popen.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python +import unittest + +import time +import signal + +from pcl_expect import Controller +from pcl_expect.popen import Popen + +class Timeout(Exception): pass + +def handler(signo, stk): + raise Timeout() + +class TestPopen(unittest.TestCase): + def setUp(self): + signal.signal(signal.SIGALRM, handler) + signal.alarm(20) + + def tearDown(self): + signal.alarm(0) + + def test_popen_sleep_1(self): + t0 = time.time() + sleeper = Popen('sleep 1') + x = Controller() + while x.loop(): + if sleeper.re(x, '.'): + self.fail('got output from sleep') + elif x.timeout(): + self.fail('timeout waiting for sleep to terminate') + elif sleeper.eof(x): + break + status = sleeper.close() + self.assertEqual(status, None) + t1 = time.time() + self.assertAlmostEqual(t0 + 1.0, t1, 1, + 'sleep 1 slept too long or too short') + def test_popen_sleep_1_compat(self): + t0 = time.time() + sleeper = Popen('sleep 1') + x = Controller() + while x.loop(): + if x.re(sleeper, '.'): + self.fail('got output from sleep') + elif x.timeout(): + self.fail('timeout waiting for sleep to terminate') + elif x.eof(sleeper): + break + status = sleeper.close() + self.assertEqual(status, None) + t1 = time.time() + self.assertAlmostEqual(t0 + 1.0, t1, 1, + 'sleep 1 slept too long or too short') + + def test_read_hello(self): + hello = Popen('echo hello, world') + x = Controller() + while x.loop(): + if hello.re(x, 'hello, world\n'): + break + x = Controller() + while x.loop(): + if hello.eof(x): + break + status = hello.close() + self.assertEqual(status, None) + + def test_read_hello_partial(self): + hello = Popen('echo hello, world') + x = Controller() + while x.loop(): + if hello.re(x, 'hello'): + break + x = Controller() + while x.loop(): + if hello.re(x, ', world'): + break + x = Controller() + while x.loop(): + if hello.re(x, '\n'): + break + x = Controller() + while x.loop(): + if hello.eof(x): + break + status = hello.close() + self.assertEqual(status, None) + + def test_read_hello_compat(self): + hello = Popen('echo hello, world') + x = Controller() + while x.loop(): + if x.re(hello, 'hello, world\n'): + break + x = Controller() + while x.loop(): + if x.eof(hello): + break + status = hello.close() + self.assertEqual(status, None) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_spawn.py b/test/test_spawn.py new file mode 100755 index 0000000..c1ba4e9 --- /dev/null +++ b/test/test_spawn.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python +import unittest + +import time + +import pcl_expect +import pcl_expect.spawn + +class TestSpawn(unittest.TestCase): + def test_spawn_sleep_1(self): + t0 = time.time() + sleeper = pcl_expect.spawn.Spawn(['sleep', '1']) + x = pcl_expect.Controller() + while x.loop(): + if sleeper.re(x, '.'): + self.fail('got output from sleep') + elif x.timeout(): + self.fail('timeout waiting for sleep to terminate') + elif sleeper.eof(x): + break + pid, status = sleeper.close() + self.assertEqual(status, 0) + t1 = time.time() + self.assertAlmostEqual(t0 + 1.0, t1, 1, + 'sleep 1 slept too long or too short') + + def test_spawn_sleep_1_compat(self): + t0 = time.time() + sleeper = pcl_expect.spawn.Spawn(['sleep', '1']) + x = pcl_expect.Controller() + while x.loop(): + if x.re(sleeper, '.'): + self.fail('got output from sleep') + elif x.timeout(): + self.fail('timeout waiting for sleep to terminate') + elif x.eof(sleeper): + break + pid, status = sleeper.close() + self.assertEqual(status, 0) + t1 = time.time() + self.assertAlmostEqual(t0 + 1.0, t1, 1, + 'sleep 1 slept too long or too short') + + +if __name__ == '__main__': + unittest.main() -- GitLab