diff options
author | Victor Stinner <vstinner@python.org> | 2023-10-21 08:37:48 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-21 08:37:48 (GMT) |
commit | 7237fb578dc9db9dc557759a24d8083425107b91 (patch) | |
tree | 95d79af23b603fbf30cc2b3ad751a7597f308fce /Lib/test/libregrtest/main.py | |
parent | b07f23259d30e61fd7cc975b8b0e3b2e846fed8f (diff) | |
download | cpython-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.py | 21 |
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 |