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))