mirror of https://github.com/python/cpython
Merged revisions 78661-78662 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r78661 | florent.xicluna | 2010-03-04 20:40:48 +0100 (jeu, 04 mar 2010) | 2 lines Cleanup. ........ r78662 | florent.xicluna | 2010-03-04 22:31:58 +0100 (jeu, 04 mar 2010) | 2 lines #2777: Enable test_send_signal, test_kill and test_terminate on all platforms. ........ And fix an oversight of changeset 78510.
This commit is contained in:
parent
9ed34bea3e
commit
f0cbd821b9
|
@ -39,6 +39,12 @@ class ProcessTestCase(unittest.TestCase):
|
||||||
# doesn't crash on some buildbots (Alphas in particular).
|
# doesn't crash on some buildbots (Alphas in particular).
|
||||||
support.reap_children()
|
support.reap_children()
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
for inst in subprocess._active:
|
||||||
|
inst.wait()
|
||||||
|
subprocess._cleanup()
|
||||||
|
self.assertFalse(subprocess._active, "subprocess._active not empty")
|
||||||
|
|
||||||
def assertStderrEqual(self, stderr, expected, msg=None):
|
def assertStderrEqual(self, stderr, expected, msg=None):
|
||||||
# In a debug build, stuff like "[6580 refs]" is printed to stderr at
|
# In a debug build, stuff like "[6580 refs]" is printed to stderr at
|
||||||
# shutdown time. That frustrates tests trying to check stderr produced
|
# shutdown time. That frustrates tests trying to check stderr produced
|
||||||
|
@ -548,13 +554,19 @@ class _SuppressCoreFiles(object):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipIf(sys.platform == "win32", "POSIX specific tests")
|
@unittest.skipIf(mswindows, "POSIX specific tests")
|
||||||
class POSIXProcessTestCase(unittest.TestCase):
|
class POSIXProcessTestCase(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
# Try to minimize the number of children we have so this test
|
# Try to minimize the number of children we have so this test
|
||||||
# doesn't crash on some buildbots (Alphas in particular).
|
# doesn't crash on some buildbots (Alphas in particular).
|
||||||
support.reap_children()
|
support.reap_children()
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
for inst in subprocess._active:
|
||||||
|
inst.wait()
|
||||||
|
subprocess._cleanup()
|
||||||
|
self.assertFalse(subprocess._active, "subprocess._active not empty")
|
||||||
|
|
||||||
def test_exceptions(self):
|
def test_exceptions(self):
|
||||||
# caught & re-raised exceptions
|
# caught & re-raised exceptions
|
||||||
with self.assertRaises(OSError) as c:
|
with self.assertRaises(OSError) as c:
|
||||||
|
@ -636,15 +648,15 @@ class POSIXProcessTestCase(unittest.TestCase):
|
||||||
os.remove(fname)
|
os.remove(fname)
|
||||||
self.assertEqual(rc, 47)
|
self.assertEqual(rc, 47)
|
||||||
|
|
||||||
@unittest.skip("See issue #2777")
|
|
||||||
def test_send_signal(self):
|
def test_send_signal(self):
|
||||||
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
||||||
|
|
||||||
|
# Let the process initialize correctly (Issue #3137)
|
||||||
|
time.sleep(.1)
|
||||||
self.assertIs(p.poll(), None)
|
self.assertIs(p.poll(), None)
|
||||||
p.send_signal(signal.SIGINT)
|
p.send_signal(signal.SIGINT)
|
||||||
self.assertIsNot(p.wait(), None)
|
self.assertNotEqual(p.wait(), 0)
|
||||||
|
|
||||||
@unittest.skip("See issue #2777")
|
|
||||||
def test_kill(self):
|
def test_kill(self):
|
||||||
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
||||||
|
|
||||||
|
@ -652,7 +664,6 @@ class POSIXProcessTestCase(unittest.TestCase):
|
||||||
p.kill()
|
p.kill()
|
||||||
self.assertEqual(p.wait(), -signal.SIGKILL)
|
self.assertEqual(p.wait(), -signal.SIGKILL)
|
||||||
|
|
||||||
@unittest.skip("See issue #2777")
|
|
||||||
def test_terminate(self):
|
def test_terminate(self):
|
||||||
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
||||||
|
|
||||||
|
@ -661,13 +672,19 @@ class POSIXProcessTestCase(unittest.TestCase):
|
||||||
self.assertEqual(p.wait(), -signal.SIGTERM)
|
self.assertEqual(p.wait(), -signal.SIGTERM)
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipUnless(sys.platform == "win32", "Windows specific tests")
|
@unittest.skipUnless(mswindows, "Windows specific tests")
|
||||||
class Win32ProcessTestCase(unittest.TestCase):
|
class Win32ProcessTestCase(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
# Try to minimize the number of children we have so this test
|
# Try to minimize the number of children we have so this test
|
||||||
# doesn't crash on some buildbots (Alphas in particular).
|
# doesn't crash on some buildbots (Alphas in particular).
|
||||||
support.reap_children()
|
support.reap_children()
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
for inst in subprocess._active:
|
||||||
|
inst.wait()
|
||||||
|
subprocess._cleanup()
|
||||||
|
self.assertFalse(subprocess._active, "subprocess._active not empty")
|
||||||
|
|
||||||
def test_startupinfo(self):
|
def test_startupinfo(self):
|
||||||
# startupinfo argument
|
# startupinfo argument
|
||||||
# We uses hardcoded constants, because we do not want to
|
# We uses hardcoded constants, because we do not want to
|
||||||
|
@ -734,7 +751,6 @@ class Win32ProcessTestCase(unittest.TestCase):
|
||||||
' -c "import sys; sys.exit(47)"')
|
' -c "import sys; sys.exit(47)"')
|
||||||
self.assertEqual(rc, 47)
|
self.assertEqual(rc, 47)
|
||||||
|
|
||||||
@unittest.skip("See issue #2777")
|
|
||||||
def test_send_signal(self):
|
def test_send_signal(self):
|
||||||
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
||||||
|
|
||||||
|
@ -742,7 +758,6 @@ class Win32ProcessTestCase(unittest.TestCase):
|
||||||
p.send_signal(signal.SIGTERM)
|
p.send_signal(signal.SIGTERM)
|
||||||
self.assertNotEqual(p.wait(), 0)
|
self.assertNotEqual(p.wait(), 0)
|
||||||
|
|
||||||
@unittest.skip("See issue #2777")
|
|
||||||
def test_kill(self):
|
def test_kill(self):
|
||||||
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
||||||
|
|
||||||
|
@ -750,7 +765,6 @@ class Win32ProcessTestCase(unittest.TestCase):
|
||||||
p.kill()
|
p.kill()
|
||||||
self.assertNotEqual(p.wait(), 0)
|
self.assertNotEqual(p.wait(), 0)
|
||||||
|
|
||||||
@unittest.skip("See issue #2777")
|
|
||||||
def test_terminate(self):
|
def test_terminate(self):
|
||||||
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
p = subprocess.Popen([sys.executable, "-c", "input()"])
|
||||||
|
|
||||||
|
@ -764,7 +778,7 @@ class Win32ProcessTestCase(unittest.TestCase):
|
||||||
#
|
#
|
||||||
# Actually, getoutput should work on any platform with an os.popen, but
|
# Actually, getoutput should work on any platform with an os.popen, but
|
||||||
# I'll take the comment as given, and skip this suite.
|
# I'll take the comment as given, and skip this suite.
|
||||||
@unittest.skipUnless(os.name != 'posix', "only relevant for UNIX")
|
@unittest.skipUnless(os.name == 'posix', "only relevant for UNIX")
|
||||||
class CommandTests(unittest.TestCase):
|
class CommandTests(unittest.TestCase):
|
||||||
def test_getoutput(self):
|
def test_getoutput(self):
|
||||||
self.assertEqual(subprocess.getoutput('echo xyzzy'), 'xyzzy')
|
self.assertEqual(subprocess.getoutput('echo xyzzy'), 'xyzzy')
|
||||||
|
|
Loading…
Reference in New Issue