Kaydet (Commit) bb89e686 authored tarafından Neal Norwitz's avatar Neal Norwitz

Try to get this test to be more stable:

 * disable gc during the test run because we are spawning objects and there
   was an exception when calling Popen.__del__
 * Always set an alarm handler so the process doesn't exit if the test fails
   (should probably add assertions on the value of hndl_called in more places)
 * Using a negative time causes Linux to treat it as zero, so disable that test.
üst be9160b0
import unittest
from test import test_support
from contextlib import closing, nested
import gc
import pickle
import select
import signal
......@@ -30,6 +31,14 @@ def exit_subprocess():
class InterProcessSignalTests(unittest.TestCase):
MAX_DURATION = 20 # Entire test should last at most 20 sec.
def setUp(self):
self.using_gc = gc.isenabled()
gc.disable()
def tearDown(self):
if self.using_gc:
gc.enable()
def handlerA(self, *args):
self.a_called = True
if test_support.verbose:
......@@ -263,8 +272,10 @@ class ItimerTest(unittest.TestCase):
self.hndl_called = False
self.hndl_count = 0
self.itimer = None
self.old_alarm = signal.signal(signal.SIGALRM, self.sig_alrm)
def tearDown(self):
signal.signal(signal.SIGALRM, self.old_alarm)
if self.itimer is not None: # test_itimer_exc doesn't change this attr
# just ensure that itimer is stopped
signal.setitimer(self.itimer, 0)
......@@ -303,13 +314,13 @@ class ItimerTest(unittest.TestCase):
# XXX I'm assuming -1 is an invalid itimer, but maybe some platform
# defines it ?
self.assertRaises(signal.ItimerError, signal.setitimer, -1, 0)
# negative time
self.assertRaises(signal.ItimerError, signal.setitimer,
signal.ITIMER_REAL, -1)
# Negative times are treated as zero on some platforms.
if 0:
self.assertRaises(signal.ItimerError,
signal.setitimer, signal.ITIMER_REAL, -1)
def test_itimer_real(self):
self.itimer = signal.ITIMER_REAL
signal.signal(signal.SIGALRM, self.sig_alrm)
signal.setitimer(self.itimer, 1.0)
if test_support.verbose:
print("\ncall pause()...")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment