mirror of https://github.com/python/cpython
gh-110160: Fix flaky `test_find_periodic_pattern` in `string_tests` (#110170)
This commit is contained in:
parent
038c3564fb
commit
06faa9a39b
|
@ -327,11 +327,12 @@ class BaseTest:
|
|||
for i in range(len(s)):
|
||||
if s.startswith(p, i):
|
||||
return i
|
||||
if p == '' and s == '':
|
||||
return 0
|
||||
return -1
|
||||
|
||||
rr = random.randrange
|
||||
choices = random.choices
|
||||
for _ in range(1000):
|
||||
def check_pattern(rr):
|
||||
choices = random.choices
|
||||
p0 = ''.join(choices('abcde', k=rr(10))) * rr(10, 20)
|
||||
p = p0[:len(p0) - rr(10)] # pop off some characters
|
||||
left = ''.join(choices('abcdef', k=rr(2000)))
|
||||
|
@ -341,6 +342,13 @@ class BaseTest:
|
|||
self.checkequal(reference_find(p, text),
|
||||
text, 'find', p)
|
||||
|
||||
rr = random.randrange
|
||||
for _ in range(1000):
|
||||
check_pattern(rr)
|
||||
|
||||
# Test that empty string always work:
|
||||
check_pattern(lambda *args: 0)
|
||||
|
||||
def test_find_many_lengths(self):
|
||||
haystack_repeats = [a * 10**e for e in range(6) for a in (1,2,5)]
|
||||
haystacks = [(n, self.fixtype("abcab"*n + "da")) for n in haystack_repeats]
|
||||
|
|
Loading…
Reference in New Issue