@@ -149,12 +149,12 @@ def test_randomize(self):
149
149
self .assertTrue (ns .randomize )
150
150
151
151
with os_helper .EnvironmentVarGuard () as env :
152
- env ['SOURCE_DATE_EPOCH' ] = '1 '
152
+ env ['SOURCE_DATE_EPOCH' ] = '1697839080 '
153
153
154
154
ns = self .parse_args (['--randomize' ])
155
155
regrtest = main .Regrtest (ns )
156
156
self .assertFalse (regrtest .randomize )
157
- self .assertIsNone (regrtest .random_seed )
157
+ self .assertEqual (regrtest .random_seed , '1697839080' )
158
158
159
159
def test_randseed (self ):
160
160
ns = self .parse_args (['--randseed' , '12345' ])
@@ -388,7 +388,13 @@ def check_ci_mode(self, args, use_resources, rerun=True):
388
388
389
389
# Check Regrtest attributes which are more reliable than Namespace
390
390
# which has an unclear API
391
- regrtest = main .Regrtest (ns )
391
+ with os_helper .EnvironmentVarGuard () as env :
392
+ # Ignore SOURCE_DATE_EPOCH env var if it's set
393
+ if 'SOURCE_DATE_EPOCH' in env :
394
+ del env ['SOURCE_DATE_EPOCH' ]
395
+
396
+ regrtest = main .Regrtest (ns )
397
+
392
398
self .assertEqual (regrtest .num_workers , - 1 )
393
399
self .assertEqual (regrtest .want_rerun , rerun )
394
400
self .assertTrue (regrtest .randomize )
@@ -662,7 +668,7 @@ def list_regex(line_format, tests):
662
668
self .check_line (output , f'Result: { state } ' , full = True )
663
669
664
670
def parse_random_seed (self , output ):
665
- match = self .regex_search (r'Using random seed ([0-9]+)' , output )
671
+ match = self .regex_search (r'Using random seed: ([0-9]+)' , output )
666
672
randseed = int (match .group (1 ))
667
673
self .assertTrue (0 <= randseed , randseed )
668
674
return randseed
@@ -672,10 +678,17 @@ def run_command(self, args, input=None, exitcode=0, **kw):
672
678
input = ''
673
679
if 'stderr' not in kw :
674
680
kw ['stderr' ] = subprocess .STDOUT
681
+
682
+ env = kw .pop ('env' , None )
683
+ if env is None :
684
+ env = dict (os .environ )
685
+ env .pop ('SOURCE_DATE_EPOCH' , None )
686
+
675
687
proc = subprocess .run (args ,
676
688
text = True ,
677
689
input = input ,
678
690
stdout = subprocess .PIPE ,
691
+ env = env ,
679
692
** kw )
680
693
if proc .returncode != exitcode :
681
694
msg = ("Command %s failed with exit code %s, but exit code %s expected!\n "
@@ -955,6 +968,15 @@ def test_random(self):
955
968
output = self .run_tests (test , exitcode = EXITCODE_NO_TESTS_RAN )
956
969
self .assertIsInstance (self .parse_random_seed (output ), int )
957
970
971
+ # check SOURCE_DATE_EPOCH
972
+ timestamp = 1697839080
973
+ env = dict (os .environ , SOURCE_DATE_EPOCH = str (timestamp ))
974
+ output = self .run_tests ('-r' , test , exitcode = EXITCODE_NO_TESTS_RAN ,
975
+ env = env )
976
+ randseed = self .parse_random_seed (output )
977
+ self .assertEqual (randseed , timestamp )
978
+ self .check_line (output , 'TESTRANDOM: 520' )
979
+
958
980
def test_fromfile (self ):
959
981
# test --fromfile
960
982
tests = [self .create_test () for index in range (5 )]
0 commit comments