Merge pull request #2017 from ethereum/reveal_deadlines_setting
Add `disable_process_reveal_deadlines` decorator and `reveal_deadlines_setting` meta tag
This commit is contained in:
commit
62cd4e80d4
|
@ -264,6 +264,24 @@ def bls_switch(fn):
|
||||||
return entry
|
return entry
|
||||||
|
|
||||||
|
|
||||||
|
def disable_process_reveal_deadlines(fn):
|
||||||
|
"""
|
||||||
|
Decorator to make a function execute with `process_reveal_deadlines` OFF.
|
||||||
|
This is for testing long-range epochs transition without considering the reveal-deadline slashing effect.
|
||||||
|
"""
|
||||||
|
def entry(*args, spec: Spec, **kw):
|
||||||
|
if hasattr(spec, 'process_reveal_deadlines'):
|
||||||
|
old_state = spec.process_reveal_deadlines
|
||||||
|
spec.process_reveal_deadlines = lambda state: None
|
||||||
|
|
||||||
|
yield from fn(*args, spec=spec, **kw)
|
||||||
|
|
||||||
|
if hasattr(spec, 'process_reveal_deadlines'):
|
||||||
|
spec.process_reveal_deadlines = old_state
|
||||||
|
|
||||||
|
return with_meta_tags({'reveal_deadlines_setting': 1})(entry)
|
||||||
|
|
||||||
|
|
||||||
def with_all_phases(fn):
|
def with_all_phases(fn):
|
||||||
"""
|
"""
|
||||||
A decorator for running a test with every phase
|
A decorator for running a test with every phase
|
||||||
|
@ -321,12 +339,15 @@ def with_phases(phases, other_phases=None):
|
||||||
return decorator
|
return decorator
|
||||||
|
|
||||||
|
|
||||||
def with_configs(configs):
|
def with_configs(configs, reason=None):
|
||||||
def decorator(fn):
|
def decorator(fn):
|
||||||
def wrapper(*args, spec: Spec, **kw):
|
def wrapper(*args, spec: Spec, **kw):
|
||||||
available_configs = set(configs)
|
available_configs = set(configs)
|
||||||
if spec.CONFIG_NAME not in available_configs:
|
if spec.CONFIG_NAME not in available_configs:
|
||||||
dump_skipping_message(f"doesn't support this config: {spec.CONFIG_NAME}")
|
message = f"doesn't support this config: {spec.CONFIG_NAME}."
|
||||||
|
if reason is not None:
|
||||||
|
message = f"{message} Reason: {reason}"
|
||||||
|
dump_skipping_message(message)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return fn(*args, spec=spec, **kw)
|
return fn(*args, spec=spec, **kw)
|
||||||
|
|
|
@ -23,6 +23,7 @@ from eth2spec.test.helpers.shard_transitions import get_shard_transition_of_comm
|
||||||
from eth2spec.test.context import (
|
from eth2spec.test.context import (
|
||||||
PHASE0, PHASE1,
|
PHASE0, PHASE1,
|
||||||
spec_state_test, with_all_phases, expect_assertion_error, always_bls, with_phases, dump_skipping_message,
|
spec_state_test, with_all_phases, expect_assertion_error, always_bls, with_phases, dump_skipping_message,
|
||||||
|
disable_process_reveal_deadlines,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -758,8 +759,9 @@ def prepare_signed_exits(spec, state, indices):
|
||||||
# exceeding the minimal-config randao mixes memory size.
|
# exceeding the minimal-config randao mixes memory size.
|
||||||
# Applies to all voluntary-exit sanity block tests.
|
# Applies to all voluntary-exit sanity block tests.
|
||||||
|
|
||||||
@with_phases([PHASE0])
|
@with_all_phases
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
def test_voluntary_exit(spec, state):
|
def test_voluntary_exit(spec, state):
|
||||||
validator_index = spec.get_active_validator_indices(state, spec.get_current_epoch(state))[-1]
|
validator_index = spec.get_active_validator_indices(state, spec.get_current_epoch(state))[-1]
|
||||||
|
|
||||||
|
@ -807,8 +809,9 @@ def test_double_validator_exit_same_block(spec, state):
|
||||||
yield 'post', None
|
yield 'post', None
|
||||||
|
|
||||||
|
|
||||||
@with_phases([PHASE0])
|
@with_all_phases
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
def test_multiple_different_validator_exits_same_block(spec, state):
|
def test_multiple_different_validator_exits_same_block(spec, state):
|
||||||
validator_indices = [
|
validator_indices = [
|
||||||
spec.get_active_validator_indices(state, spec.get_current_epoch(state))[i]
|
spec.get_active_validator_indices(state, spec.get_current_epoch(state))[i]
|
||||||
|
|
|
@ -9,9 +9,12 @@ from eth2spec.test.helpers.attestations import (
|
||||||
from eth2spec.test.helpers.state import transition_to, transition_to_valid_shard_slot
|
from eth2spec.test.helpers.state import transition_to, transition_to_valid_shard_slot
|
||||||
from eth2spec.test.context import (
|
from eth2spec.test.context import (
|
||||||
PHASE0,
|
PHASE0,
|
||||||
|
MINIMAL,
|
||||||
expect_assertion_error,
|
expect_assertion_error,
|
||||||
|
disable_process_reveal_deadlines,
|
||||||
spec_state_test,
|
spec_state_test,
|
||||||
with_all_phases_except,
|
with_all_phases_except,
|
||||||
|
with_configs,
|
||||||
)
|
)
|
||||||
from eth2spec.test.phase0.block_processing.test_process_attestation import run_attestation_processing
|
from eth2spec.test.phase0.block_processing.test_process_attestation import run_attestation_processing
|
||||||
|
|
||||||
|
@ -67,6 +70,8 @@ def run_custody_chunk_response_processing(spec, state, custody_response, valid=T
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
def test_challenge_appended(spec, state):
|
def test_challenge_appended(spec, state):
|
||||||
transition_to_valid_shard_slot(spec, state)
|
transition_to_valid_shard_slot(spec, state)
|
||||||
transition_to(spec, state, state.slot + 1) # Make len(offset_slots) == 1
|
transition_to(spec, state, state.slot + 1) # Make len(offset_slots) == 1
|
||||||
|
@ -89,6 +94,8 @@ def test_challenge_appended(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_challenge_empty_element_replaced(spec, state):
|
def test_challenge_empty_element_replaced(spec, state):
|
||||||
transition_to_valid_shard_slot(spec, state)
|
transition_to_valid_shard_slot(spec, state)
|
||||||
transition_to(spec, state, state.slot + 1) # Make len(offset_slots) == 1
|
transition_to(spec, state, state.slot + 1) # Make len(offset_slots) == 1
|
||||||
|
@ -113,6 +120,8 @@ def test_challenge_empty_element_replaced(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_duplicate_challenge(spec, state):
|
def test_duplicate_challenge(spec, state):
|
||||||
transition_to_valid_shard_slot(spec, state)
|
transition_to_valid_shard_slot(spec, state)
|
||||||
transition_to(spec, state, state.slot + 1) # Make len(offset_slots) == 1
|
transition_to(spec, state, state.slot + 1) # Make len(offset_slots) == 1
|
||||||
|
@ -137,6 +146,8 @@ def test_duplicate_challenge(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_second_challenge(spec, state):
|
def test_second_challenge(spec, state):
|
||||||
transition_to_valid_shard_slot(spec, state)
|
transition_to_valid_shard_slot(spec, state)
|
||||||
transition_to(spec, state, state.slot + 1) # Make len(offset_slots) == 1
|
transition_to(spec, state, state.slot + 1) # Make len(offset_slots) == 1
|
||||||
|
@ -163,6 +174,8 @@ def test_second_challenge(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_multiple_epochs_custody(spec, state):
|
def test_multiple_epochs_custody(spec, state):
|
||||||
transition_to_valid_shard_slot(spec, state)
|
transition_to_valid_shard_slot(spec, state)
|
||||||
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH * 3)
|
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH * 3)
|
||||||
|
@ -186,6 +199,8 @@ def test_multiple_epochs_custody(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_many_epochs_custody(spec, state):
|
def test_many_epochs_custody(spec, state):
|
||||||
transition_to_valid_shard_slot(spec, state)
|
transition_to_valid_shard_slot(spec, state)
|
||||||
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH * 20)
|
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH * 20)
|
||||||
|
@ -209,6 +224,8 @@ def test_many_epochs_custody(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_off_chain_attestation(spec, state):
|
def test_off_chain_attestation(spec, state):
|
||||||
transition_to_valid_shard_slot(spec, state)
|
transition_to_valid_shard_slot(spec, state)
|
||||||
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH)
|
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH)
|
||||||
|
@ -228,6 +245,8 @@ def test_off_chain_attestation(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_custody_response(spec, state):
|
def test_custody_response(spec, state):
|
||||||
transition_to_valid_shard_slot(spec, state)
|
transition_to_valid_shard_slot(spec, state)
|
||||||
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH)
|
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH)
|
||||||
|
@ -258,6 +277,8 @@ def test_custody_response(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_custody_response_chunk_index_2(spec, state):
|
def test_custody_response_chunk_index_2(spec, state):
|
||||||
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH)
|
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH)
|
||||||
|
|
||||||
|
@ -287,6 +308,8 @@ def test_custody_response_chunk_index_2(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_custody_response_multiple_epochs(spec, state):
|
def test_custody_response_multiple_epochs(spec, state):
|
||||||
transition_to_valid_shard_slot(spec, state)
|
transition_to_valid_shard_slot(spec, state)
|
||||||
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH * 3)
|
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH * 3)
|
||||||
|
@ -317,6 +340,8 @@ def test_custody_response_multiple_epochs(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_custody_response_many_epochs(spec, state):
|
def test_custody_response_many_epochs(spec, state):
|
||||||
transition_to_valid_shard_slot(spec, state)
|
transition_to_valid_shard_slot(spec, state)
|
||||||
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH * 20)
|
transition_to(spec, state, state.slot + spec.SLOTS_PER_EPOCH * 20)
|
||||||
|
|
|
@ -10,9 +10,12 @@ from eth2spec.utils.ssz.ssz_typing import ByteList
|
||||||
from eth2spec.test.helpers.state import get_balance, transition_to
|
from eth2spec.test.helpers.state import get_balance, transition_to
|
||||||
from eth2spec.test.context import (
|
from eth2spec.test.context import (
|
||||||
PHASE0,
|
PHASE0,
|
||||||
|
MINIMAL,
|
||||||
with_all_phases_except,
|
with_all_phases_except,
|
||||||
spec_state_test,
|
spec_state_test,
|
||||||
expect_assertion_error,
|
expect_assertion_error,
|
||||||
|
disable_process_reveal_deadlines,
|
||||||
|
with_configs,
|
||||||
)
|
)
|
||||||
from eth2spec.test.phase0.block_processing.test_process_attestation import run_attestation_processing
|
from eth2spec.test.phase0.block_processing.test_process_attestation import run_attestation_processing
|
||||||
|
|
||||||
|
@ -111,30 +114,40 @@ def run_standard_custody_slashing_test(spec,
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_custody_slashing(spec, state):
|
def test_custody_slashing(spec, state):
|
||||||
yield from run_standard_custody_slashing_test(spec, state)
|
yield from run_standard_custody_slashing_test(spec, state)
|
||||||
|
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_incorrect_custody_slashing(spec, state):
|
def test_incorrect_custody_slashing(spec, state):
|
||||||
yield from run_standard_custody_slashing_test(spec, state, correct=False)
|
yield from run_standard_custody_slashing_test(spec, state, correct=False)
|
||||||
|
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_multiple_epochs_custody(spec, state):
|
def test_multiple_epochs_custody(spec, state):
|
||||||
yield from run_standard_custody_slashing_test(spec, state, shard_lateness=spec.SLOTS_PER_EPOCH * 3)
|
yield from run_standard_custody_slashing_test(spec, state, shard_lateness=spec.SLOTS_PER_EPOCH * 3)
|
||||||
|
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_many_epochs_custody(spec, state):
|
def test_many_epochs_custody(spec, state):
|
||||||
yield from run_standard_custody_slashing_test(spec, state, shard_lateness=spec.SLOTS_PER_EPOCH * 5)
|
yield from run_standard_custody_slashing_test(spec, state, shard_lateness=spec.SLOTS_PER_EPOCH * 5)
|
||||||
|
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@disable_process_reveal_deadlines
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_invalid_custody_slashing(spec, state):
|
def test_invalid_custody_slashing(spec, state):
|
||||||
yield from run_standard_custody_slashing_test(
|
yield from run_standard_custody_slashing_test(
|
||||||
spec,
|
spec,
|
||||||
|
|
|
@ -8,8 +8,10 @@ from eth2spec.test.helpers.attestations import (
|
||||||
from eth2spec.test.helpers.state import transition_to, transition_to_valid_shard_slot
|
from eth2spec.test.helpers.state import transition_to, transition_to_valid_shard_slot
|
||||||
from eth2spec.test.context import (
|
from eth2spec.test.context import (
|
||||||
PHASE0,
|
PHASE0,
|
||||||
with_all_phases_except,
|
MINIMAL,
|
||||||
spec_state_test,
|
spec_state_test,
|
||||||
|
with_all_phases_except,
|
||||||
|
with_configs,
|
||||||
)
|
)
|
||||||
from eth2spec.test.phase0.block_processing.test_process_attestation import run_attestation_processing
|
from eth2spec.test.phase0.block_processing.test_process_attestation import run_attestation_processing
|
||||||
from eth2spec.test.phase0.epoch_processing.run_epoch_process_base import run_epoch_processing_with
|
from eth2spec.test.phase0.epoch_processing.run_epoch_process_base import run_epoch_processing_with
|
||||||
|
@ -25,6 +27,7 @@ def run_process_challenge_deadlines(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_validator_slashed_after_chunk_challenge(spec, state):
|
def test_validator_slashed_after_chunk_challenge(spec, state):
|
||||||
transition_to_valid_shard_slot(spec, state)
|
transition_to_valid_shard_slot(spec, state)
|
||||||
transition_to(spec, state, state.slot + 1) # Make len(offset_slots) == 1
|
transition_to(spec, state, state.slot + 1) # Make len(offset_slots) == 1
|
||||||
|
|
|
@ -4,7 +4,9 @@ from eth2spec.test.helpers.custody import (
|
||||||
from eth2spec.test.helpers.state import transition_to
|
from eth2spec.test.helpers.state import transition_to
|
||||||
from eth2spec.test.context import (
|
from eth2spec.test.context import (
|
||||||
PHASE0,
|
PHASE0,
|
||||||
|
MINIMAL,
|
||||||
with_all_phases_except,
|
with_all_phases_except,
|
||||||
|
with_configs,
|
||||||
spec_state_test,
|
spec_state_test,
|
||||||
)
|
)
|
||||||
from eth2spec.test.phase0.epoch_processing.run_epoch_process_base import run_epoch_processing_with
|
from eth2spec.test.phase0.epoch_processing.run_epoch_process_base import run_epoch_processing_with
|
||||||
|
@ -17,6 +19,7 @@ def run_process_challenge_deadlines(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_validator_slashed_after_reveal_deadline(spec, state):
|
def test_validator_slashed_after_reveal_deadline(spec, state):
|
||||||
assert state.validators[0].slashed == 0
|
assert state.validators[0].slashed == 0
|
||||||
transition_to(spec, state, spec.get_randao_epoch_for_custody_period(0, 0) * spec.SLOTS_PER_EPOCH)
|
transition_to(spec, state, spec.get_randao_epoch_for_custody_period(0, 0) * spec.SLOTS_PER_EPOCH)
|
||||||
|
@ -36,6 +39,7 @@ def test_validator_slashed_after_reveal_deadline(spec, state):
|
||||||
|
|
||||||
@with_all_phases_except([PHASE0])
|
@with_all_phases_except([PHASE0])
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
|
@with_configs([MINIMAL], reason="too slow")
|
||||||
def test_validator_not_slashed_after_reveal(spec, state):
|
def test_validator_not_slashed_after_reveal(spec, state):
|
||||||
transition_to(spec, state, spec.EPOCHS_PER_CUSTODY_PERIOD * spec.SLOTS_PER_EPOCH)
|
transition_to(spec, state, spec.EPOCHS_PER_CUSTODY_PERIOD * spec.SLOTS_PER_EPOCH)
|
||||||
custody_key_reveal = get_valid_custody_key_reveal(spec, state)
|
custody_key_reveal = get_valid_custody_key_reveal(spec, state)
|
||||||
|
|
|
@ -165,6 +165,9 @@ bls_setting: int -- optional, can have 3 different values:
|
||||||
but there is no change of outcome when running the test if BLS is ON or OFF.
|
but there is no change of outcome when running the test if BLS is ON or OFF.
|
||||||
1: known as "BLS required" - if the test validity is strictly dependent on BLS being ON
|
1: known as "BLS required" - if the test validity is strictly dependent on BLS being ON
|
||||||
2: known as "BLS ignored" - if the test validity is strictly dependent on BLS being OFF
|
2: known as "BLS ignored" - if the test validity is strictly dependent on BLS being OFF
|
||||||
|
reveal_deadlines_setting: -- optional, can have 2 different values:
|
||||||
|
0: default, `process_reveal_deadlines` is ON.
|
||||||
|
1: `process_reveal_deadlines` is OFF.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,10 @@ Sanity tests to cover a series of one or more blocks being processed, aiming to
|
||||||
### `meta.yaml`
|
### `meta.yaml`
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
description: string -- Optional. Description of test case, purely for debugging purposes.
|
description: string -- Optional. Description of test case, purely for debugging purposes.
|
||||||
bls_setting: int -- see general test-format spec.
|
bls_setting: int -- see general test-format spec.
|
||||||
blocks_count: int -- the number of blocks processed in this test.
|
reveal_deadlines_setting: int -- see general test-format spec.
|
||||||
|
blocks_count: int -- the number of blocks processed in this test.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -47,14 +47,12 @@ if __name__ == "__main__":
|
||||||
gen_runner.run_generator(f"epoch_processing", [
|
gen_runner.run_generator(f"epoch_processing", [
|
||||||
create_provider(PHASE0, key, mod_name, 'minimal') for key, mod_name in phase_0_mods
|
create_provider(PHASE0, key, mod_name, 'minimal') for key, mod_name in phase_0_mods
|
||||||
])
|
])
|
||||||
# TODO: disabled for testing
|
gen_runner.run_generator(f"epoch_processing", [
|
||||||
# gen_runner.run_generator(f"epoch_processing", [
|
create_provider(PHASE0, key, mod_name, 'mainnet') for key, mod_name in phase_0_mods
|
||||||
# create_provider(key, mod_name, 'mainnet') for key, mod_name in phase_0_mods
|
])
|
||||||
# ])
|
|
||||||
gen_runner.run_generator(f"epoch_processing", [
|
gen_runner.run_generator(f"epoch_processing", [
|
||||||
create_provider(PHASE1, key, mod_name, 'minimal') for key, mod_name in phase_1_mods
|
create_provider(PHASE1, key, mod_name, 'minimal') for key, mod_name in phase_1_mods
|
||||||
])
|
])
|
||||||
# Disabled for now
|
gen_runner.run_generator(f"epoch_processing", [
|
||||||
# gen_runner.run_generator(f"epoch_processing", [
|
create_provider(PHASE1, key, mod_name, 'mainnet') for key, mod_name in phase_1_mods
|
||||||
# create_provider(PHASE1, key, mod_name, 'mainnet') for key, mod_name in phase_1_mods
|
])
|
||||||
# ])
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ from importlib import reload
|
||||||
from gen_base import gen_runner, 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 eth2spec.test.context import PHASE0
|
from eth2spec.test.context import PHASE0, PHASE1
|
||||||
from eth2spec.test.phase0.finality import test_finality
|
from eth2spec.test.phase0.finality import test_finality
|
||||||
from eth2spec.config import config_util
|
from eth2spec.config import config_util
|
||||||
from eth2spec.phase0 import spec as spec_phase0
|
from eth2spec.phase0 import spec as spec_phase0
|
||||||
|
@ -12,7 +12,7 @@ from eth2spec.phase1 import spec as spec_phase1
|
||||||
from eth2spec.utils import bls
|
from eth2spec.utils import bls
|
||||||
|
|
||||||
|
|
||||||
def create_provider(handler_name: str, tests_src, config_name: str) -> gen_typing.TestProvider:
|
def create_provider(fork_name: str, handler_name: str, tests_src, config_name: str) -> gen_typing.TestProvider:
|
||||||
|
|
||||||
def prepare_fn(configs_path: str) -> str:
|
def prepare_fn(configs_path: str) -> str:
|
||||||
config_util.prepare_config(configs_path, config_name)
|
config_util.prepare_config(configs_path, config_name)
|
||||||
|
@ -26,14 +26,18 @@ def create_provider(handler_name: str, tests_src, config_name: str) -> gen_typin
|
||||||
runner_name='finality',
|
runner_name='finality',
|
||||||
handler_name=handler_name,
|
handler_name=handler_name,
|
||||||
src=tests_src,
|
src=tests_src,
|
||||||
fork_name=PHASE0,
|
fork_name=fork_name,
|
||||||
)
|
)
|
||||||
|
|
||||||
return gen_typing.TestProvider(prepare=prepare_fn, make_cases=cases_fn)
|
return gen_typing.TestProvider(prepare=prepare_fn, make_cases=cases_fn)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
# No additional phase 1 specific rewards tests, yet.
|
||||||
|
key = 'finality'
|
||||||
gen_runner.run_generator("finality", [
|
gen_runner.run_generator("finality", [
|
||||||
create_provider('finality', test_finality, 'minimal'),
|
create_provider(PHASE0, 'finality', test_finality, 'minimal'),
|
||||||
create_provider('finality', test_finality, 'mainnet'),
|
create_provider(PHASE0, 'finality', test_finality, 'mainnet'),
|
||||||
|
create_provider(PHASE1, 'finality', test_finality, 'minimal'),
|
||||||
|
create_provider(PHASE1, 'finality', test_finality, 'mainnet'),
|
||||||
])
|
])
|
||||||
|
|
|
@ -51,14 +51,12 @@ if __name__ == "__main__":
|
||||||
gen_runner.run_generator(f"operations", [
|
gen_runner.run_generator(f"operations", [
|
||||||
create_provider(PHASE0, key, mod_name, 'minimal') for key, mod_name in phase_0_mods
|
create_provider(PHASE0, key, mod_name, 'minimal') for key, mod_name in phase_0_mods
|
||||||
])
|
])
|
||||||
# TODO: disabled for testing
|
gen_runner.run_generator(f"operations", [
|
||||||
# gen_runner.run_generator(f"operations", [
|
create_provider(PHASE0, key, mod_name, 'mainnet') for key, mod_name in phase_0_mods
|
||||||
# create_provider(key, mod_name, 'mainnet') for key, mod_name in phase_0_mods
|
])
|
||||||
# ])
|
|
||||||
gen_runner.run_generator(f"operations", [
|
gen_runner.run_generator(f"operations", [
|
||||||
create_provider(PHASE1, key, mod_name, 'minimal') for key, mod_name in phase_1_mods
|
create_provider(PHASE1, key, mod_name, 'minimal') for key, mod_name in phase_1_mods
|
||||||
])
|
])
|
||||||
# Disabled for now
|
gen_runner.run_generator(f"operations", [
|
||||||
# gen_runner.run_generator(f"operations", [
|
create_provider(PHASE1, key, mod_name, 'mainnet') for key, mod_name in phase_1_mods
|
||||||
# create_provider(PHASE1, key, mod_name, 'mainnet') for key, mod_name in phase_1_mods
|
])
|
||||||
# ])
|
|
||||||
|
|
|
@ -45,15 +45,12 @@ if __name__ == "__main__":
|
||||||
gen_runner.run_generator(f"rewards", [
|
gen_runner.run_generator(f"rewards", [
|
||||||
create_provider(PHASE0, key, mod_name, 'minimal') for key, mod_name in phase_0_mods
|
create_provider(PHASE0, key, mod_name, 'minimal') for key, mod_name in phase_0_mods
|
||||||
])
|
])
|
||||||
# TODO: disabled for testing
|
gen_runner.run_generator(f"rewards", [
|
||||||
# gen_runner.run_generator(f"rewards", [
|
create_provider(PHASE0, key, mod_name, 'mainnet') for key, mod_name in phase_0_mods
|
||||||
# create_provider(key, mod_name, 'mainnet') for key, mod_name in phase_0_mods
|
])
|
||||||
# ])
|
|
||||||
gen_runner.run_generator(f"rewards", [
|
gen_runner.run_generator(f"rewards", [
|
||||||
create_provider(PHASE1, key, mod_name, 'minimal') for key, mod_name in phase_1_mods
|
create_provider(PHASE1, key, mod_name, 'minimal') for key, mod_name in phase_1_mods
|
||||||
])
|
])
|
||||||
# Disabled for now
|
gen_runner.run_generator(f"rewards", [
|
||||||
# gen_runner.run_generator(f"rewards", [
|
create_provider(PHASE1, key, mod_name, 'mainnet') for key, mod_name in phase_1_mods
|
||||||
# create_provider(PHASE1, key, mod_name, 'mainnet') for key, mod_name in phase_1_mods
|
])
|
||||||
# ])
|
|
||||||
|
|
||||||
|
|
|
@ -43,14 +43,12 @@ if __name__ == "__main__":
|
||||||
gen_runner.run_generator(f"sanity", [
|
gen_runner.run_generator(f"sanity", [
|
||||||
create_provider(PHASE0, key, mod_name, 'minimal') for key, mod_name in phase_0_mods
|
create_provider(PHASE0, key, mod_name, 'minimal') for key, mod_name in phase_0_mods
|
||||||
])
|
])
|
||||||
# TODO: disabled for testing
|
gen_runner.run_generator(f"sanity", [
|
||||||
# gen_runner.run_generator(f"sanity", [
|
create_provider(PHASE0, key, mod_name, 'mainnet') for key, mod_name in phase_0_mods
|
||||||
# create_provider(key, mod_name, 'mainnet') for key, mod_name in phase_0_mods
|
])
|
||||||
# ])
|
|
||||||
gen_runner.run_generator(f"sanity", [
|
gen_runner.run_generator(f"sanity", [
|
||||||
create_provider(PHASE1, key, mod_name, 'minimal') for key, mod_name in phase_1_mods
|
create_provider(PHASE1, key, mod_name, 'minimal') for key, mod_name in phase_1_mods
|
||||||
])
|
])
|
||||||
# Disabled for now
|
gen_runner.run_generator(f"sanity", [
|
||||||
# gen_runner.run_generator(f"sanity", [
|
create_provider(PHASE1, key, mod_name, 'mainnet') for key, mod_name in phase_1_mods
|
||||||
# create_provider(PHASE1, key, mod_name, 'mainnet') for key, mod_name in phase_1_mods
|
])
|
||||||
# ])
|
|
||||||
|
|
Loading…
Reference in New Issue