You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2023/05/05 11:00:34 UTC
[plc4x] 02/03: fix(plc4go/spi): avoid test transport getting stuck on a endless loop when filling
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 6b8da79620d81a54dff7531c5ceddb14e6e219b3
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri May 5 12:20:17 2023 +0200
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 53535522c6..1085eb8ca1 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 3d403b9172..130d8957d0 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 63c776e6d8..995bd969dc 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) {