diff --git a/plc4go/internal/cbus/MessageCodec_test.go b/plc4go/internal/cbus/MessageCodec_test.go index dcec75f1840..99e0b9a22b4 100644 --- a/plc4go/internal/cbus/MessageCodec_test.go +++ b/plc4go/internal/cbus/MessageCodec_test.go @@ -128,10 +128,7 @@ func TestMessageCodec_Receive(t *testing.T) { DefaultCodec: NewMessageCodec(func() transports.TransportInstance { transport := test.NewTransport() transportInstance := test.NewTransportInstance(transport) - if err := transportInstance.FillReadBuffer([]byte("!")); err != nil { - t.Error(err) - return nil - } + transportInstance.FillReadBuffer([]byte("!")) return transportInstance }()), requestContext: requestContext, @@ -156,10 +153,7 @@ func TestMessageCodec_Receive(t *testing.T) { DefaultCodec: NewMessageCodec(func() transports.TransportInstance { transport := test.NewTransport() transportInstance := test.NewTransportInstance(transport) - if err := transportInstance.FillReadBuffer([]byte("@A62120\r@A62120\r")); err != nil { - t.Error(err) - return nil - } + transportInstance.FillReadBuffer([]byte("@A62120\r@A62120\r")) return transportInstance }()), requestContext: requestContext, @@ -178,10 +172,7 @@ func TestMessageCodec_Receive(t *testing.T) { DefaultCodec: NewMessageCodec(func() transports.TransportInstance { transport := test.NewTransport() transportInstance := test.NewTransportInstance(transport) - if err := transportInstance.FillReadBuffer([]byte("what on earth\n\r")); err != nil { - t.Error(err) - return nil - } + transportInstance.FillReadBuffer([]byte("what on earth\n\r")) return transportInstance }()), requestContext: requestContext, @@ -200,10 +191,7 @@ func TestMessageCodec_Receive(t *testing.T) { DefaultCodec: NewMessageCodec(func() transports.TransportInstance { transport := test.NewTransport() transportInstance := test.NewTransportInstance(transport) - if err := transportInstance.FillReadBuffer([]byte("AFFE!!!\r")); err != nil { - t.Error(err) - return nil - } + transportInstance.FillReadBuffer([]byte("AFFE!!!\r")) return transportInstance }()), requestContext: requestContext, @@ -228,10 +216,7 @@ func TestMessageCodec_Receive(t *testing.T) { DefaultCodec: NewMessageCodec(func() transports.TransportInstance { transport := test.NewTransport() transportInstance := test.NewTransportInstance(transport) - if err := transportInstance.FillReadBuffer([]byte("@1A2001!!!\r")); err != nil { - t.Error(err) - return nil - } + transportInstance.FillReadBuffer([]byte("@1A2001!!!\r")) return transportInstance }()), requestContext: requestContext, @@ -269,10 +254,7 @@ func TestMessageCodec_Receive(t *testing.T) { DefaultCodec: NewMessageCodec(func() transports.TransportInstance { transport := test.NewTransport() transportInstance := test.NewTransportInstance(transport) - if err := transportInstance.FillReadBuffer([]byte("86040200F940380001000000000000000008000000000000000000000000FA\r\n")); err != nil { - t.Error(err) - return nil - } + transportInstance.FillReadBuffer([]byte("86040200F940380001000000000000000008000000000000000000000000FA\r\n")) return transportInstance }()), requestContext: requestContext, @@ -468,10 +450,7 @@ func TestMessageCodec_Receive(t *testing.T) { DefaultCodec: NewMessageCodec(func() transports.TransportInstance { transport := test.NewTransport() transportInstance := test.NewTransportInstance(transport) - if err := transportInstance.FillReadBuffer([]byte("0531AC0079042F0401430316000011\r\n")); err != nil { - t.Error(err) - return nil - } + transportInstance.FillReadBuffer([]byte("0531AC0079042F0401430316000011\r\n")) return transportInstance }()), requestContext: requestContext, @@ -572,8 +551,7 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) { assert.Error(t, err) assert.Nil(t, msg) // Now we add a confirmation - err = transportInstance.FillReadBuffer([]byte("i.")) - assert.NoError(t, err) + transportInstance.FillReadBuffer([]byte("i.")) // We should wait for more data, so no error, no message msg, err = codec.Receive() @@ -581,8 +559,7 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) { assert.Nil(t, msg) // Now we fill in the payload - err = transportInstance.FillReadBuffer([]byte("86FD0201078900434C495053414C20C2\r\n")) - assert.NoError(t, err) + transportInstance.FillReadBuffer([]byte("86FD0201078900434C495053414C20C2\r\n")) // We should wait for more data, so no error, no message msg, err = codec.Receive() @@ -605,8 +582,7 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) { assert.Error(t, err) assert.Nil(t, msg) // Now we add a confirmation - err = transportInstance.FillReadBuffer([]byte("i.")) - assert.NoError(t, err) + transportInstance.FillReadBuffer([]byte("i.")) for i := 0; i < 8; i++ { t.Logf("%d try", i+1) @@ -617,8 +593,7 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) { } // Now we fill in the payload - err = transportInstance.FillReadBuffer([]byte("86FD0201078900434C495053414C20C2\r\n")) - assert.NoError(t, err) + transportInstance.FillReadBuffer([]byte("86FD0201078900434C495053414C20C2\r\n")) // We should wait for more data, so no error, no message msg, err = codec.Receive() @@ -641,8 +616,7 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) { assert.Error(t, err) assert.Nil(t, msg) // Now we add a confirmation - err = transportInstance.FillReadBuffer([]byte("i.")) - assert.NoError(t, err) + transportInstance.FillReadBuffer([]byte("i.")) for i := 0; i < 16; i++ { t.Logf("%d try", i+1) @@ -663,8 +637,7 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) { } // Now we fill in the payload - err = transportInstance.FillReadBuffer([]byte("86FD0201078900434C495053414C20C2\r\n")) - assert.NoError(t, err) + transportInstance.FillReadBuffer([]byte("86FD0201078900434C495053414C20C2\r\n")) // We should wait for more data, so no error, no message msg, err = codec.Receive() diff --git a/plc4go/spi/default/DefaultCodec.go b/plc4go/spi/default/DefaultCodec.go index ec70c0ef9a3..c564aedd3eb 100644 --- a/plc4go/spi/default/DefaultCodec.go +++ b/plc4go/spi/default/DefaultCodec.go @@ -227,6 +227,7 @@ func (m *defaultCodec) TimeoutExpectations(now time.Time) { func (m *defaultCodec) HandleMessages(message spi.Message) bool { messageHandled := false + log.Trace().Msgf("Current number of expectations: %d", len(m.expectations)) for index, expectation := range m.expectations { // Check if the current message matches the expectations // If it does, let it handle the message. diff --git a/plc4go/spi/testutils/DriverTestRunner.go b/plc4go/spi/testutils/DriverTestRunner.go index 9ee445e7ccd..e854ec94655 100644 --- a/plc4go/spi/testutils/DriverTestRunner.go +++ b/plc4go/spi/testutils/DriverTestRunner.go @@ -78,9 +78,9 @@ func WithRootTypeParser(rootTypeParser func(utils.ReadBufferByteBased) (interfac type TestTransportInstance interface { transports.TransportInstance - FillReadBuffer(data []uint8) error + FillReadBuffer(data []byte) GetNumDrainableBytes() uint32 - DrainWriteBuffer(numBytes uint32) ([]uint8, error) + DrainWriteBuffer(numBytes uint32) []byte } type withRootTypeParser struct { @@ -305,19 +305,16 @@ func (m DriverTestsuite) ExecuteStep(connection plc4go.PlcConnection, testcase * for testTransportInstance.GetNumDrainableBytes() < expectedRawOutputLength { if time.Now().Sub(now) > 2*time.Second { drainableBytes := testTransportInstance.GetNumDrainableBytes() - actualRawOutput, _ := testTransportInstance.DrainWriteBuffer(drainableBytes) + actualRawOutput := testTransportInstance.DrainWriteBuffer(drainableBytes) return errors.Errorf("error getting bytes from transport. Not enough data available: actual(%d)