summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-10-01 20:41:03 (GMT)
committerGitHub <noreply@github.com>2023-10-01 20:41:03 (GMT)
commit65c285062ce2769249610348636d3d73153e0144 (patch)
tree5ed39ac8bac483fee3119b281dd3ef0565730a38
parentadf0f15a06c6e8ddd1a6d59b28efcbb26289f080 (diff)
downloadcpython-65c285062ce2769249610348636d3d73153e0144.zip
cpython-65c285062ce2769249610348636d3d73153e0144.tar.gz
cpython-65c285062ce2769249610348636d3d73153e0144.tar.bz2
gh-110164: regrtest disables random if SOURCE_DATE_EPOCH (#110168)
If the SOURCE_DATE_EPOCH environment variable is defined, regrtest now disables randomization of tests.
-rw-r--r--Lib/test/libregrtest/main.py9
-rw-r--r--Lib/test/test_regrtest.py8
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2023-10-01-02-58-00.gh-issue-110164.z7TMCq.rst2
3 files changed, 17 insertions, 2 deletions
diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py
index 5f2baac..af5fb0f 100644
--- a/Lib/test/libregrtest/main.py
+++ b/Lib/test/libregrtest/main.py
@@ -106,8 +106,6 @@ class Regrtest:
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:
@@ -129,6 +127,13 @@ class Regrtest:
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
diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
index 0e052e2..3807134 100644
--- a/Lib/test/test_regrtest.py
+++ b/Lib/test/test_regrtest.py
@@ -148,6 +148,14 @@ class ParseArgsTestCase(unittest.TestCase):
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)
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-10-01-02-58-00.gh-issue-110164.z7TMCq.rst b/Misc/NEWS.d/next/Core and Builtins/2023-10-01-02-58-00.gh-issue-110164.z7TMCq.rst
new file mode 100644
index 0000000..086d70f
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2023-10-01-02-58-00.gh-issue-110164.z7TMCq.rst
@@ -0,0 +1,2 @@
+regrtest: If the ``SOURCE_DATE_EPOCH`` environment variable is defined,
+regrtest now disables tests randomization. Patch by Victor Stinner.