From 0c94be420405380f104347e643500f4613ab8f9c Mon Sep 17 00:00:00 2001 From: protolambda Date: Sat, 27 Mar 2021 00:08:50 +0100 Subject: [PATCH] clean up more phase1 test references --- Makefile | 3 +- .../test_process_sync_committee.py | 18 +++---- .../test_process_sync_committee_updates.py | 4 +- .../test/altair/sanity/test_blocks.py | 16 +++---- tests/core/pyspec/eth2spec/test/context.py | 7 ++- .../eth2spec/test/helpers/attestations.py | 47 ++++--------------- .../eth2spec/test/helpers/block_processing.py | 10 ++-- .../eth2spec/test/helpers/epoch_processing.py | 15 ++++-- .../test/helpers/shard_transitions.py | 37 --------------- .../test_process_attestation.py | 11 ++--- .../test_process_rewards_and_penalties.py | 4 +- .../test/phase0/rewards/test_basic.py | 22 ++++----- .../eth2spec/test/phase0/rewards/test_leak.py | 12 ++--- .../test/phase0/sanity/test_blocks.py | 20 +++----- .../fork_choice/test_on_attestation.py | 13 +---- .../test_process_custody_slashing.py | 1 + .../proof_of_custody/sanity/test_blocks.py | 3 -- 17 files changed, 84 insertions(+), 159 deletions(-) delete mode 100644 tests/core/pyspec/eth2spec/test/helpers/shard_transitions.py diff --git a/Makefile b/Makefile index 1404568da..b22e67c8f 100644 --- a/Makefile +++ b/Makefile @@ -116,10 +116,11 @@ check_toc: $(MARKDOWN_FILES:=.toc) codespell: codespell . --skip ./.git -I .codespell-whitelist +# TODO: add future merge, sharding, etc. packages to linting. lint: pyspec . venv/bin/activate; cd $(PY_SPEC_DIR); \ flake8 --config $(LINTER_CONFIG_FILE) ./eth2spec \ - && mypy --config-file $(LINTER_CONFIG_FILE) -p eth2spec.phase0 -p eth2spec.phase1 -p eth2spec.altair + && mypy --config-file $(LINTER_CONFIG_FILE) -p eth2spec.phase0 -p eth2spec.altair lint_generators: pyspec . venv/bin/activate; cd $(TEST_GENERATORS_DIR); \ diff --git a/tests/core/pyspec/eth2spec/test/altair/block_processing/test_process_sync_committee.py b/tests/core/pyspec/eth2spec/test/altair/block_processing/test_process_sync_committee.py index 958953176..7c9ba1358 100644 --- a/tests/core/pyspec/eth2spec/test/altair/block_processing/test_process_sync_committee.py +++ b/tests/core/pyspec/eth2spec/test/altair/block_processing/test_process_sync_committee.py @@ -12,7 +12,7 @@ from eth2spec.test.helpers.sync_committee import ( compute_aggregate_sync_committee_signature, ) from eth2spec.test.context import ( - PHASE0, PHASE1, + PHASE0, MAINNET, MINIMAL, expect_assertion_error, with_all_phases_except, @@ -60,7 +60,7 @@ def get_committee_indices(spec, state, duplicates=False): state.randao_mixes[randao_index] = hash(state.randao_mixes[randao_index]) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test @always_bls def test_invalid_signature_missing_participant(spec, state): @@ -82,7 +82,7 @@ def test_invalid_signature_missing_participant(spec, state): yield from run_sync_committee_processing(spec, state, block, expect_exception=True) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test @always_bls def test_invalid_signature_extra_participant(spec, state): @@ -191,7 +191,7 @@ def run_successful_sync_committee_test(spec, state, committee, committee_bits): ) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @with_configs([MINIMAL], reason="to create nonduplicate committee") @spec_state_test def test_sync_committee_rewards_nonduplicate_committee(spec, state): @@ -207,7 +207,7 @@ def test_sync_committee_rewards_nonduplicate_committee(spec, state): yield from run_successful_sync_committee_test(spec, state, committee, committee_bits) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @with_configs([MAINNET], reason="to create duplicate committee") @spec_state_test def test_sync_committee_rewards_duplicate_committee(spec, state): @@ -223,7 +223,7 @@ def test_sync_committee_rewards_duplicate_committee(spec, state): yield from run_successful_sync_committee_test(spec, state, committee, committee_bits) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test @always_bls def test_sync_committee_rewards_not_full_participants(spec, state): @@ -234,7 +234,7 @@ def test_sync_committee_rewards_not_full_participants(spec, state): yield from run_successful_sync_committee_test(spec, state, committee, committee_bits) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test @always_bls def test_invalid_signature_past_block(spec, state): @@ -273,7 +273,7 @@ def test_invalid_signature_past_block(spec, state): yield from run_sync_committee_processing(spec, state, invalid_block, expect_exception=True) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @with_configs([MINIMAL], reason="to produce different committee sets") @spec_state_test @always_bls @@ -310,7 +310,7 @@ def test_invalid_signature_previous_committee(spec, state): yield from run_sync_committee_processing(spec, state, block, expect_exception=True) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test @always_bls @with_configs([MINIMAL], reason="too slow") diff --git a/tests/core/pyspec/eth2spec/test/altair/epoch_processing/test_process_sync_committee_updates.py b/tests/core/pyspec/eth2spec/test/altair/epoch_processing/test_process_sync_committee_updates.py index 0cf1e7a49..4c5ac0633 100644 --- a/tests/core/pyspec/eth2spec/test/altair/epoch_processing/test_process_sync_committee_updates.py +++ b/tests/core/pyspec/eth2spec/test/altair/epoch_processing/test_process_sync_committee_updates.py @@ -1,5 +1,5 @@ from eth2spec.test.context import ( - PHASE0, PHASE1, + PHASE0, MINIMAL, spec_state_test, with_all_phases_except, @@ -11,7 +11,7 @@ from eth2spec.test.helpers.epoch_processing import ( ) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test @with_configs([MINIMAL], reason="too slow") def test_sync_committees_progress(spec, state): diff --git a/tests/core/pyspec/eth2spec/test/altair/sanity/test_blocks.py b/tests/core/pyspec/eth2spec/test/altair/sanity/test_blocks.py index 81e0df713..9f28926d4 100644 --- a/tests/core/pyspec/eth2spec/test/altair/sanity/test_blocks.py +++ b/tests/core/pyspec/eth2spec/test/altair/sanity/test_blocks.py @@ -12,7 +12,7 @@ from eth2spec.test.helpers.sync_committee import ( compute_aggregate_sync_committee_signature, ) from eth2spec.test.context import ( - PHASE0, PHASE1, + PHASE0, with_all_phases_except, spec_state_test, ) @@ -40,46 +40,46 @@ def run_sync_committee_sanity_test(spec, state, fraction_full=1.0): yield 'post', state -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test def test_full_sync_committee_committee(spec, state): next_epoch(spec, state) yield from run_sync_committee_sanity_test(spec, state, fraction_full=1.0) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test def test_half_sync_committee_committee(spec, state): next_epoch(spec, state) yield from run_sync_committee_sanity_test(spec, state, fraction_full=0.5) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test def test_empty_sync_committee_committee(spec, state): next_epoch(spec, state) yield from run_sync_committee_sanity_test(spec, state, fraction_full=0.0) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test def test_full_sync_committee_committee_genesis(spec, state): yield from run_sync_committee_sanity_test(spec, state, fraction_full=1.0) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test def test_half_sync_committee_committee_genesis(spec, state): yield from run_sync_committee_sanity_test(spec, state, fraction_full=0.5) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test def test_empty_sync_committee_committee_genesis(spec, state): yield from run_sync_committee_sanity_test(spec, state, fraction_full=0.0) -@with_all_phases_except([PHASE0, PHASE1]) +@with_all_phases_except([PHASE0]) @spec_state_test def test_inactivity_scores(spec, state): for _ in range(spec.MIN_EPOCHS_TO_INACTIVITY_PENALTY + 2): diff --git a/tests/core/pyspec/eth2spec/test/context.py b/tests/core/pyspec/eth2spec/test/context.py index dcc8906b8..f37829ee8 100644 --- a/tests/core/pyspec/eth2spec/test/context.py +++ b/tests/core/pyspec/eth2spec/test/context.py @@ -331,6 +331,10 @@ def with_phases(phases, other_phases=None): return None run_phases = [phase] + if PHASE0 not in run_phases and ALTAIR not in run_phases: + dump_skipping_message("none of the recognized phases are executable, skipping test.") + return None + available_phases = set(run_phases) if other_phases is not None: available_phases |= set(other_phases) @@ -346,7 +350,8 @@ def with_phases(phases, other_phases=None): if ALTAIR in available_phases: phase_dir[ALTAIR] = spec_altair - # return is ignored whenever multiple phases are ran. If + # return is ignored whenever multiple phases are ran. + # This return is for test generators to emit python generators (yielding test vector outputs) if PHASE0 in run_phases: ret = fn(spec=spec_phase0, phases=phase_dir, *args, **kw) if ALTAIR in run_phases: diff --git a/tests/core/pyspec/eth2spec/test/helpers/attestations.py b/tests/core/pyspec/eth2spec/test/helpers/attestations.py index 0b3e0484a..8e8002041 100644 --- a/tests/core/pyspec/eth2spec/test/helpers/attestations.py +++ b/tests/core/pyspec/eth2spec/test/helpers/attestations.py @@ -2,10 +2,9 @@ from lru import LRU from typing import List -from eth2spec.test.context import expect_assertion_error, PHASE1, is_post_altair +from eth2spec.test.context import expect_assertion_error, is_post_altair from eth2spec.test.helpers.state import state_transition_and_sign_block, next_epoch, next_slot from eth2spec.test.helpers.block import build_empty_block_for_next_slot -from eth2spec.test.helpers.shard_transitions import get_shard_transition_of_committee from eth2spec.test.helpers.keys import privkeys from eth2spec.utils import bls from eth2spec.utils.ssz.ssz_typing import Bitlist @@ -51,7 +50,7 @@ def run_attestation_processing(spec, state, attestation, valid=True): yield 'post', state -def build_attestation_data(spec, state, slot, index, shard=None, shard_transition=None, on_time=True): +def build_attestation_data(spec, state, slot, index, shard=None, on_time=True): assert state.slot >= slot if slot == state.slot: @@ -82,32 +81,11 @@ def build_attestation_data(spec, state, slot, index, shard=None, shard_transitio target=spec.Checkpoint(epoch=spec.compute_epoch_at_slot(slot), root=epoch_boundary_root), ) - if spec.fork == PHASE1: - if shard is None: - shard = spec.compute_shard_from_committee_index(state, data.index, data.slot) - data.shard = shard - - if shard_transition is not None: - last_offset_index = len(shard_transition.shard_data_roots) - 1 - data.shard_head_root = shard_transition.shard_states[last_offset_index].latest_block_root - data.shard_transition_root = shard_transition.hash_tree_root() - else: - if on_time: - if data.slot == spec.GENESIS_SLOT: - data.shard_head_root = spec.Root() - data.shard_transition_root = spec.ShardTransition().hash_tree_root() - else: - shard_transition = spec.get_shard_transition(state, shard, shard_blocks=[]) - last_offset_index = len(shard_transition.shard_data_roots) - 1 - data.shard_head_root = shard_transition.shard_states[last_offset_index].latest_block_root - data.shard_transition_root = shard_transition.hash_tree_root() - else: - data.shard_head_root = state.shard_states[shard].latest_block_root - data.shard_transition_root = spec.Root() + # if spec.fork == SHARDING # TODO: add extra data for shard voting return data -def get_valid_on_time_attestation(spec, state, slot=None, index=None, shard_transition=None, signed=False): +def get_valid_on_time_attestation(spec, state, slot=None, index=None, signed=False): ''' Construct on-time attestation for next slot ''' @@ -121,13 +99,12 @@ def get_valid_on_time_attestation(spec, state, slot=None, index=None, shard_tran state, slot=slot, index=index, - shard_transition=shard_transition, signed=signed, on_time=True, ) -def get_valid_late_attestation(spec, state, slot=None, index=None, signed=False, shard_transition=None): +def get_valid_late_attestation(spec, state, slot=None, index=None, signed=False): ''' Construct on-time attestation for next slot ''' @@ -137,7 +114,7 @@ def get_valid_late_attestation(spec, state, slot=None, index=None, signed=False, index = 0 return get_valid_attestation(spec, state, slot=slot, index=index, - signed=signed, on_time=False, shard_transition=shard_transition) + signed=signed, on_time=False) def get_valid_attestation(spec, @@ -145,7 +122,6 @@ def get_valid_attestation(spec, slot=None, index=None, filter_participant_set=None, - shard_transition=None, signed=False, on_time=True): # If filter_participant_set filters everything, the attestation has 0 participants, and cannot be signed. @@ -156,7 +132,7 @@ def get_valid_attestation(spec, index = 0 attestation_data = build_attestation_data( - spec, state, slot=slot, index=index, shard_transition=shard_transition, on_time=on_time + spec, state, slot=slot, index=index, on_time=on_time ) beacon_committee = spec.get_beacon_committee( @@ -258,16 +234,11 @@ def next_epoch_with_attestations(spec, committees_per_slot = spec.get_committee_count_per_slot(state, spec.compute_epoch_at_slot(slot_to_attest)) if slot_to_attest >= spec.compute_start_slot_at_epoch(spec.get_current_epoch(post_state)): for index in range(committees_per_slot): - if spec.fork == PHASE1: - shard = spec.compute_shard_from_committee_index(post_state, index, slot_to_attest) - shard_transition = get_shard_transition_of_committee(spec, post_state, index) - block.body.shard_transitions[shard] = shard_transition - else: - shard_transition = None + # if spec.fork == SHARDING: TODO: add shard data to attestation, include shard headers in block cur_attestation = get_valid_attestation( spec, post_state, slot_to_attest, - shard_transition=shard_transition, index=index, signed=True, on_time=True + index=index, signed=True, on_time=True ) block.body.attestations.append(cur_attestation) diff --git a/tests/core/pyspec/eth2spec/test/helpers/block_processing.py b/tests/core/pyspec/eth2spec/test/helpers/block_processing.py index 5c8ecb36c..e2dfcfe5b 100644 --- a/tests/core/pyspec/eth2spec/test/helpers/block_processing.py +++ b/tests/core/pyspec/eth2spec/test/helpers/block_processing.py @@ -16,6 +16,8 @@ def get_process_calls(spec): lambda state, block: for_ops(state, block.body.proposer_slashings, spec.process_proposer_slashing), 'process_attester_slashing': lambda state, block: for_ops(state, block.body.attester_slashings, spec.process_attester_slashing), + 'process_shard_header': + lambda state, block: for_ops(state, block.body.shard_headers, spec.process_shard_header), 'process_attestation': lambda state, block: for_ops(state, block.body.attestations, spec.process_attestation), 'process_deposit': @@ -25,12 +27,12 @@ def get_process_calls(spec): # Altair 'process_sync_committee': lambda state, block: spec.process_sync_committee(state, block.body.sync_aggregate), - # PHASE1 + # Merge + 'process_application_payload': + lambda state, block: spec.process_application_payload(state, block.body), + # Proof of custody 'process_custody_game_operations': lambda state, block: spec.process_custody_game_operations(state, block.body), - 'process_shard_transitions': - lambda state, block: spec.process_shard_transitions( - state, block.body.shard_transitions, block.body.attestations), } diff --git a/tests/core/pyspec/eth2spec/test/helpers/epoch_processing.py b/tests/core/pyspec/eth2spec/test/helpers/epoch_processing.py index e8e3dd492..4d508d0ce 100644 --- a/tests/core/pyspec/eth2spec/test/helpers/epoch_processing.py +++ b/tests/core/pyspec/eth2spec/test/helpers/epoch_processing.py @@ -3,14 +3,20 @@ from eth2spec.test.context import is_post_altair def get_process_calls(spec): + # unrecognized processing functions will be ignored. + # This sums up the aggregate of processing functions of all phases. + # Note: make sure to explicitly remove/override a processing function in later phases, + # or the old function will stick around. return [ - # PHASE0 'process_justification_and_finalization', 'process_rewards_and_penalties', 'process_registry_updates', - 'process_reveal_deadlines', - 'process_challenge_deadlines', + 'process_reveal_deadlines', # proof of custody + 'process_challenge_deadlines', # proof of custody 'process_slashings', + 'process_pending_header.', # sharding + 'charge_confirmed_header_fees', # sharding + 'reset_pending_headers', # sharding 'process_eth1_data_reset', 'process_effective_balance_updates', 'process_slashings_reset', @@ -21,8 +27,7 @@ def get_process_calls(spec): 'process_participation_record_updates' ), 'process_sync_committee_updates', - # PHASE1 - 'process_phase_1_final_updates', + 'process_shard_epoch_increment' # sharding ] diff --git a/tests/core/pyspec/eth2spec/test/helpers/shard_transitions.py b/tests/core/pyspec/eth2spec/test/helpers/shard_transitions.py deleted file mode 100644 index d10d1ee7b..000000000 --- a/tests/core/pyspec/eth2spec/test/helpers/shard_transitions.py +++ /dev/null @@ -1,37 +0,0 @@ -from eth2spec.test.context import expect_assertion_error - - -def run_shard_transitions_processing(spec, state, shard_transitions, attestations, valid=True): - """ - Run ``process_shard_transitions``, yielding: - - pre-state ('pre') - - shard_transitions ('shard_transitions') - - attestations ('attestations') - - post-state ('post'). - If ``valid == False``, run expecting ``AssertionError`` - """ - # yield pre-state - yield 'pre', state - yield 'shard_transitions', shard_transitions - yield 'attestations', attestations - - # If the attestation is invalid, processing is aborted, and there is no post-state. - if not valid: - expect_assertion_error(lambda: spec.process_shard_transitions(state, shard_transitions, attestations)) - yield 'post', None - return - - # process crosslinks - spec.process_shard_transitions(state, shard_transitions, attestations) - - # yield post-state - yield 'post', state - - -def get_shard_transition_of_committee(spec, state, committee_index, shard_blocks=None): - if shard_blocks is None: - shard_blocks = [] - - shard = spec.compute_shard_from_committee_index(state, committee_index, state.slot) - shard_transition = spec.get_shard_transition(state, shard, shard_blocks=shard_blocks) - return shard_transition diff --git a/tests/core/pyspec/eth2spec/test/phase0/block_processing/test_process_attestation.py b/tests/core/pyspec/eth2spec/test/phase0/block_processing/test_process_attestation.py index 99a82879d..0f5eef407 100644 --- a/tests/core/pyspec/eth2spec/test/phase0/block_processing/test_process_attestation.py +++ b/tests/core/pyspec/eth2spec/test/phase0/block_processing/test_process_attestation.py @@ -2,12 +2,10 @@ from eth2spec.test.context import ( spec_state_test, always_bls, never_bls, with_all_phases, - with_all_phases_except, spec_test, low_balances, with_custom_state, single_phase, - PHASE1, ) from eth2spec.test.helpers.attestations import ( run_attestation_processing, @@ -380,7 +378,7 @@ def test_correct_after_epoch_delay(spec, state): # Incorrect head but correct source/target at different slot inclusions # -@with_all_phases_except([PHASE1]) +@with_all_phases @spec_state_test def test_incorrect_head_min_inclusion_delay(spec, state): attestation = get_valid_attestation(spec, state, signed=False) @@ -434,10 +432,7 @@ def test_incorrect_head_after_epoch_delay(spec, state): # Incorrect head and target but correct source at different slot inclusions # -# Note: current phase 1 spec checks -# `assert data.beacon_block_root == get_block_root_at_slot(state, compute_previous_slot(state.slot))` -# so this test can't pass that until phase 1 refactor is merged -@with_all_phases_except([PHASE1]) +@with_all_phases @spec_state_test def test_incorrect_head_and_target_min_inclusion_delay(spec, state): attestation = get_valid_attestation(spec, state, signed=False) @@ -494,7 +489,7 @@ def test_incorrect_head_and_target_after_epoch_delay(spec, state): # Correct head and source but incorrect target at different slot inclusions # -@with_all_phases_except([PHASE1]) +@with_all_phases @spec_state_test def test_incorrect_target_min_inclusion_delay(spec, state): attestation = get_valid_attestation(spec, state, signed=False) diff --git a/tests/core/pyspec/eth2spec/test/phase0/epoch_processing/test_process_rewards_and_penalties.py b/tests/core/pyspec/eth2spec/test/phase0/epoch_processing/test_process_rewards_and_penalties.py index f7c9b394e..cebe65e03 100644 --- a/tests/core/pyspec/eth2spec/test/phase0/epoch_processing/test_process_rewards_and_penalties.py +++ b/tests/core/pyspec/eth2spec/test/phase0/epoch_processing/test_process_rewards_and_penalties.py @@ -1,7 +1,7 @@ from eth2spec.test.context import ( spec_state_test, spec_test, with_all_phases, single_phase, - with_phases, PHASE0, PHASE1, + with_phases, PHASE0, with_custom_state, zero_activation_threshold, misc_balances, low_single_balance, @@ -103,7 +103,7 @@ def test_genesis_epoch_full_attestations_no_rewards(spec, state): assert state.balances[index] == pre_state.balances[index] -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test def test_full_attestations_random_incorrect_fields(spec, state): attestations = prepare_state_with_attestations(spec, state) diff --git a/tests/core/pyspec/eth2spec/test/phase0/rewards/test_basic.py b/tests/core/pyspec/eth2spec/test/phase0/rewards/test_basic.py index 7871d3fcf..82dbccc52 100644 --- a/tests/core/pyspec/eth2spec/test/phase0/rewards/test_basic.py +++ b/tests/core/pyspec/eth2spec/test/phase0/rewards/test_basic.py @@ -1,4 +1,4 @@ -from eth2spec.test.context import PHASE0, PHASE1, with_all_phases, with_phases, spec_state_test +from eth2spec.test.context import PHASE0, with_all_phases, with_phases, spec_state_test import eth2spec.test.helpers.rewards as rewards_helpers @@ -32,7 +32,7 @@ def test_full_but_partial_participation(spec, state): yield from rewards_helpers.run_test_full_but_partial_participation(spec, state) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test def test_one_attestation_one_correct(spec, state): yield from rewards_helpers.run_test_one_attestation_one_correct(spec, state) @@ -75,7 +75,7 @@ def test_some_very_low_effective_balances_that_did_not_attest(spec, state): # -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test def test_full_half_correct_target_incorrect_head(spec, state): yield from rewards_helpers.run_test_full_fraction_incorrect( @@ -86,7 +86,7 @@ def test_full_half_correct_target_incorrect_head(spec, state): ) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test def test_full_correct_target_incorrect_head(spec, state): yield from rewards_helpers.run_test_full_fraction_incorrect( @@ -97,7 +97,7 @@ def test_full_correct_target_incorrect_head(spec, state): ) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test def test_full_half_incorrect_target_incorrect_head(spec, state): yield from rewards_helpers.run_test_full_fraction_incorrect( @@ -108,7 +108,7 @@ def test_full_half_incorrect_target_incorrect_head(spec, state): ) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test def test_full_half_incorrect_target_correct_head(spec, state): yield from rewards_helpers.run_test_full_fraction_incorrect( @@ -119,31 +119,31 @@ def test_full_half_incorrect_target_correct_head(spec, state): ) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test def test_full_delay_one_slot(spec, state): yield from rewards_helpers.run_test_full_delay_one_slot(spec, state) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test def test_full_delay_max_slots(spec, state): yield from rewards_helpers.run_test_full_delay_max_slots(spec, state) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test def test_full_mixed_delay(spec, state): yield from rewards_helpers.run_test_full_mixed_delay(spec, state) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test def test_proposer_not_in_attestations(spec, state): yield from rewards_helpers.run_test_proposer_not_in_attestations(spec, state) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test def test_duplicate_attestations_at_later_slots(spec, state): yield from rewards_helpers.run_test_duplicate_attestations_at_later_slots(spec, state) diff --git a/tests/core/pyspec/eth2spec/test/phase0/rewards/test_leak.py b/tests/core/pyspec/eth2spec/test/phase0/rewards/test_leak.py index b2ed6f5d8..f11b2734f 100644 --- a/tests/core/pyspec/eth2spec/test/phase0/rewards/test_leak.py +++ b/tests/core/pyspec/eth2spec/test/phase0/rewards/test_leak.py @@ -1,4 +1,4 @@ -from eth2spec.test.context import PHASE0, PHASE1, with_all_phases, with_phases, spec_state_test +from eth2spec.test.context import PHASE0, with_all_phases, with_phases, spec_state_test from eth2spec.test.helpers.rewards import leaking import eth2spec.test.helpers.rewards as rewards_helpers @@ -38,7 +38,7 @@ def test_full_but_partial_participation_leak(spec, state): yield from rewards_helpers.run_test_full_but_partial_participation(spec, state) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test @leaking() def test_one_attestation_one_correct_leak(spec, state): @@ -87,7 +87,7 @@ def test_some_very_low_effective_balances_that_did_not_attest_leak(spec, state): # -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test @leaking() def test_full_half_correct_target_incorrect_head_leak(spec, state): @@ -99,7 +99,7 @@ def test_full_half_correct_target_incorrect_head_leak(spec, state): ) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test @leaking() def test_full_correct_target_incorrect_head_leak(spec, state): @@ -111,7 +111,7 @@ def test_full_correct_target_incorrect_head_leak(spec, state): ) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test @leaking() def test_full_half_incorrect_target_incorrect_head_leak(spec, state): @@ -123,7 +123,7 @@ def test_full_half_incorrect_target_incorrect_head_leak(spec, state): ) -@with_phases([PHASE0, PHASE1]) +@with_phases([PHASE0]) @spec_state_test @leaking() def test_full_half_incorrect_target_correct_head_leak(spec, state): diff --git a/tests/core/pyspec/eth2spec/test/phase0/sanity/test_blocks.py b/tests/core/pyspec/eth2spec/test/phase0/sanity/test_blocks.py index 8af0411c4..3efe07b01 100644 --- a/tests/core/pyspec/eth2spec/test/phase0/sanity/test_blocks.py +++ b/tests/core/pyspec/eth2spec/test/phase0/sanity/test_blocks.py @@ -20,14 +20,13 @@ from eth2spec.test.helpers.proposer_slashings import get_valid_proposer_slashing from eth2spec.test.helpers.attestations import get_valid_attestation from eth2spec.test.helpers.deposits import prepare_state_and_deposit from eth2spec.test.helpers.voluntary_exits import prepare_signed_exits -from eth2spec.test.helpers.shard_transitions import get_shard_transition_of_committee from eth2spec.test.helpers.multi_operations import ( run_slash_and_exit, run_test_full_random_operations, ) from eth2spec.test.context import ( - PHASE0, PHASE1, MINIMAL, + PHASE0, MINIMAL, spec_test, spec_state_test, dump_skipping_message, with_phases, with_all_phases, single_phase, expect_assertion_error, always_bls, @@ -563,7 +562,7 @@ def test_duplicate_attester_slashing(spec, state): yield 'post', None -# All AttesterSlashing tests should be adopted for Phase 1 but helper support is not yet there +# TODO All AttesterSlashing tests should be adopted for SHARDING and later but helper support is not yet there @with_all_phases @spec_state_test @@ -770,16 +769,10 @@ def test_attestation(spec, state): attestation_block = build_empty_block(spec, state, state.slot + spec.MIN_ATTESTATION_INCLUSION_DELAY) index = 0 - if spec.fork == PHASE1: - shard = spec.compute_shard_from_committee_index(state, index, state.slot) - shard_transition = get_shard_transition_of_committee(spec, state, index) - attestation_block.body.shard_transitions[shard] = shard_transition - else: - shard_transition = None + # if spec.fork == SHARDING: + # TODO add shard data to block to vote on - attestation = get_valid_attestation( - spec, state, shard_transition=shard_transition, index=index, signed=True, on_time=True - ) + attestation = get_valid_attestation(spec, state, index=index, signed=True, on_time=True) if not is_post_altair(spec): pre_current_attestations_len = len(state.current_epoch_attestations) @@ -810,9 +803,10 @@ def test_attestation(spec, state): assert spec.hash_tree_root(state.previous_epoch_participation) == pre_current_epoch_participation_root -# In phase1 a committee is computed for SHARD_COMMITTEE_PERIOD slots ago, +# After SHARDING is enabled, a committee is computed for SHARD_COMMITTEE_PERIOD slots ago, # exceeding the minimal-config randao mixes memory size. # Applies to all voluntary-exit sanity block tests. +# TODO: when integrating SHARDING tests, voluntary-exit tests may need to change. @with_all_phases @spec_state_test diff --git a/tests/core/pyspec/eth2spec/test/phase0/unittests/fork_choice/test_on_attestation.py b/tests/core/pyspec/eth2spec/test/phase0/unittests/fork_choice/test_on_attestation.py index 926ebec80..4d5f1ca16 100644 --- a/tests/core/pyspec/eth2spec/test/phase0/unittests/fork_choice/test_on_attestation.py +++ b/tests/core/pyspec/eth2spec/test/phase0/unittests/fork_choice/test_on_attestation.py @@ -1,4 +1,4 @@ -from eth2spec.test.context import PHASE0, PHASE1, ALTAIR, with_all_phases, spec_state_test +from eth2spec.test.context import PHASE0, ALTAIR, with_all_phases, spec_state_test from eth2spec.test.helpers.block import build_empty_block_for_next_slot from eth2spec.test.helpers.attestations import get_valid_attestation, sign_attestation from eth2spec.test.helpers.state import transition_to, state_transition_and_sign_block, next_epoch, next_slot @@ -23,16 +23,7 @@ def run_on_attestation(spec, state, store, attestation, valid=True): epoch=attestation.data.target.epoch, root=attestation.data.beacon_block_root, ) - elif spec.fork == PHASE1: - latest_message = spec.LatestMessage( - epoch=attestation.data.target.epoch, - root=attestation.data.beacon_block_root, - ) - shard_latest_message = spec.ShardLatestMessage( - epoch=attestation.data.target.epoch, - root=attestation.data.shard_head_root, - ) - assert store.shard_stores[attestation.data.shard].latest_messages[sample_index] == shard_latest_message + # elif spec.fork == SHARDING: TODO: check if vote count for shard blob increased as expected assert ( store.latest_messages[sample_index] == latest_message diff --git a/tests/core/pyspec/eth2spec/test/proof_of_custody/block_processing/test_process_custody_slashing.py b/tests/core/pyspec/eth2spec/test/proof_of_custody/block_processing/test_process_custody_slashing.py index 1783a5bec..2765d2980 100644 --- a/tests/core/pyspec/eth2spec/test/proof_of_custody/block_processing/test_process_custody_slashing.py +++ b/tests/core/pyspec/eth2spec/test/proof_of_custody/block_processing/test_process_custody_slashing.py @@ -9,6 +9,7 @@ from eth2spec.test.helpers.keys import privkeys from eth2spec.utils.ssz.ssz_typing import ByteList from eth2spec.test.helpers.state import get_balance, transition_to from eth2spec.test.context import ( + MINIMAL, PROOF_OF_CUSTODY, with_phases, spec_state_test, diff --git a/tests/core/pyspec/eth2spec/test/proof_of_custody/sanity/test_blocks.py b/tests/core/pyspec/eth2spec/test/proof_of_custody/sanity/test_blocks.py index 4dae918ef..b9afbc0eb 100644 --- a/tests/core/pyspec/eth2spec/test/proof_of_custody/sanity/test_blocks.py +++ b/tests/core/pyspec/eth2spec/test/proof_of_custody/sanity/test_blocks.py @@ -5,7 +5,6 @@ from eth2spec.test.context import ( MINIMAL, with_phases, spec_state_test, - only_full_crosslink, with_configs, ) from eth2spec.test.helpers.attestations import get_valid_on_time_attestation @@ -49,7 +48,6 @@ def run_beacon_block(spec, state, block, valid=True): @with_phases([PROOF_OF_CUSTODY]) @spec_state_test -@only_full_crosslink def test_with_shard_transition_with_custody_challenge_and_response(spec, state): transition_to_valid_shard_slot(spec, state) @@ -108,7 +106,6 @@ def test_early_derived_secret_reveal(spec, state): @with_phases([PROOF_OF_CUSTODY]) @spec_state_test -@only_full_crosslink def test_custody_slashing(spec, state): transition_to_valid_shard_slot(spec, state)