From 6b8da79620d81a54dff7531c5ceddb14e6e219b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20R=C3=BChl?= Date: Fri, 5 May 2023 12:20:17 +0200 Subject: [PATCH] fix(plc4go/spi): avoid test transport getting stuck on a endless loop when filling --- plc4go/internal/cbus/MessageCodec.go | 2 +- plc4go/internal/cbus/MessageCodec_test.go | 14 +++++++------- plc4go/spi/transports/test/Transport.go | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/plc4go/internal/cbus/MessageCodec.go b/plc4go/internal/cbus/MessageCodec.go index 53535522c6a..1085eb8ca14 100644 --- a/plc4go/internal/cbus/MessageCodec.go +++ b/plc4go/internal/cbus/MessageCodec.go @@ -116,7 +116,7 @@ func (m *MessageCodec) Receive() (spi.Message, error) { return true } }); err != nil { - return nil, errors.Wrap(err, "error filling buffer") + log.Debug().Err(err).Msg("Error filling buffer") } } log.Trace().Msg("Buffer filled") diff --git a/plc4go/internal/cbus/MessageCodec_test.go b/plc4go/internal/cbus/MessageCodec_test.go index 3d403b9172e..130d8957d0c 100644 --- a/plc4go/internal/cbus/MessageCodec_test.go +++ b/plc4go/internal/cbus/MessageCodec_test.go @@ -120,7 +120,7 @@ func TestMessageCodec_Receive(t *testing.T) { hashEncountered: 0, currentlyReportedServerErrors: 0, }, - wantErr: assert.Error, + wantErr: assert.NoError, }, { name: "checksum error", @@ -547,8 +547,8 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) { var msg spi.Message var err error msg, err = codec.Receive() - // No data yet so this should error - assert.Error(t, err) + // No data yet so this should return no error and no data + assert.NoError(t, err) assert.Nil(t, msg) // Now we add a confirmation transportInstance.FillReadBuffer([]byte("i.")) @@ -578,8 +578,8 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) { var msg spi.Message var err error msg, err = codec.Receive() - // No data yet so this should error - assert.Error(t, err) + // No data yet so this should return no error and no data + assert.NoError(t, err) assert.Nil(t, msg) // Now we add a confirmation transportInstance.FillReadBuffer([]byte("i.")) @@ -612,8 +612,8 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) { var msg spi.Message var err error msg, err = codec.Receive() - // No data yet so this should error - assert.Error(t, err) + // No data yet so this should return no error and no data + assert.NoError(t, err) assert.Nil(t, msg) // Now we add a confirmation transportInstance.FillReadBuffer([]byte("i.")) diff --git a/plc4go/spi/transports/test/Transport.go b/plc4go/spi/transports/test/Transport.go index 63c776e6d85..995bd969dc1 100644 --- a/plc4go/spi/transports/test/Transport.go +++ b/plc4go/spi/transports/test/Transport.go @@ -128,8 +128,8 @@ func (m *TransportInstance) FillBuffer(until func(pos uint, currentByte byte, re } func (m *TransportInstance) PeekReadableBytes(numBytes uint32) ([]byte, error) { - log.Trace().Msgf("Peek %d readable bytes", numBytes) availableBytes := uint32(math.Min(float64(numBytes), float64(len(m.readBuffer)))) + log.Trace().Msgf("Peek %d readable bytes (%d available bytes)", numBytes, availableBytes) var err error if availableBytes != numBytes { err = errors.New("not enough bytes available") @@ -137,7 +137,7 @@ func (m *TransportInstance) PeekReadableBytes(numBytes uint32) ([]byte, error) { if availableBytes == 0 { return nil, err } - return m.readBuffer[0:availableBytes], nil + return m.readBuffer[0:availableBytes], err } func (m *TransportInstance) Read(numBytes uint32) ([]byte, error) {