Merge pull request #454 from status-im/justification-finalization-unit-tests

Fix and activate the justification and finalization unit tests.
This commit is contained in:
Jacek Sieka 2019-09-26 13:41:08 +02:00 committed by GitHub
commit 6d7af234c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 7 deletions

View File

@ -23,7 +23,8 @@ import # Refactor state transition unit tests
./spec_block_processing/test_genesis, ./spec_block_processing/test_genesis,
./spec_block_processing/test_process_deposits, ./spec_block_processing/test_process_deposits,
./spec_block_processing/test_process_attestation, ./spec_block_processing/test_process_attestation,
./spec_epoch_processing/test_process_crosslinks ./spec_epoch_processing/test_process_crosslinks,
./spec_epoch_processing/test_process_justification_and_finalization
import # Official fixtures that don't require SSZ parsing of invalid BLS signatures import # Official fixtures that don't require SSZ parsing of invalid BLS signatures
# https://github.com/status-im/nim-beacon-chain/issues/374 # https://github.com/status-im/nim-beacon-chain/issues/374

View File

@ -29,18 +29,19 @@ iterator getShardsForSlot(state: BeaconState, slot: Slot): Shard =
yield shard + Shard(i) yield shard + Shard(i)
proc addMockAttestations*( proc addMockAttestations*(
state: BeaconState, epoch: Epoch, state: var BeaconState, epoch: Epoch,
source, target: Checkpoint, source, target: Checkpoint,
sufficient_support = false sufficient_support = false
) = ) =
# We must be at the end of the epoch # We must be at the end of the epoch
doAssert (state.slot + 1) mod SLOTS_PER_EPOCH == 0 doAssert (state.slot + 1) mod SLOTS_PER_EPOCH == 0
var attestations: seq[PendingAttestation] # Alias the attestations container
var attestations: ptr seq[PendingAttestation]
if state.get_current_epoch() == epoch: if state.get_current_epoch() == epoch:
attestations = state.current_epoch_attestations attestations = state.current_epoch_attestations.addr
elif state.get_previous_epoch() == epoch: elif state.get_previous_epoch() == epoch:
attestations = state.previous_epoch_attestations attestations = state.previous_epoch_attestations.addr
else: else:
raise newException(ValueError, &"Cannot include attestations from epoch {state.get_current_epoch()} in epoch {epoch}") raise newException(ValueError, &"Cannot include attestations from epoch {state.get_current_epoch()} in epoch {epoch}")
@ -79,7 +80,7 @@ proc addMockAttestations*(
if idx != -1: if idx != -1:
aggregation_bits[idx] = false aggregation_bits[idx] = false
attestations.add PendingAttestation( attestations[].add PendingAttestation(
aggregation_bits: aggregation_bits, aggregation_bits: aggregation_bits,
data: AttestationData( data: AttestationData(
beacon_block_root: [byte 0xFF] * 32, # Irrelevant for testing beacon_block_root: [byte 0xFF] * 32, # Irrelevant for testing

View File

@ -51,7 +51,7 @@ proc finalizeOn234(state: var BeaconState, epoch: Epoch, sufficient_support: boo
# mock the 2nd latest epoch as justifiable, with 4th as the source # mock the 2nd latest epoch as justifiable, with 4th as the source
addMockAttestations( addMockAttestations(
state, state,
epoch = epoch - 1, epoch = epoch - 2,
source = c4, source = c4,
target = c2, target = c2,
sufficient_support = sufficient_support sufficient_support = sufficient_support