MCPcopy
hub / github.com/IBM/sarama / TestAsyncProducerOutOfRetries

Function TestAsyncProducerOutOfRetries

async_producer_test.go:916–971  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

914}
915
916func TestAsyncProducerOutOfRetries(t *testing.T) {
917 t.Skip("Enable once bug #294 is fixed.")
918
919 seedBroker := NewMockBroker(t, 1)
920 leader := NewMockBroker(t, 2)
921
922 metadataResponse := new(MetadataResponse)
923 metadataResponse.AddBroker(leader.Addr(), leader.BrokerID())
924 metadataResponse.AddTopicPartition("my_topic", 0, leader.BrokerID(), nil, nil, nil, ErrNoError)
925 seedBroker.Returns(metadataResponse)
926
927 config := NewTestConfig()
928 config.Producer.Flush.Messages = 10
929 config.Producer.Return.Successes = true
930 config.Producer.Retry.Backoff = 0
931 config.Producer.Retry.Max = 0
932 producer, err := NewAsyncProducer([]string{seedBroker.Addr()}, config)
933 if err != nil {
934 t.Fatal(err)
935 }
936
937 for range 10 {
938 producer.Input() <- &ProducerMessage{Topic: "my_topic", Key: nil, Value: StringEncoder(TestMessage)}
939 }
940
941 prodNotLeader := new(ProduceResponse)
942 prodNotLeader.AddTopicPartition("my_topic", 0, ErrNotLeaderForPartition)
943 leader.Returns(prodNotLeader)
944
945 for range 10 {
946 select {
947 case msg := <-producer.Errors():
948 if !errors.Is(msg.Err, ErrNotLeaderForPartition) {
949 t.Error(msg.Err)
950 }
951 case <-producer.Successes():
952 t.Error("Unexpected success")
953 }
954 }
955
956 seedBroker.Returns(metadataResponse)
957
958 for range 10 {
959 producer.Input() <- &ProducerMessage{Topic: "my_topic", Key: nil, Value: StringEncoder(TestMessage)}
960 }
961
962 prodSuccess := new(ProduceResponse)
963 prodSuccess.AddTopicPartition("my_topic", 0, ErrNoError)
964 leader.Returns(prodSuccess)
965
966 expectResults(t, producer, 10, 0)
967
968 leader.Close()
969 seedBroker.Close()
970 safeClose(t, producer)
971}
972
973func TestAsyncProducerRetryWithReferenceOpen(t *testing.T) {

Callers

nothing calls this directly

Calls 15

AddrMethod · 0.95
BrokerIDMethod · 0.95
ReturnsMethod · 0.95
InputMethod · 0.95
ErrorsMethod · 0.95
SuccessesMethod · 0.95
CloseMethod · 0.95
NewMockBrokerFunction · 0.85
StringEncoderTypeAlias · 0.85
expectResultsFunction · 0.85
AddBrokerMethod · 0.80
FatalMethod · 0.80

Tested by

no test coverage detected