@@ -92,7 +92,9 @@ def __exit__(self, exc_type, exc_val, exc_tb):
92
92
if self .cleanup and self .out_format :
93
93
rmtree (dirname (self .out_format ))
94
94
95
- def __call__ (self , index , * args , weights = None , lock = None , ** kwargs ):
95
+ def __call__ (self , index , * args , seed = None , weights = None , lock = None , ** kwargs ):
96
+ if seed :
97
+ random .seed (seed + index )
96
98
weights = weights if weights is not None else {}
97
99
lock = lock or nullcontext ()
98
100
return self .create_new_test (index , weights , lock )[0 ]
@@ -265,17 +267,14 @@ def restricted_float(value):
265
267
parser .add_argument ('-n' , default = 1 , type = int , metavar = 'NUM' ,
266
268
help = 'number of tests to generate, \' inf\' for continuous generation (default: %(default)s).' )
267
269
parser .add_argument ('--random-seed' , type = int , metavar = 'NUM' ,
268
- help = 'initialize random number generator with fixed seed (not set by default; noneffective if parallelization is enabled ).' )
270
+ help = 'initialize random number generator with fixed seed (not set by default).' )
269
271
add_jobs_argument (parser )
270
272
add_sys_path_argument (parser )
271
273
add_sys_recursion_limit_argument (parser )
272
274
add_log_level_argument (parser , short_alias = ())
273
275
add_version_argument (parser , version = __version__ )
274
276
args = parser .parse_args ()
275
277
276
- if args .jobs == 1 and args .random_seed :
277
- random .seed (args .random_seed )
278
-
279
278
init_logging ()
280
279
process_log_level_argument (args , logger )
281
280
process_sys_path_argument (args )
@@ -293,14 +292,14 @@ def restricted_float(value):
293
292
cleanup = False , encoding = args .encoding ) as generator :
294
293
if args .jobs > 1 :
295
294
with Manager () as manager :
296
- generator = partial (generator , weights = manager .dict (), lock = manager .Lock ()) # pylint: disable=no-member
295
+ generator = partial (generator , seed = args . random_seed , weights = manager .dict (), lock = manager .Lock ()) # pylint: disable=no-member
297
296
with Pool (args .jobs ) as pool :
298
297
for _ in pool .imap_unordered (generator , count (0 ) if args .n == inf else range (args .n )):
299
298
pass
300
299
else :
301
300
weights = {}
302
301
for i in count (0 ) if args .n == inf else range (args .n ):
303
- generator (i , weights = weights )
302
+ generator (i , seed = args . random_seed , weights = weights )
304
303
305
304
306
305
if __name__ == '__main__' :
0 commit comments