#2777: Enable test_send_signal, test_kill and test_terminate on all platforms.

This commit is contained in:
Florent Xicluna 2010-03-04 21:31:58 +00:00
parent bab22a7c6d
commit ab5e17f896
1 changed files with 20 additions and 6 deletions

View File

@ -39,6 +39,12 @@ class ProcessTestCase(unittest.TestCase):
# doesn't crash on some buildbots (Alphas in particular).
test_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):
# In a debug build, stuff like "[6580 refs]" is printed to stderr at
# shutdown time. That frustrates tests trying to check stderr produced
@ -559,6 +565,12 @@ class POSIXProcessTestCase(unittest.TestCase):
# doesn't crash on some buildbots (Alphas in particular).
test_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):
# caught & re-raised exceptions
with self.assertRaises(OSError) as c:
@ -638,15 +650,15 @@ class POSIXProcessTestCase(unittest.TestCase):
os.remove(fname)
self.assertEqual(rc, 47)
@unittest.skip("See issue #2777")
def test_send_signal(self):
p = subprocess.Popen([sys.executable, "-c", "input()"])
# Let the process initialize correctly (Issue #3137)
time.sleep(.1)
self.assertIs(p.poll(), None)
p.send_signal(signal.SIGINT)
self.assertNotEqual(p.wait(), 0)
@unittest.skip("See issue #2777")
def test_kill(self):
p = subprocess.Popen([sys.executable, "-c", "input()"])
@ -654,7 +666,6 @@ class POSIXProcessTestCase(unittest.TestCase):
p.kill()
self.assertEqual(p.wait(), -signal.SIGKILL)
@unittest.skip("See issue #2777")
def test_terminate(self):
p = subprocess.Popen([sys.executable, "-c", "input()"])
@ -670,6 +681,12 @@ class Win32ProcessTestCase(unittest.TestCase):
# doesn't crash on some buildbots (Alphas in particular).
test_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):
# startupinfo argument
# We uses hardcoded constants, because we do not want to
@ -736,7 +753,6 @@ class Win32ProcessTestCase(unittest.TestCase):
' -c "import sys; sys.exit(47)"')
self.assertEqual(rc, 47)
@unittest.skip("See issue #2777")
def test_send_signal(self):
p = subprocess.Popen([sys.executable, "-c", "input()"])
@ -744,7 +760,6 @@ class Win32ProcessTestCase(unittest.TestCase):
p.send_signal(signal.SIGTERM)
self.assertNotEqual(p.wait(), 0)
@unittest.skip("See issue #2777")
def test_kill(self):
p = subprocess.Popen([sys.executable, "-c", "input()"])
@ -752,7 +767,6 @@ class Win32ProcessTestCase(unittest.TestCase):
p.kill()
self.assertNotEqual(p.wait(), 0)
@unittest.skip("See issue #2777")
def test_terminate(self):
p = subprocess.Popen([sys.executable, "-c", "input()"])