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/06/16 19:45:03 UTC
[plc4x] 05/05: test(plc4go/cbus): fixed more test issues
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 3f019e94b98bfe25230c536bf4b9f29df48307a8
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Jun 16 21:44:50 2023 +0200
test(plc4go/cbus): fixed more test issues
---
plc4go/internal/cbus/Connection_test.go | 2 +-
plc4go/internal/cbus/Discoverer.go | 7 +++----
plc4go/internal/cbus/Discoverer_test.go | 9 ++++++++-
plc4go/internal/cbus/MessageCodec_test.go | 14 +++++++++++++-
plc4go/internal/cbus/Reader_test.go | 14 ++++++++------
5 files changed, 33 insertions(+), 13 deletions(-)
diff --git a/plc4go/internal/cbus/Connection_test.go b/plc4go/internal/cbus/Connection_test.go
index d0924f7674..82a07cefb7 100644
--- a/plc4go/internal/cbus/Connection_test.go
+++ b/plc4go/internal/cbus/Connection_test.go
@@ -976,7 +976,7 @@ func TestConnection_sendReset(t *testing.T) {
codec := NewMessageCodec(ti, _options...)
require.NoError(t, codec.Connect())
t.Cleanup(func() {
- assert.Error(t, codec.Disconnect())
+ assert.NoError(t, codec.Disconnect())
})
fields.messageCodec = codec
},
diff --git a/plc4go/internal/cbus/Discoverer.go b/plc4go/internal/cbus/Discoverer.go
index a3648227a9..3271067ab6 100644
--- a/plc4go/internal/cbus/Discoverer.go
+++ b/plc4go/internal/cbus/Discoverer.go
@@ -216,6 +216,7 @@ func (d *Discoverer) createDeviceScanDispatcher(tcpTransportInstance *tcp.Transp
}
defer func() {
// Disconnect codec when done
+ d.log.Debug().Msg("Shutting down codec")
if err := codec.Disconnect(); err != nil {
d.log.Warn().Err(err).Msg("Error disconnecting codec")
}
@@ -237,14 +238,12 @@ func (d *Discoverer) createDeviceScanDispatcher(tcpTransportInstance *tcp.Transp
// TODO: Make this configurable
timeout := time.NewTimer(time.Second * 1)
defer utils.CleanupTimer(timeout)
- timeout.Stop()
for start := time.Now(); time.Since(start) < time.Second*5; {
timeout.Reset(time.Second * 1)
select {
case receivedMessage := <-codec.GetDefaultIncomingMessageChannel():
- if !timeout.Stop() {
- <-timeout.C
- }
+ // Cleanup, going to be resetted again
+ utils.CleanupTimer(timeout)
cbusMessage, ok := receivedMessage.(readWriteModel.CBusMessage)
if !ok {
continue
diff --git a/plc4go/internal/cbus/Discoverer_test.go b/plc4go/internal/cbus/Discoverer_test.go
index b96f45ec6f..544ac2d843 100644
--- a/plc4go/internal/cbus/Discoverer_test.go
+++ b/plc4go/internal/cbus/Discoverer_test.go
@@ -29,6 +29,7 @@ import (
"testing"
"time"
+ "github.com/apache/plc4x/plc4go/pkg/api/config"
apiModel "github.com/apache/plc4x/plc4go/pkg/api/model"
"github.com/apache/plc4x/plc4go/spi/options"
"github.com/apache/plc4x/plc4go/spi/pool"
@@ -190,12 +191,13 @@ func TestDiscoverer_createDeviceScanDispatcher(t *testing.T) {
t.Error(err)
return
}
+ t.Logf("writing out")
write, err := conn.Write([]byte("x.890050435F434E49454422\r\n"))
if err != nil {
t.Error(err)
return
}
- t.Logf("%d written", write)
+ t.Logf("%d bytes written", write)
}()
t.Cleanup(func() {
if err := listen.Close(); err != nil {
@@ -210,6 +212,9 @@ func TestDiscoverer_createDeviceScanDispatcher(t *testing.T) {
require.NoError(t, err)
instance, err := transport.CreateTransportInstance(*parse, nil, _options...)
require.NoError(t, err)
+ t.Cleanup(func() {
+ assert.NoError(t, instance.Close())
+ })
args.tcpTransportInstance = instance.(*tcp.TransportInstance)
},
},
@@ -228,7 +233,9 @@ func TestDiscoverer_createDeviceScanDispatcher(t *testing.T) {
tt.args.callback(t, event)
})
assert.NotNilf(t, dispatcher, "createDeviceScanDispatcher(%v, func())", tt.args.tcpTransportInstance)
+ t.Log("Calling dispatcher now")
dispatcher()
+ t.Log("dispatching done")
})
}
}
diff --git a/plc4go/internal/cbus/MessageCodec_test.go b/plc4go/internal/cbus/MessageCodec_test.go
index 91db4635ad..e104441a90 100644
--- a/plc4go/internal/cbus/MessageCodec_test.go
+++ b/plc4go/internal/cbus/MessageCodec_test.go
@@ -69,8 +69,9 @@ func TestMessageCodec_Send(t *testing.T) {
transport := test.NewTransport(_options...)
instance := test.NewTransportInstance(transport, _options...)
codec := NewMessageCodec(instance, _options...)
+ require.NoError(t, codec.Connect())
t.Cleanup(func() {
- assert.Error(t, codec.Disconnect())
+ assert.NoError(t, codec.Disconnect())
})
fields.DefaultCodec = codec
},
@@ -126,6 +127,7 @@ func TestMessageCodec_Receive(t *testing.T) {
transport := test.NewTransport(_options...)
instance := test.NewTransportInstance(transport, _options...)
+ require.NoError(t, instance.Connect())
codec := NewMessageCodec(instance, _options...)
t.Cleanup(func() {
assert.Error(t, codec.Disconnect())
@@ -153,6 +155,7 @@ func TestMessageCodec_Receive(t *testing.T) {
transport := test.NewTransport(_options...)
instance := test.NewTransportInstance(transport, _options...)
+ require.NoError(t, instance.Connect())
instance.FillReadBuffer([]byte("!"))
codec := NewMessageCodec(instance, _options...)
t.Cleanup(func() {
@@ -175,6 +178,7 @@ func TestMessageCodec_Receive(t *testing.T) {
transport := test.NewTransport(_options...)
instance := test.NewTransportInstance(transport, _options...)
+ require.NoError(t, instance.Connect())
instance.FillReadBuffer([]byte("@A62120\r@A62120\r"))
codec := NewMessageCodec(instance, _options...)
t.Cleanup(func() {
@@ -197,6 +201,7 @@ func TestMessageCodec_Receive(t *testing.T) {
transport := test.NewTransport(_options...)
instance := test.NewTransportInstance(transport, _options...)
+ require.NoError(t, instance.Connect())
instance.FillReadBuffer([]byte("what on earth\n\r"))
codec := NewMessageCodec(instance, _options...)
t.Cleanup(func() {
@@ -219,6 +224,7 @@ func TestMessageCodec_Receive(t *testing.T) {
transport := test.NewTransport(_options...)
instance := test.NewTransportInstance(transport, _options...)
+ require.NoError(t, instance.Connect())
instance.FillReadBuffer([]byte("AFFE!!!\r"))
codec := NewMessageCodec(instance, _options...)
t.Cleanup(func() {
@@ -273,6 +279,7 @@ func TestMessageCodec_Receive(t *testing.T) {
transport := test.NewTransport(_options...)
instance := test.NewTransportInstance(transport, _options...)
+ require.NoError(t, instance.Connect())
instance.FillReadBuffer([]byte("@1A2001!!!\r"))
codec := NewMessageCodec(instance, _options...)
t.Cleanup(func() {
@@ -295,6 +302,7 @@ func TestMessageCodec_Receive(t *testing.T) {
transport := test.NewTransport(_options...)
instance := test.NewTransportInstance(transport, _options...)
+ require.NoError(t, instance.Connect())
instance.FillReadBuffer([]byte("86040200F940380001000000000000000008000000000000000000000000FA\r\n"))
codec := NewMessageCodec(instance, _options...)
t.Cleanup(func() {
@@ -502,6 +510,7 @@ func TestMessageCodec_Receive(t *testing.T) {
transport := test.NewTransport(_options...)
instance := test.NewTransportInstance(transport, _options...)
+ require.NoError(t, instance.Connect())
instance.FillReadBuffer([]byte("0531AC0079042F0401430316000011\r\n"))
codec := NewMessageCodec(instance, _options...)
t.Cleanup(func() {
@@ -594,6 +603,7 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) {
transport := test.NewTransport(_options...)
transportInstance := test.NewTransportInstance(transport, _options...)
+ require.NoError(t, transportInstance.Connect())
codec := NewMessageCodec(transportInstance, _options...)
t.Cleanup(func() {
assert.Error(t, codec.Disconnect())
@@ -630,6 +640,7 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) {
transport := test.NewTransport(_options...)
transportInstance := test.NewTransportInstance(transport, _options...)
+ require.NoError(t, transportInstance.Connect())
codec := NewMessageCodec(transportInstance, _options...)
t.Cleanup(func() {
assert.Error(t, codec.Disconnect())
@@ -669,6 +680,7 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) {
transport := test.NewTransport(_options...)
transportInstance := test.NewTransportInstance(transport, _options...)
+ require.NoError(t, transportInstance.Connect())
codec := NewMessageCodec(transportInstance, _options...)
t.Cleanup(func() {
assert.Error(t, codec.Disconnect())
diff --git a/plc4go/internal/cbus/Reader_test.go b/plc4go/internal/cbus/Reader_test.go
index 4a4c639b80..80506ca3ec 100644
--- a/plc4go/internal/cbus/Reader_test.go
+++ b/plc4go/internal/cbus/Reader_test.go
@@ -98,7 +98,7 @@ func TestReader_Read(t *testing.T) {
},
wantAsserter: func(t *testing.T, results <-chan apiModel.PlcReadRequestResult) bool {
timer := time.NewTimer(2 * time.Second)
- defer timer.Stop()
+ defer utils.CleanupTimer(timer)
select {
case <-timer.C:
t.Fail()
@@ -115,6 +115,7 @@ func TestReader_Read(t *testing.T) {
alphaGenerator: tt.fields.alphaGenerator,
messageCodec: tt.fields.messageCodec,
tm: tt.fields.tm,
+ log: testutils.ProduceTestingLogger(t),
}
assert.Truef(t, tt.wantAsserter(t, m.Read(tt.args.ctx, tt.args.readRequest)), "Read(%v, %v)", tt.args.ctx, tt.args.readRequest)
})
@@ -150,7 +151,7 @@ func TestReader_readSync(t *testing.T) {
},
resultEvaluator: func(t *testing.T, results chan apiModel.PlcReadRequestResult) bool {
timer := time.NewTimer(2 * time.Second)
- defer timer.Stop()
+ defer utils.CleanupTimer(timer)
select {
case <-timer.C:
t.Fail()
@@ -196,7 +197,7 @@ func TestReader_readSync(t *testing.T) {
},
resultEvaluator: func(t *testing.T, results chan apiModel.PlcReadRequestResult) bool {
timer := time.NewTimer(2 * time.Second)
- defer timer.Stop()
+ defer utils.CleanupTimer(timer)
select {
case <-timer.C:
t.Fail()
@@ -220,7 +221,7 @@ func TestReader_readSync(t *testing.T) {
},
resultEvaluator: func(t *testing.T, results chan apiModel.PlcReadRequestResult) bool {
timer := time.NewTimer(2 * time.Second)
- defer timer.Stop()
+ defer utils.CleanupTimer(timer)
select {
case <-timer.C:
t.Fail()
@@ -290,7 +291,7 @@ func TestReader_readSync(t *testing.T) {
},
resultEvaluator: func(t *testing.T, results chan apiModel.PlcReadRequestResult) bool {
timer := time.NewTimer(2 * time.Second)
- defer timer.Stop()
+ defer utils.CleanupTimer(timer)
select {
case <-timer.C:
t.Fail()
@@ -350,7 +351,7 @@ func TestReader_readSync(t *testing.T) {
},
resultEvaluator: func(t *testing.T, results chan apiModel.PlcReadRequestResult) bool {
timer := time.NewTimer(2 * time.Second)
- defer timer.Stop()
+ defer utils.CleanupTimer(timer)
select {
case <-timer.C:
t.Fail()
@@ -370,6 +371,7 @@ func TestReader_readSync(t *testing.T) {
alphaGenerator: tt.fields.alphaGenerator,
messageCodec: tt.fields.messageCodec,
tm: tt.fields.tm,
+ log: testutils.ProduceTestingLogger(t),
}
m.readSync(tt.args.ctx, tt.args.readRequest, tt.args.result)
assert.True(t, tt.resultEvaluator(t, tt.args.result))