Update genesis testgen and format
This commit is contained in:
parent
1a4bbdfd79
commit
5d9f4b072c
|
@ -17,6 +17,7 @@ An integer. The timestamp of the block, in seconds.
|
||||||
A yaml file to help read the deposit count:
|
A yaml file to help read the deposit count:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
description: string -- Optional. Description of test case, purely for debugging purposes.
|
||||||
deposits_count: int -- Amount of deposits.
|
deposits_count: int -- Amount of deposits.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,14 @@ Tests if a genesis state is valid, i.e. if it counts as trigger to launch.
|
||||||
|
|
||||||
## Test case format
|
## Test case format
|
||||||
|
|
||||||
|
### `meta.yaml`
|
||||||
|
|
||||||
|
A yaml file to help read the deposit count:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
description: string -- Optional. Description of test case, purely for debugging purposes.
|
||||||
|
```
|
||||||
|
|
||||||
### `genesis.ssz_snappy`
|
### `genesis.ssz_snappy`
|
||||||
|
|
||||||
An SSZ-snappy encoded `BeaconState`, the state to validate as genesis candidate.
|
An SSZ-snappy encoded `BeaconState`, the state to validate as genesis candidate.
|
||||||
|
|
|
@ -1,37 +1,24 @@
|
||||||
from typing import Iterable
|
from eth2spec.gen_helpers.gen_from_tests.gen import run_state_test_generators
|
||||||
|
from eth2spec.phase0 import spec as spec_phase0
|
||||||
from eth2spec.test.context import PHASE0
|
from eth2spec.altair import spec as spec_altair
|
||||||
from eth2spec.test.phase0.genesis import test_initialization, test_validity
|
from eth2spec.phase1 import spec as spec_phase1
|
||||||
|
from eth2spec.test.context import PHASE0, PHASE1, ALTAIR
|
||||||
from eth2spec.gen_helpers.gen_base import gen_runner, gen_typing
|
|
||||||
from eth2spec.gen_helpers.gen_from_tests.gen import generate_from_tests
|
|
||||||
from eth2spec.phase0 import spec as spec
|
|
||||||
from importlib import reload
|
|
||||||
from eth2spec.config import config_util
|
|
||||||
from eth2spec.utils import bls
|
|
||||||
|
|
||||||
|
|
||||||
def create_provider(handler_name: str, tests_src, config_name: str) -> gen_typing.TestProvider:
|
specs = (spec_phase0, spec_altair, spec_phase1)
|
||||||
|
|
||||||
def prepare_fn(configs_path: str) -> str:
|
|
||||||
config_util.prepare_config(configs_path, config_name)
|
|
||||||
reload(spec)
|
|
||||||
bls.use_milagro()
|
|
||||||
return config_name
|
|
||||||
|
|
||||||
def cases_fn() -> Iterable[gen_typing.TestCase]:
|
|
||||||
return generate_from_tests(
|
|
||||||
runner_name='genesis',
|
|
||||||
handler_name=handler_name,
|
|
||||||
src=tests_src,
|
|
||||||
fork_name=PHASE0,
|
|
||||||
)
|
|
||||||
|
|
||||||
return gen_typing.TestProvider(prepare=prepare_fn, make_cases=cases_fn)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
gen_runner.run_generator("genesis", [
|
phase_0_mods = {key: 'eth2spec.test.phase0.genesis.test_' + key for key in [
|
||||||
create_provider('initialization', test_initialization, 'minimal'),
|
'initialization',
|
||||||
create_provider('validity', test_validity, 'minimal'),
|
'validity',
|
||||||
])
|
]}
|
||||||
|
altair_mods = phase_0_mods
|
||||||
|
phase_1_mods = phase_0_mods
|
||||||
|
all_mods = {
|
||||||
|
PHASE0: phase_0_mods,
|
||||||
|
ALTAIR: altair_mods,
|
||||||
|
PHASE1: phase_1_mods,
|
||||||
|
}
|
||||||
|
|
||||||
|
run_state_test_generators(runner_name="genesis", specs=specs, all_mods=all_mods)
|
||||||
|
|
Loading…
Reference in New Issue