[Python-checkins] python/dist/src/Lib/test test_re.py, 1.45.6.1,
1.45.6.2
tim_one at users.sourceforge.net
tim_one at users.sourceforge.net
Fri Nov 21 22:25:42 EST 2003
Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv11483/Lib/test
Modified Files:
Tag: release23-maint
test_re.py
Log Message:
Reverted from rev 1.45.6.1 to rev 1.45: deep recursion is still part of
sre in 2.3, and the backport of the 2.4 version of the tests should not
have been done. It got confused because someone else checked a bad
change into _sre.c that caused the tests that are *supposed* to raise
a recursion exception to stop doing so on some (most?) platforms.
test_re passes again on Windows now. Until the bad change to _sre gets
fixed, it will fail on platforms other than Windows and FreeBSD, either
by "Test Failed", or by bad consequences of C stack overflow.
Index: test_re.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_re.py,v
retrieving revision 1.45.6.1
retrieving revision 1.45.6.2
diff -C2 -d -r1.45.6.1 -r1.45.6.2
*** test_re.py 4 Nov 2003 14:11:01 -0000 1.45.6.1
--- test_re.py 22 Nov 2003 03:25:40 -0000 1.45.6.2
***************
*** 170,174 ****
def test_re_groupref_exists(self):
! return # not yet
self.assertEqual(re.match('^(\()?([^()]+)(?(1)\))$', '(a)').groups(),
('(', 'a'))
--- 170,174 ----
def test_re_groupref_exists(self):
! return # not yet
self.assertEqual(re.match('^(\()?([^()]+)(?(1)\))$', '(a)').groups(),
('(', 'a'))
***************
*** 406,413 ****
20003)
self.assertEqual(re.match('.*?cd', 20000*'abc'+'de').end(0), 60001)
! # non-simple '*?' still used to hit the recursion limit, before the
! # non-recursive scheme was implemented.
! self.assertEqual(re.search('(a|b)*?c', 10000*'ab'+'cd').end(0), 20001)
!
def test_bug_612074(self):
--- 406,411 ----
20003)
self.assertEqual(re.match('.*?cd', 20000*'abc'+'de').end(0), 60001)
! # non-simple '*?' still recurses and hits the recursion limit
! self.assertRaises(RuntimeError, re.search, '(a|b)*?c', 10000*'ab'+'cd')
def test_bug_612074(self):
***************
*** 416,424 ****
def test_stack_overflow(self):
! # nasty cases that used to overflow the straightforward recursive
# implementation of repeated groups.
! self.assertEqual(re.match('(x)*', 50000*'x').group(1), 'x')
! self.assertEqual(re.match('(x)*y', 50000*'x'+'y').group(1), 'x')
! self.assertEqual(re.match('(x)*?y', 50000*'x'+'y').group(1), 'x')
def test_scanner(self):
--- 414,422 ----
def test_stack_overflow(self):
! # nasty case that overflows the straightforward recursive
# implementation of repeated groups.
! self.assertRaises(RuntimeError, re.match, '(x)*', 50000*'x')
! self.assertRaises(RuntimeError, re.match, '(x)*y', 50000*'x'+'y')
! self.assertRaises(RuntimeError, re.match, '(x)*?y', 50000*'x'+'y')
def test_scanner(self):
More information about the Python-checkins
mailing list