summaryrefslogtreecommitdiffstats
path: root/Lib/test/libregrtest/main.py
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-10-21 08:37:48 (GMT)
committerGitHub <noreply@github.com>2023-10-21 08:37:48 (GMT)
commit7237fb578dc9db9dc557759a24d8083425107b91 (patch)
tree95d79af23b603fbf30cc2b3ad751a7597f308fce /Lib/test/libregrtest/main.py
parentb07f23259d30e61fd7cc975b8b0e3b2e846fed8f (diff)
downloadcpython-7237fb578dc9db9dc557759a24d8083425107b91.zip
cpython-7237fb578dc9db9dc557759a24d8083425107b91.tar.gz
cpython-7237fb578dc9db9dc557759a24d8083425107b91.tar.bz2
gh-110932: Fix regrtest for SOURCE_DATE_EPOCH (#111143)
If the SOURCE_DATE_EPOCH environment variable is defined, use its value as the random seed.
Diffstat (limited to 'Lib/test/libregrtest/main.py')
-rw-r--r--Lib/test/libregrtest/main.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py
index cb60d5a..02f3f84 100644
--- a/Lib/test/libregrtest/main.py
+++ b/Lib/test/libregrtest/main.py
@@ -129,14 +129,19 @@ class Regrtest:
# Randomize
self.randomize: bool = ns.randomize
- self.random_seed: int | None = (
- ns.random_seed
- if ns.random_seed is not None
- else random.getrandbits(32)
- )
- if 'SOURCE_DATE_EPOCH' in os.environ:
+ if ('SOURCE_DATE_EPOCH' in os.environ
+ # don't use the variable if empty
+ and os.environ['SOURCE_DATE_EPOCH']
+ ):
self.randomize = False
- self.random_seed = None
+ # SOURCE_DATE_EPOCH should be an integer, but use a string to not
+ # fail if it's not integer. random.seed() accepts a string.
+ # https://reproducible-builds.org/docs/source-date-epoch/
+ self.random_seed: int | str = os.environ['SOURCE_DATE_EPOCH']
+ elif ns.random_seed is None:
+ self.random_seed = random.getrandbits(32)
+ else:
+ self.random_seed = ns.random_seed
# tests
self.first_runtests: RunTests | None = None
@@ -441,7 +446,7 @@ class Regrtest:
or tests or self.cmdline_args)):
display_header(self.use_resources, self.python_cmd)
- print("Using random seed", self.random_seed)
+ print("Using random seed:", self.random_seed)
runtests = self.create_run_tests(selected)
self.first_runtests = runtests