mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
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.
This commit is contained in:
parent
be9160b035
commit
bb89e686e3
1 changed files with 15 additions and 4 deletions
|
@ -1,6 +1,7 @@
|
|||
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()...")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue