Skip to content

Commit

Permalink
pythongh-110164: regrtest disables random if SOURCE_DATE_EPOCH (pytho…
Browse files Browse the repository at this point in the history
…n#110168)

If the SOURCE_DATE_EPOCH environment variable is defined, regrtest
now disables randomization of tests.
  • Loading branch information
vstinner authored Oct 1, 2023
1 parent adf0f15 commit 65c2850
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 2 deletions.
9 changes: 7 additions & 2 deletions Lib/test/libregrtest/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,6 @@ def __init__(self, ns: Namespace, _add_python_opts: bool = False):
self.fail_env_changed: bool = ns.fail_env_changed
self.fail_rerun: bool = ns.fail_rerun
self.forever: bool = ns.forever
self.randomize: bool = ns.randomize
self.random_seed: int | None = ns.random_seed
self.output_on_failure: bool = ns.verbose3
self.timeout: float | None = ns.timeout
if ns.huntrleaks:
Expand All @@ -129,6 +127,13 @@ def __init__(self, ns: Namespace, _add_python_opts: bool = False):
self.coverage_dir: StrPath | None = ns.coverdir
self.tmp_dir: StrPath | None = ns.tempdir

# Randomize
self.randomize: bool = ns.randomize
self.random_seed: int | None = ns.random_seed
if 'SOURCE_DATE_EPOCH' in os.environ:
self.randomize = False
self.random_seed = None

# tests
self.first_runtests: RunTests | None = None

Expand Down
8 changes: 8 additions & 0 deletions Lib/test/test_regrtest.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,14 @@ def test_randomize(self):
ns = self.parse_args([opt])
self.assertTrue(ns.randomize)

with os_helper.EnvironmentVarGuard() as env:
env['SOURCE_DATE_EPOCH'] = '1'

ns = self.parse_args(['--randomize'])
regrtest = main.Regrtest(ns)
self.assertFalse(regrtest.randomize)
self.assertIsNone(regrtest.random_seed)

def test_randseed(self):
ns = self.parse_args(['--randseed', '12345'])
self.assertEqual(ns.random_seed, 12345)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
regrtest: If the ``SOURCE_DATE_EPOCH`` environment variable is defined,
regrtest now disables tests randomization. Patch by Victor Stinner.

0 comments on commit 65c2850

Please sign in to comment.