]> git-server-git.apps.pok.os.sepia.ceph.com Git - teuthology.git/commitdiff
teuthology/suite: initialize lua prng using run's seed 1926/head
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 19 Mar 2024 14:13:27 +0000 (10:13 -0400)
committerPatrick Donnelly <pdonnell@redhat.com>
Sat, 23 Mar 2024 01:53:40 +0000 (21:53 -0400)
When a script may use Lua's prng, we want it to produce the same sequence
during a rerun.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
teuthology/describe_tests.py
teuthology/suite/merge.py
teuthology/suite/run.py

index 3ea7d71b6c004fdb272cd1c25bc4eeabcf2d9d79..c0054adc168005694c1266387d8d7e049f6c5a29 100644 (file)
@@ -137,7 +137,8 @@ def output_summary(path, limit=0,
                                  filter_in=filter_in,
                                  filter_out=filter_out,
                                  filter_all=filter_all,
-                                 filter_fragments=filter_fragments)
+                                 filter_fragments=filter_fragments,
+                                 seed=seed)
     for c in configs:
         if limit and count >= limit:
             break
@@ -185,7 +186,8 @@ def get_combinations(suite_dir,
                                  filter_in=filter_in,
                                  filter_out=filter_out,
                                  filter_all=filter_all,
-                                 filter_fragments=filter_fragments)
+                                 filter_fragments=filter_fragments,
+                                 seed=seed)
     for _, fragment_paths, __ in configs:
         if limit > 0 and num_listed >= limit:
             break
index 647fe6e1d5c7552ebf11d78443052bc3b2a604f1..4ae9e05bf7dd1ecd2a8c4863a33d9668bf07b401 100644 (file)
@@ -115,6 +115,12 @@ def config_merge(configs, suite_name=None, **kwargs):
     the entire job (config) from the list.
     """
 
+    seed = kwargs.setdefault('seed', 1)
+    if not isinstance(seed, int):
+        log.debug("no valid seed input: using 1")
+        seed = 1
+    log.debug("configuring Lua randomseed to %d", seed)
+    L.execute(f'local math = require"math"; math.randomseed({seed});')
     new_script = L.eval('new_script')
     yaml_cache = {}
     for desc, paths in configs:
index b69b80b58efd424222acf0addd86e65ede42e571..bea31432ffd2cef166181d9025f0e74263b4c96e 100644 (file)
@@ -591,6 +591,7 @@ Note: If you still want to go ahead, use --job-threshold 0'''
             filter_out=self.args.filter_out,
             filter_all=self.args.filter_all,
             filter_fragments=self.args.filter_fragments,
+            seed=self.args.seed,
             suite_name=suite_name))
 
         if self.args.dry_run: