mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-08 01:05:47 +00:00
Ensure attestation val. check parent.slot
As per comments by Danny Ryan on PR#33
This commit is contained in:
@@ -169,6 +169,7 @@ pub fn setup_attestation_validation_test(shard_id: u16, attester_count: usize)
|
||||
.map(|i| Hash256::from(i as u64))
|
||||
.collect();
|
||||
let attestation_slot = block_slot - 1;
|
||||
let parent_block_slot = attestation_slot;
|
||||
let last_justified_slot = attestation_slot - 1;
|
||||
let justified_block_hash = Hash256::from("justified_block".as_bytes());
|
||||
let shard_block_hash = Hash256::from("shard_block".as_bytes());
|
||||
@@ -204,6 +205,7 @@ pub fn setup_attestation_validation_test(shard_id: u16, attester_count: usize)
|
||||
|
||||
let context: AttestationValidationContext<MemoryDB> = AttestationValidationContext {
|
||||
block_slot,
|
||||
parent_block_slot,
|
||||
cycle_length,
|
||||
last_justified_slot,
|
||||
parent_hashes: parent_hashes.clone(),
|
||||
|
||||
@@ -33,22 +33,32 @@ fn test_attestation_validation_valid() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_attestation_validation_invalid_slot_too_high() {
|
||||
fn test_attestation_validation_invalid_parent_slot_too_high() {
|
||||
let mut rig = generic_rig();
|
||||
|
||||
rig.attestation.slot = rig.context.block_slot + 1;
|
||||
rig.context.parent_block_slot = rig.attestation.slot - 1;
|
||||
|
||||
let result = rig.context.validate_attestation(&rig.attestation);
|
||||
assert_eq!(result, Err(AttestationValidationError::SlotTooHigh));
|
||||
assert_eq!(result, Err(AttestationValidationError::ParentSlotTooHigh));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_attestation_validation_invalid_slot_too_low() {
|
||||
fn test_attestation_validation_invalid_block_slot_too_high() {
|
||||
let mut rig = generic_rig();
|
||||
|
||||
rig.context.block_slot = rig.attestation.slot - 1;
|
||||
|
||||
let result = rig.context.validate_attestation(&rig.attestation);
|
||||
assert_eq!(result, Err(AttestationValidationError::BlockSlotTooHigh));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_attestation_validation_invalid_block_slot_too_low() {
|
||||
let mut rig = generic_rig();
|
||||
|
||||
rig.attestation.slot = rig.context.block_slot - u64::from(rig.context.cycle_length) - 2;
|
||||
let result = rig.context.validate_attestation(&rig.attestation);
|
||||
assert_eq!(result, Err(AttestationValidationError::SlotTooLow));
|
||||
assert_eq!(result, Err(AttestationValidationError::BlockSlotTooLow));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user