Search in sources :

Example 21 with ValidationResult

use of io.libp2p.core.pubsub.ValidationResult in project teku by ConsenSys.

the class GossipHandlerTest method apply_bufferCapacityExceedsMaxSize.

@Test
public void apply_bufferCapacityExceedsMaxSize() {
    ByteBuf data = Unpooled.buffer(GOSSIP_MAX_SIZE + 1).writeBytes(new byte[GOSSIP_MAX_SIZE]);
    final MockMessageApi message = new MockMessageApi(data, topic);
    final SafeFuture<ValidationResult> result = gossipHandler.apply(message);
    assertThat(result).isCompletedWithValue(ValidationResult.Valid);
}
Also used : MockMessageApi(tech.pegasys.teku.network.p2p.jvmlibp2p.MockMessageApi) ByteBuf(io.netty.buffer.ByteBuf) ValidationResult(io.libp2p.core.pubsub.ValidationResult) Test(org.junit.jupiter.api.Test)

Example 22 with ValidationResult

use of io.libp2p.core.pubsub.ValidationResult in project teku by ConsenSys.

the class AggregateTopicHandlerTest method handleMessage_savedForFuture.

@Test
public void handleMessage_savedForFuture() {
    final ValidateableAttestation aggregate = ValidateableAttestation.aggregateFromValidator(spec, dataStructureUtil.randomSignedAggregateAndProof());
    when(processor.process(aggregate)).thenReturn(SafeFuture.completedFuture(InternalValidationResult.SAVE_FOR_FUTURE));
    final SafeFuture<ValidationResult> result = topicHandler.handleMessage(topicHandler.prepareMessage(gossipEncoding.encode(aggregate.getSignedAggregateAndProof())));
    asyncRunner.executeQueuedActions();
    assertThat(result).isCompletedWithValue(ValidationResult.Ignore);
}
Also used : ValidateableAttestation(tech.pegasys.teku.spec.datastructures.attestation.ValidateableAttestation) ValidationResult(io.libp2p.core.pubsub.ValidationResult) InternalValidationResult(tech.pegasys.teku.statetransition.validation.InternalValidationResult) Test(org.junit.jupiter.api.Test)

Example 23 with ValidationResult

use of io.libp2p.core.pubsub.ValidationResult in project teku by ConsenSys.

the class AggregateTopicHandlerTest method handleMessage_invalidAggregate.

@Test
public void handleMessage_invalidAggregate() {
    final ValidateableAttestation aggregate = ValidateableAttestation.aggregateFromValidator(spec, dataStructureUtil.randomSignedAggregateAndProof());
    when(processor.process(aggregate)).thenReturn(SafeFuture.completedFuture(InternalValidationResult.reject("Nope")));
    final SafeFuture<ValidationResult> result = topicHandler.handleMessage(topicHandler.prepareMessage(gossipEncoding.encode(aggregate.getSignedAggregateAndProof())));
    asyncRunner.executeQueuedActions();
    assertThat(result).isCompletedWithValue(ValidationResult.Invalid);
}
Also used : ValidateableAttestation(tech.pegasys.teku.spec.datastructures.attestation.ValidateableAttestation) ValidationResult(io.libp2p.core.pubsub.ValidationResult) InternalValidationResult(tech.pegasys.teku.statetransition.validation.InternalValidationResult) Test(org.junit.jupiter.api.Test)

Example 24 with ValidationResult

use of io.libp2p.core.pubsub.ValidationResult in project teku by ConsenSys.

the class AttesterSlashingTopicHandlerTest method handleMessage_rejectedSlashing.

@Test
public void handleMessage_rejectedSlashing() {
    final AttesterSlashing slashing = dataStructureUtil.randomAttesterSlashing();
    when(processor.process(slashing)).thenReturn(SafeFuture.completedFuture(InternalValidationResult.reject("Nope")));
    Bytes serialized = gossipEncoding.encode(slashing);
    final SafeFuture<ValidationResult> result = topicHandler.handleMessage(topicHandler.prepareMessage(serialized));
    asyncRunner.executeQueuedActions();
    assertThat(result).isCompletedWithValue(ValidationResult.Invalid);
}
Also used : Bytes(org.apache.tuweni.bytes.Bytes) AttesterSlashing(tech.pegasys.teku.spec.datastructures.operations.AttesterSlashing) ValidationResult(io.libp2p.core.pubsub.ValidationResult) InternalValidationResult(tech.pegasys.teku.statetransition.validation.InternalValidationResult) Test(org.junit.jupiter.api.Test)

Example 25 with ValidationResult

use of io.libp2p.core.pubsub.ValidationResult in project teku by ConsenSys.

the class AttesterSlashingTopicHandlerTest method handleMessage_ignoredSlashing.

@Test
public void handleMessage_ignoredSlashing() {
    final AttesterSlashing slashing = dataStructureUtil.randomAttesterSlashing();
    when(processor.process(slashing)).thenReturn(SafeFuture.completedFuture(InternalValidationResult.IGNORE));
    Bytes serialized = gossipEncoding.encode(slashing);
    final SafeFuture<ValidationResult> result = topicHandler.handleMessage(topicHandler.prepareMessage(serialized));
    asyncRunner.executeQueuedActions();
    assertThat(result).isCompletedWithValue(ValidationResult.Ignore);
}
Also used : Bytes(org.apache.tuweni.bytes.Bytes) AttesterSlashing(tech.pegasys.teku.spec.datastructures.operations.AttesterSlashing) ValidationResult(io.libp2p.core.pubsub.ValidationResult) InternalValidationResult(tech.pegasys.teku.statetransition.validation.InternalValidationResult) Test(org.junit.jupiter.api.Test)

Aggregations

ValidationResult (io.libp2p.core.pubsub.ValidationResult)36 Test (org.junit.jupiter.api.Test)34 InternalValidationResult (tech.pegasys.teku.statetransition.validation.InternalValidationResult)29 Bytes (org.apache.tuweni.bytes.Bytes)28 ValidateableAttestation (tech.pegasys.teku.spec.datastructures.attestation.ValidateableAttestation)8 MockMessageApi (tech.pegasys.teku.network.p2p.jvmlibp2p.MockMessageApi)6 AttestationGenerator (tech.pegasys.teku.core.AttestationGenerator)4 SignedBeaconBlock (tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock)4 StateAndBlockSummary (tech.pegasys.teku.spec.datastructures.blocks.StateAndBlockSummary)4 UInt64 (tech.pegasys.teku.infrastructure.unsigned.UInt64)3 CompletionException (java.util.concurrent.CompletionException)2 DecodingException (tech.pegasys.teku.networking.eth2.gossip.encoding.DecodingException)2 AttesterSlashing (tech.pegasys.teku.spec.datastructures.operations.AttesterSlashing)2 ProposerSlashing (tech.pegasys.teku.spec.datastructures.operations.ProposerSlashing)2 SignedVoluntaryExit (tech.pegasys.teku.spec.datastructures.operations.SignedVoluntaryExit)2 Preconditions (com.google.common.base.Preconditions)1 PubsubApi (io.libp2p.core.pubsub.PubsubApi)1 PubsubApiKt (io.libp2p.core.pubsub.PubsubApiKt)1 PubsubPublisherApi (io.libp2p.core.pubsub.PubsubPublisherApi)1 FastIdSeenCache (io.libp2p.pubsub.FastIdSeenCache)1