diff --git a/tests/generators/fork_choice_generated/instance_generator.py b/tests/generators/fork_choice_generated/instance_generator.py index deb90f1dd8..048b65f7b7 100644 --- a/tests/generators/fork_choice_generated/instance_generator.py +++ b/tests/generators/fork_choice_generated/instance_generator.py @@ -1,6 +1,6 @@ from eth2spec.test.helpers.constants import ALTAIR from eth2spec.gen_helpers.gen_base import gen_runner -from eth2spec.test.helpers.constants import MINIMAL +from eth2spec.test.helpers.constants import MINIMAL, MAINNET from eth2spec.test.helpers.specs import spec_targets from eth2spec.gen_helpers.gen_base.gen_typing import TestCase, TestProvider from itertools import product @@ -39,18 +39,19 @@ def prepare_fn() -> None: bls.use_milagro() return - def make_cases_fn() -> Iterable[TestCase]: - seeds = [initial_seed] - if number_of_variations > 1: - rnd = random.Random(initial_seed) - seeds = [rnd.randint(1, 10000) for _ in range(number_of_variations)] - seeds[0] = initial_seed - - for i, solution in enumerate(solutions): - for seed in seeds: - for fork_name in forks: - for preset_name in presets: - spec = spec_targets[preset_name][fork_name] + seeds = [initial_seed] + if number_of_variations > 1: + rnd = random.Random(initial_seed) + seeds = [rnd.randint(1, 10000) for _ in range(number_of_variations)] + seeds[0] = initial_seed + + for fork_name in forks: + for preset_name in presets: + spec = spec_targets[preset_name][fork_name] + + for i, solution in enumerate(solutions): + def make_cases_fn() -> Iterable[TestCase]: + for seed in seeds: mutation_generator = MutatorsGenerator( spec, seed, number_of_mutations, lambda: test_fn(fork_name, preset_name, seed, solution), @@ -64,7 +65,7 @@ def make_cases_fn() -> Iterable[TestCase]: case_name=test_name + '_' + str(i) + '_' + str(seed) + '_' + str(j), case_fn=mutation_generator.next_test_case) - yield TestProvider(prepare=prepare_fn, make_cases=make_cases_fn) + yield TestProvider(prepare=prepare_fn, make_cases=make_cases_fn) def _find_sm_link_solutions(anchor_epoch: int, diff --git a/tests/generators/fork_choice_generated/mutation_operators.py b/tests/generators/fork_choice_generated/mutation_operators.py index e5ae9facf3..74e41fb819 100644 --- a/tests/generators/fork_choice_generated/mutation_operators.py +++ b/tests/generators/fork_choice_generated/mutation_operators.py @@ -241,8 +241,15 @@ def mk_mutations(spec, seed, num, test_fn, debug=False): class MutatorsGenerator: def __init__(self, spec, seed, num, test_fn, debug=False): - self.iterator = iter(mk_mutations(spec, seed, num, test_fn, debug)) + self.spec = spec + self.seed = seed + self.num = num + self.test_fn = test_fn + self.debug = debug + self.iterator = None def next_test_case(self): + if self.iterator is None: + self.iterator = iter(mk_mutations(self.spec, self.seed, self.num, self.test_fn, self.debug)) _, test_case = next(self.iterator) return test_case