Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit72fb39c

Browse files
authored
gh-109276: regrtest re-runs "env changed" tests (#109831)
When a test fails with "env changed" and --rerun option is used, thetest is now re-run in verbose mode in a fresh process.
1 parent64ab9f7 commit72fb39c

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

‎Lib/test/libregrtest/results.py‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def __init__(self):
2525
self.env_changed:TestList= []
2626
self.run_no_tests:TestList= []
2727
self.rerun:TestList= []
28-
self.bad_results:list[TestResult]= []
28+
self.rerun_results:list[TestResult]= []
2929

3030
self.interrupted:bool=False
3131
self.test_times:list[tuple[float,TestName]]= []
@@ -87,6 +87,7 @@ def accumulate_result(self, result: TestResult, runtests: RunTests):
8787
self.good.append(test_name)
8888
caseState.ENV_CHANGED:
8989
self.env_changed.append(test_name)
90+
self.rerun_results.append(result)
9091
caseState.SKIPPED:
9192
self.skipped.append(test_name)
9293
caseState.RESOURCE_DENIED:
@@ -98,7 +99,7 @@ def accumulate_result(self, result: TestResult, runtests: RunTests):
9899
case _:
99100
ifresult.is_failed(fail_env_changed):
100101
self.bad.append(test_name)
101-
self.bad_results.append(result)
102+
self.rerun_results.append(result)
102103
else:
103104
raiseValueError(f"invalid test state:{result.state!r}")
104105

@@ -114,12 +115,12 @@ def accumulate_result(self, result: TestResult, runtests: RunTests):
114115
self.add_junit(xml_data)
115116

116117
defneed_rerun(self):
117-
returnbool(self.bad_results)
118+
returnbool(self.rerun_results)
118119

119120
defprepare_rerun(self)->tuple[TestTuple,FilterDict]:
120121
tests:TestList= []
121122
match_tests_dict= {}
122-
forresultinself.bad_results:
123+
forresultinself.rerun_results:
123124
tests.append(result.test_name)
124125

125126
match_tests=result.get_rerun_match_tests()
@@ -130,7 +131,8 @@ def prepare_rerun(self) -> tuple[TestTuple, FilterDict]:
130131
# Clear previously failed tests
131132
self.rerun_bad.extend(self.bad)
132133
self.bad.clear()
133-
self.bad_results.clear()
134+
self.env_changed.clear()
135+
self.rerun_results.clear()
134136

135137
return (tuple(tests),match_tests_dict)
136138

‎Lib/test/test_regrtest.py‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@ def check_executed_tests(self, output, tests, *, stats,
463463
randomize=True
464464

465465
rerun_failed= []
466-
ifrerunisnotNone:
466+
ifrerunisnotNoneandnotenv_changed:
467467
failed= [rerun.name]
468468
ifnotrerun.success:
469469
rerun_failed.append(rerun.name)
@@ -591,7 +591,7 @@ def list_regex(line_format, tests):
591591
state=', '.join(state)
592592
ifrerunisnotNone:
593593
new_state='SUCCESS'ifrerun.successelse'FAILURE'
594-
state='FAILURE then'+new_state
594+
state=f'{state} then{new_state}'
595595
self.check_line(output,f'Result:{state}',full=True)
596596

597597
defparse_random_seed(self,output):
@@ -1229,6 +1229,15 @@ def test_env_changed(self):
12291229
self.check_executed_tests(output, [testname],env_changed=testname,
12301230
fail_env_changed=True,stats=1)
12311231

1232+
# rerun
1233+
output=self.run_tests("--rerun",testname)
1234+
self.check_executed_tests(output, [testname],
1235+
env_changed=testname,
1236+
rerun=Rerun(testname,
1237+
match=None,
1238+
success=True),
1239+
stats=2)
1240+
12321241
deftest_rerun_fail(self):
12331242
# FAILURE then FAILURE
12341243
code=textwrap.dedent("""
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
regrtest: When a test fails with "env changed" and the --rerun option is
2+
used, the test is now re-run in verbose mode in a fresh process. Patch by
3+
Victor Stinner.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp