update testgen, make epoch proc work

This commit is contained in:
protolambda 2019-07-26 22:40:49 +02:00
parent 69052ac750
commit e8b3f9985b
No known key found for this signature in database
GPG Key ID: EC89FDBB2B4C7623
6 changed files with 22 additions and 22 deletions

View File

@ -9,13 +9,12 @@ from eth2spec.test.phase_0.epoch_processing import (
test_process_registry_updates, test_process_registry_updates,
test_process_slashings test_process_slashings
) )
from gen_base import gen_runner, gen_suite, gen_typing from gen_base import gen_runner, gen_typing
from gen_from_tests.gen import generate_from_tests from gen_from_tests.gen import generate_from_tests
from preset_loader import loader from preset_loader import loader
def create_suite(handler_name: str, tests_src, config_name: str) \ def create_provider(handler_name: str, tests_src, config_name: str) -> gen_typing.TestProvider:
-> Callable[[str], gen_typing.TestProvider]:
def prepare_fn(configs_path: str) -> str: def prepare_fn(configs_path: str) -> str:
presets = loader.load_presets(configs_path, config_name) presets = loader.load_presets(configs_path, config_name)
@ -36,14 +35,14 @@ def create_suite(handler_name: str, tests_src, config_name: str) \
if __name__ == "__main__": if __name__ == "__main__":
gen_runner.run_generator("epoch_processing", [ gen_runner.run_generator("epoch_processing", [
create_suite('crosslinks', test_process_crosslinks, 'minimal'), create_provider('crosslinks', test_process_crosslinks, 'minimal'),
create_suite('crosslinks', test_process_crosslinks, 'mainnet'), create_provider('crosslinks', test_process_crosslinks, 'mainnet'),
create_suite('final_updates', test_process_final_updates, 'minimal'), create_provider('final_updates', test_process_final_updates, 'minimal'),
create_suite('final_updates', test_process_final_updates, 'mainnet'), create_provider('final_updates', test_process_final_updates, 'mainnet'),
create_suite('justification_and_finalization', test_process_justification_and_finalization, 'minimal'), create_provider('justification_and_finalization', test_process_justification_and_finalization, 'minimal'),
create_suite('justification_and_finalization', test_process_justification_and_finalization, 'mainnet'), create_provider('justification_and_finalization', test_process_justification_and_finalization, 'mainnet'),
create_suite('registry_updates', test_process_registry_updates, 'minimal'), create_provider('registry_updates', test_process_registry_updates, 'minimal'),
create_suite('registry_updates', test_process_registry_updates, 'mainnet'), create_provider('registry_updates', test_process_registry_updates, 'mainnet'),
create_suite('slashings', test_process_slashings, 'minimal'), create_provider('slashings', test_process_slashings, 'minimal'),
create_suite('slashings', test_process_slashings, 'mainnet'), create_provider('slashings', test_process_slashings, 'mainnet'),
]) ])

View File

@ -10,10 +10,10 @@ from os.path import join
def load_presets(configs_dir, presets_name) -> Dict[str, Any]: def load_presets(configs_dir, presets_name) -> Dict[str, Any]:
""" """
Loads the given preset Loads the given preset
:param presets_name: The name of the generator. (lowercase snake_case) :param presets_name: The name of the presets. (lowercase snake_case)
:return: Dictionary, mapping of constant-name -> constant-value :return: Dictionary, mapping of constant-name -> constant-value
""" """
path = Path(join(configs_dir, 'constant_presets', presets_name+'.yaml')) path = Path(join(configs_dir, presets_name+'.yaml'))
yaml = YAML(typ='base') yaml = YAML(typ='base')
loaded = yaml.load(path) loaded = yaml.load(path)
out = dict() out = dict()

View File

@ -1,7 +1,7 @@
import argparse import argparse
from pathlib import Path from pathlib import Path
import sys import sys
from typing import List from typing import Iterable
from ruamel.yaml import ( from ruamel.yaml import (
YAML, YAML,

View File

@ -3,10 +3,9 @@ from typing import (
Callable, Callable,
Iterable, Iterable,
NewType, NewType,
Dict,
Tuple, Tuple,
) )
from collections import namedtuple from dataclasses import dataclass
# Elements: name, out_kind, data # Elements: name, out_kind, data
# #

View File

@ -1,4 +1,5 @@
from inspect import getmembers, isfunction from inspect import getmembers, isfunction
from typing import Any, Iterable
from gen_base.gen_typing import TestCase from gen_base.gen_typing import TestCase
@ -34,5 +35,6 @@ def generate_from_tests(runner_name: str, handler_name: str, src: Any,
handler_name=handler_name, handler_name=handler_name,
suite_name='pyspec_tests', suite_name='pyspec_tests',
case_name=case_name, case_name=case_name,
case_fn=lambda: tfn(generator_mode=True, fork_name=fork_name, bls_active=bls_active) # TODO: with_all_phases and other per-phase tooling, should be replaced with per-fork equivalent.
case_fn=lambda: tfn(generator_mode=True, phase=fork_name, bls_active=bls_active)
) )

View File

@ -4,7 +4,7 @@ from eth2spec.utils import bls
from .helpers.genesis import create_genesis_state from .helpers.genesis import create_genesis_state
from .utils import spectest, with_tags from .utils import spectest, with_meta_tags
def with_state(fn): def with_state(fn):
@ -53,7 +53,7 @@ def expect_assertion_error(fn):
# Tags a test to be ignoring BLS for it to pass. # Tags a test to be ignoring BLS for it to pass.
bls_ignored = with_tags({'bls_setting': 2}) bls_ignored = with_meta_tags({'bls_setting': 2})
def never_bls(fn): def never_bls(fn):
@ -68,7 +68,7 @@ def never_bls(fn):
# Tags a test to be requiring BLS for it to pass. # Tags a test to be requiring BLS for it to pass.
bls_required = with_tags({'bls_setting': 1}) bls_required = with_meta_tags({'bls_setting': 1})
def always_bls(fn): def always_bls(fn):