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/15 09:21:00 UTC

[plc4x] branch develop updated: test(plc4go): streamline ...options production

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


The following commit(s) were added to refs/heads/develop by this push:
     new 4e205c7e20 test(plc4go): streamline ...options production
4e205c7e20 is described below

commit 4e205c7e20bbc5fdd20649e9018849188782b4af
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Jun 15 11:20:51 2023 +0200

    test(plc4go): streamline ...options production
---
 plc4go/internal/cbus/Browser_test.go             |  23 +--
 plc4go/internal/cbus/CBusMessageMapper_test.go   |  22 +++
 plc4go/internal/cbus/Connection_test.go          | 238 ++++++++---------------
 plc4go/internal/cbus/Discoverer_test.go          |   8 +-
 plc4go/internal/cbus/Driver_test.go              |   2 +-
 plc4go/internal/cbus/MessageCodec_test.go        | 133 +++++--------
 plc4go/internal/cbus/Reader_test.go              | 141 +++++---------
 plc4go/pkg/api/cache/connectionContainer_test.go |   6 +-
 plc4go/spi/pool/WorkerPool.go                    |  26 +--
 plc4go/spi/testutils/TestUtils.go                |  16 ++
 10 files changed, 245 insertions(+), 370 deletions(-)

diff --git a/plc4go/internal/cbus/Browser_test.go b/plc4go/internal/cbus/Browser_test.go
index 3d3d813143..377e5b4462 100644
--- a/plc4go/internal/cbus/Browser_test.go
+++ b/plc4go/internal/cbus/Browser_test.go
@@ -22,7 +22,6 @@ package cbus
 import (
 	"context"
 	"fmt"
-	"github.com/apache/plc4x/plc4go/spi/pool"
 	"net/url"
 	"sync"
 	"sync/atomic"
@@ -35,7 +34,6 @@ import (
 	readWriteModel "github.com/apache/plc4x/plc4go/protocols/cbus/readwrite/model"
 	_default "github.com/apache/plc4x/plc4go/spi/default"
 	spiModel "github.com/apache/plc4x/plc4go/spi/model"
-	"github.com/apache/plc4x/plc4go/spi/options"
 	"github.com/apache/plc4x/plc4go/spi/testutils"
 	"github.com/apache/plc4x/plc4go/spi/transports"
 	"github.com/apache/plc4x/plc4go/spi/transports/test"
@@ -87,15 +85,11 @@ func TestBrowser_BrowseQuery(t *testing.T) {
 				query:     NewUnitInfoQuery(readWriteModel.NewUnitAddress(2), nil, 1),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
-
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				t.Cleanup(func() {
 					assert.NoError(t, transportInstance.Close())
@@ -160,7 +154,7 @@ func TestBrowser_BrowseQuery(t *testing.T) {
 				})
 				err = transport.AddPreregisteredInstances(transportUrl, transportInstance)
 				require.NoError(t, err)
-				driver := NewDriver(loggerOption)
+				driver := NewDriver(_options...)
 				connectionConnectResult := <-driver.GetConnection(transportUrl, map[string]transports.Transport{"test": transport}, map[string][]string{})
 				if err := connectionConnectResult.GetErr(); err != nil {
 					t.Error(err)
@@ -358,14 +352,7 @@ func TestBrowser_getInstalledUnitAddressBytes(t *testing.T) {
 				ctx: context.Background(),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom options for that
-				_options := []options.WithOption{
-					options.WithCustomLogger(logger),
-					pool.WithExecutorOptionTracerWorkers(true),
-				}
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
diff --git a/plc4go/internal/cbus/CBusMessageMapper_test.go b/plc4go/internal/cbus/CBusMessageMapper_test.go
index 30c3a32b09..5f6fbe1262 100644
--- a/plc4go/internal/cbus/CBusMessageMapper_test.go
+++ b/plc4go/internal/cbus/CBusMessageMapper_test.go
@@ -1471,6 +1471,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)))),
 				)
 				t.Cleanup(func() {
@@ -1542,6 +1543,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -1617,6 +1619,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -1681,6 +1684,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -1735,6 +1739,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -1792,6 +1797,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -1869,6 +1875,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -1964,6 +1971,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2022,6 +2030,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2076,6 +2085,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2130,6 +2140,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2184,6 +2195,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2238,6 +2250,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2312,6 +2325,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2366,6 +2380,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2420,6 +2435,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2474,6 +2490,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2528,6 +2545,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2582,6 +2600,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2652,6 +2671,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2706,6 +2726,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
@@ -2760,6 +2781,7 @@ func TestMapEncodedReply(t *testing.T) {
 				transactionManager := transactions.NewRequestTransactionManager(
 					1,
 					options.WithCustomLogger(testutils.ProduceTestingLogger(t)),
+					options.WithPassLoggerToModel(true),
 					transactions.WithCustomExecutor(
 						pool.NewFixedSizeExecutor(10, 50, options.WithCustomLogger(testutils.ProduceTestingLogger(t)), pool.WithExecutorOptionTracerWorkers(true)),
 					),
diff --git a/plc4go/internal/cbus/Connection_test.go b/plc4go/internal/cbus/Connection_test.go
index a70456ac05..4a39a2d69a 100644
--- a/plc4go/internal/cbus/Connection_test.go
+++ b/plc4go/internal/cbus/Connection_test.go
@@ -178,18 +178,14 @@ func TestConnection_ConnectWithContext(t *testing.T) {
 			},
 			args: args{ctx: context.Background()},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				// Build the default connection
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
-				transport := test.NewTransport(loggerOption)
-				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
+				transport := test.NewTransport(_options...)
+				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -854,16 +850,13 @@ func TestConnection_fireConnectionError(t *testing.T) {
 		{
 			name: "instant connect",
 			setup: func(t *testing.T, fields *fields, args *args) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
-				transport := test.NewTransport(loggerOption)
-				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
+				transport := test.NewTransport(_options...)
+				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -881,16 +874,13 @@ func TestConnection_fireConnectionError(t *testing.T) {
 				},
 			},
 			setup: func(t *testing.T, fields *fields, args *args) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				loggerOption := options.WithCustomLogger(logger)
-
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
-				transport := test.NewTransport(loggerOption)
-				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
+				transport := test.NewTransport(_options...)
+				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -968,17 +958,13 @@ func TestConnection_sendCalDataWrite(t *testing.T) {
 				}(),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
-				transport := test.NewTransport(loggerOption)
-				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
+				transport := test.NewTransport(_options...)
+				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -1049,16 +1035,13 @@ func TestConnection_sendReset(t *testing.T) {
 				sendOutErrorNotification: false,
 			},
 			setup: func(t *testing.T, fields *fields, args *args) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				loggerOption := options.WithCustomLogger(logger)
-
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
-				transport := test.NewTransport(loggerOption)
-				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
+				transport := test.NewTransport(_options...)
+				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -1127,18 +1110,14 @@ func TestConnection_setApplicationFilter(t *testing.T) {
 				}(),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				// Setup connection
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
-				transport := test.NewTransport(loggerOption)
-				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
+				transport := test.NewTransport(_options...)
+				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -1207,18 +1186,14 @@ func TestConnection_setInterface1PowerUpSettings(t *testing.T) {
 				}(),
 			},
 			setup: func(t *testing.T, fields *fields, args *args) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				// Setup connection
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
-				transport := test.NewTransport(loggerOption)
-				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
+				transport := test.NewTransport(_options...)
+				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -1287,18 +1262,14 @@ func TestConnection_setInterfaceOptions1(t *testing.T) {
 				}(),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				// Setup connection
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
-				transport := test.NewTransport(loggerOption)
-				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
+				transport := test.NewTransport(_options...)
+				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -1367,18 +1338,14 @@ func TestConnection_setInterfaceOptions3(t *testing.T) {
 				}(),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				// Setup connection
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
-				transport := test.NewTransport(loggerOption)
-				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
+				transport := test.NewTransport(_options...)
+				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -1436,18 +1403,14 @@ func TestConnection_setupConnection(t *testing.T) {
 				ch:  make(chan plc4go.PlcConnectionConnectResult, 1),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				// Setup connection
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
-				transport := test.NewTransport(loggerOption)
-				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
+				transport := test.NewTransport(_options...)
+				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -1461,19 +1424,15 @@ func TestConnection_setupConnection(t *testing.T) {
 				ch:  make(chan plc4go.PlcConnectionConnectResult, 1),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				// Build the default connection
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
 
 				// Build the message codec
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				ti, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				ti, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -1495,7 +1454,7 @@ func TestConnection_setupConnection(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
@@ -1511,19 +1470,15 @@ func TestConnection_setupConnection(t *testing.T) {
 				ch:  make(chan plc4go.PlcConnectionConnectResult, 1),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				// Build the default connection
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
 
 				// Build the message codec
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				ti, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				ti, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -1557,7 +1512,7 @@ func TestConnection_setupConnection(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
@@ -1573,19 +1528,15 @@ func TestConnection_setupConnection(t *testing.T) {
 				ch:  make(chan plc4go.PlcConnectionConnectResult, 1),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				// Build the default connection
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
 
 				// Build the message codec
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				ti, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				ti, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -1625,7 +1576,7 @@ func TestConnection_setupConnection(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
@@ -1641,19 +1592,15 @@ func TestConnection_setupConnection(t *testing.T) {
 				ch:  make(chan plc4go.PlcConnectionConnectResult, 1),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				// Build the default connection
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
 
 				// Build the message codec
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				ti, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				ti, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -1699,7 +1646,7 @@ func TestConnection_setupConnection(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
@@ -1718,18 +1665,14 @@ func TestConnection_setupConnection(t *testing.T) {
 				ch:  make(chan plc4go.PlcConnectionConnectResult, 1),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
 				// Build the default connection
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
 
 				// Build the message codec
-				transport := test.NewTransport(loggerOption)
-				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, loggerOption)
+				transport := test.NewTransport(_options...)
+				ti, err := transport.CreateTransportInstance(url.URL{Scheme: "test"}, nil, _options...)
 
 				type MockState uint8
 				const (
@@ -1782,7 +1725,7 @@ func TestConnection_setupConnection(t *testing.T) {
 					}
 				})
 				require.NoError(t, err)
-				codec := NewMessageCodec(ti, loggerOption)
+				codec := NewMessageCodec(ti, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
@@ -1831,26 +1774,21 @@ func TestConnection_startSubscriptionHandler(t *testing.T) {
 		{
 			name: "just start",
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				fields.DefaultConnection = _default.NewDefaultConnection(nil, loggerOption)
+				fields.DefaultConnection = _default.NewDefaultConnection(nil, _options...)
 			},
 		},
 		{
 			name: "just start and feed (no subs)",
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				defaultConnection := _default.NewDefaultConnection(nil, loggerOption)
+				defaultConnection := _default.NewDefaultConnection(nil, _options...)
 				defaultConnection.SetConnected(true)
 				fields.DefaultConnection = defaultConnection
 
-				codec := NewMessageCodec(nil, loggerOption)
+				codec := NewMessageCodec(nil, _options...)
 				go func() {
 					codec.monitoredMMIs <- nil
 					codec.monitoredSALs <- nil
@@ -1864,16 +1802,14 @@ func TestConnection_startSubscriptionHandler(t *testing.T) {
 		{
 			name: "just start and feed",
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				defaultConnection := _default.NewDefaultConnection(nil, loggerOption)
+				defaultConnection := _default.NewDefaultConnection(nil, _options...)
 				defaultConnection.SetConnected(true)
 				fields.DefaultConnection = defaultConnection
 
 				fields.subscribers = []*Subscriber{NewSubscriber(nil, options.WithCustomLogger(testutils.ProduceTestingLogger(t)))}
-				codec := NewMessageCodec(nil, loggerOption)
+				codec := NewMessageCodec(nil, _options...)
 				go func() {
 					codec.monitoredMMIs <- readWriteModel.NewCALReplyShort(0, nil, nil, nil)
 					codec.monitoredSALs <- readWriteModel.NewMonitoredSAL(0, nil)
@@ -1922,12 +1858,10 @@ func TestNewConnection(t *testing.T) {
 		{
 			name: "just create the connection",
 			setup: func(t *testing.T, args *args) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				transport := test.NewTransport(loggerOption)
-				codec := NewMessageCodec(test.NewTransportInstance(transport, loggerOption), loggerOption)
+				transport := test.NewTransport(_options...)
+				codec := NewMessageCodec(test.NewTransportInstance(transport, _options...), _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
diff --git a/plc4go/internal/cbus/Discoverer_test.go b/plc4go/internal/cbus/Discoverer_test.go
index 2620a6da8b..3088d4aa65 100644
--- a/plc4go/internal/cbus/Discoverer_test.go
+++ b/plc4go/internal/cbus/Discoverer_test.go
@@ -198,14 +198,12 @@ func TestDiscoverer_createDeviceScanDispatcher(t *testing.T) {
 					}
 				})
 
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				loggerOption := options.WithCustomLogger(logger)
-				transport := tcp.NewTransport(loggerOption)
+				transport := tcp.NewTransport(_options...)
 				parse, err := url.Parse("tcp://" + listen.Addr().String())
 				require.NoError(t, err)
-				instance, err := transport.CreateTransportInstance(*parse, nil, loggerOption)
+				instance, err := transport.CreateTransportInstance(*parse, nil, _options...)
 				require.NoError(t, err)
 				args.tcpTransportInstance = instance.(*tcp.TransportInstance)
 			},
diff --git a/plc4go/internal/cbus/Driver_test.go b/plc4go/internal/cbus/Driver_test.go
index 54d0d6a6f4..cee718f5ff 100644
--- a/plc4go/internal/cbus/Driver_test.go
+++ b/plc4go/internal/cbus/Driver_test.go
@@ -87,8 +87,8 @@ func TestDriver_DiscoverWithContext(t *testing.T) {
 				tm:                      tt.fields.tm,
 				awaitSetupComplete:      tt.fields.awaitSetupComplete,
 				awaitDisconnectComplete: tt.fields.awaitDisconnectComplete,
+				log:                     testutils.ProduceTestingLogger(t),
 			}
-			m.log = testutils.ProduceTestingLogger(t)
 			tt.wantErr(t, m.DiscoverWithContext(tt.args.ctx, tt.args.callback, tt.args.discoveryOptions...), fmt.Sprintf("DiscoverWithContext(%v, func()*, %v)", tt.args.ctx, tt.args.discoveryOptions))
 		})
 	}
diff --git a/plc4go/internal/cbus/MessageCodec_test.go b/plc4go/internal/cbus/MessageCodec_test.go
index b3c175f926..142e26b2cc 100644
--- a/plc4go/internal/cbus/MessageCodec_test.go
+++ b/plc4go/internal/cbus/MessageCodec_test.go
@@ -26,7 +26,6 @@ import (
 	readWriteModel "github.com/apache/plc4x/plc4go/protocols/cbus/readwrite/model"
 	"github.com/apache/plc4x/plc4go/spi"
 	_default "github.com/apache/plc4x/plc4go/spi/default"
-	"github.com/apache/plc4x/plc4go/spi/options"
 	"github.com/apache/plc4x/plc4go/spi/testutils"
 	"github.com/apache/plc4x/plc4go/spi/transports"
 	"github.com/apache/plc4x/plc4go/spi/transports/test"
@@ -65,14 +64,11 @@ func TestMessageCodec_Send(t *testing.T) {
 				), nil, nil,
 			)},
 			setup: func(t *testing.T, fields *fields, args *args) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				loggerOption := options.WithCustomLogger(logger)
-
-				transport := test.NewTransport(loggerOption)
-				instance := test.NewTransportInstance(transport, loggerOption)
-				codec := NewMessageCodec(instance, loggerOption)
+				transport := test.NewTransport(_options...)
+				instance := test.NewTransportInstance(transport, _options...)
+				codec := NewMessageCodec(instance, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -126,14 +122,11 @@ func TestMessageCodec_Receive(t *testing.T) {
 				monitoredSALs:  nil,
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				transport := test.NewTransport(loggerOption)
-				instance := test.NewTransportInstance(transport, loggerOption)
-				codec := NewMessageCodec(instance, loggerOption)
+				transport := test.NewTransport(_options...)
+				instance := test.NewTransportInstance(transport, _options...)
+				codec := NewMessageCodec(instance, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -156,15 +149,12 @@ func TestMessageCodec_Receive(t *testing.T) {
 				requestContext, cbusOptions,
 			),
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				transport := test.NewTransport(loggerOption)
-				instance := test.NewTransportInstance(transport, loggerOption)
+				transport := test.NewTransport(_options...)
+				instance := test.NewTransportInstance(transport, _options...)
 				instance.FillReadBuffer([]byte("!"))
-				codec := NewMessageCodec(instance, loggerOption)
+				codec := NewMessageCodec(instance, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -181,15 +171,12 @@ func TestMessageCodec_Receive(t *testing.T) {
 				monitoredSALs:  nil,
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				loggerOption := options.WithCustomLogger(logger)
-
-				transport := test.NewTransport(loggerOption)
-				instance := test.NewTransportInstance(transport, loggerOption)
+				transport := test.NewTransport(_options...)
+				instance := test.NewTransportInstance(transport, _options...)
 				instance.FillReadBuffer([]byte("@A62120\r@A62120\r"))
-				codec := NewMessageCodec(instance, loggerOption)
+				codec := NewMessageCodec(instance, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -206,15 +193,12 @@ func TestMessageCodec_Receive(t *testing.T) {
 				monitoredSALs:  nil,
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				transport := test.NewTransport(loggerOption)
-				instance := test.NewTransportInstance(transport, loggerOption)
+				transport := test.NewTransport(_options...)
+				instance := test.NewTransportInstance(transport, _options...)
 				instance.FillReadBuffer([]byte("what on earth\n\r"))
-				codec := NewMessageCodec(instance, loggerOption)
+				codec := NewMessageCodec(instance, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -231,15 +215,12 @@ func TestMessageCodec_Receive(t *testing.T) {
 				monitoredSALs:  nil,
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				transport := test.NewTransport(loggerOption)
-				instance := test.NewTransportInstance(transport, loggerOption)
+				transport := test.NewTransport(_options...)
+				instance := test.NewTransportInstance(transport, _options...)
 				instance.FillReadBuffer([]byte("AFFE!!!\r"))
-				codec := NewMessageCodec(instance, loggerOption)
+				codec := NewMessageCodec(instance, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -288,15 +269,12 @@ func TestMessageCodec_Receive(t *testing.T) {
 				requestContext, cbusOptions,
 			),
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				loggerOption := options.WithCustomLogger(logger)
-
-				transport := test.NewTransport(loggerOption)
-				instance := test.NewTransportInstance(transport, loggerOption)
+				transport := test.NewTransport(_options...)
+				instance := test.NewTransportInstance(transport, _options...)
 				instance.FillReadBuffer([]byte("@1A2001!!!\r"))
-				codec := NewMessageCodec(instance, loggerOption)
+				codec := NewMessageCodec(instance, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -313,15 +291,12 @@ func TestMessageCodec_Receive(t *testing.T) {
 				monitoredSALs:  nil,
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				transport := test.NewTransport(loggerOption)
-				instance := test.NewTransportInstance(transport, loggerOption)
+				transport := test.NewTransport(_options...)
+				instance := test.NewTransportInstance(transport, _options...)
 				instance.FillReadBuffer([]byte("86040200F940380001000000000000000008000000000000000000000000FA\r\n"))
-				codec := NewMessageCodec(instance, loggerOption)
+				codec := NewMessageCodec(instance, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -523,15 +498,12 @@ func TestMessageCodec_Receive(t *testing.T) {
 				messageCodec.currentlyReportedServerErrors.Store(9999)
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				transport := test.NewTransport(loggerOption)
-				instance := test.NewTransportInstance(transport, loggerOption)
+				transport := test.NewTransport(_options...)
+				instance := test.NewTransportInstance(transport, _options...)
 				instance.FillReadBuffer([]byte("0531AC0079042F0401430316000011\r\n"))
-				codec := NewMessageCodec(instance, loggerOption)
+				codec := NewMessageCodec(instance, _options...)
 				t.Cleanup(func() {
 					assert.Error(t, codec.Disconnect())
 				})
@@ -618,14 +590,11 @@ func TestMessageCodec_Receive(t *testing.T) {
 
 func TestMessageCodec_Receive_Delayed_Response(t *testing.T) {
 	t.Run("instant data", func(t *testing.T) {
-		// Setup logger
-		logger := testutils.ProduceTestingLogger(t)
+		_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-		loggerOption := options.WithCustomLogger(logger)
-
-		transport := test.NewTransport(loggerOption)
-		transportInstance := test.NewTransportInstance(transport, loggerOption)
-		codec := NewMessageCodec(transportInstance, loggerOption)
+		transport := test.NewTransport(_options...)
+		transportInstance := test.NewTransportInstance(transport, _options...)
+		codec := NewMessageCodec(transportInstance, _options...)
 		t.Cleanup(func() {
 			assert.Error(t, codec.Disconnect())
 		})
@@ -657,14 +626,11 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) {
 		assert.True(t, msg.(readWriteModel.CBusMessageToClient).GetReply().GetIsAlpha())
 	})
 	t.Run("data after 6 times", func(t *testing.T) {
-		// Setup logger
-		logger := testutils.ProduceTestingLogger(t)
-
-		loggerOption := options.WithCustomLogger(logger)
+		_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-		transport := test.NewTransport(loggerOption)
-		transportInstance := test.NewTransportInstance(transport, loggerOption)
-		codec := NewMessageCodec(transportInstance, loggerOption)
+		transport := test.NewTransport(_options...)
+		transportInstance := test.NewTransportInstance(transport, _options...)
+		codec := NewMessageCodec(transportInstance, _options...)
 		t.Cleanup(func() {
 			assert.Error(t, codec.Disconnect())
 		})
@@ -699,14 +665,11 @@ func TestMessageCodec_Receive_Delayed_Response(t *testing.T) {
 		assert.True(t, msg.(readWriteModel.CBusMessageToClient).GetReply().GetIsAlpha())
 	})
 	t.Run("data after 15 times", func(t *testing.T) {
-		// Setup logger
-		logger := testutils.ProduceTestingLogger(t)
-
-		loggerOption := options.WithCustomLogger(logger)
+		_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-		transport := test.NewTransport(loggerOption)
-		transportInstance := test.NewTransportInstance(transport, loggerOption)
-		codec := NewMessageCodec(transportInstance, loggerOption)
+		transport := test.NewTransport(_options...)
+		transportInstance := test.NewTransportInstance(transport, _options...)
+		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 bf1807f0dd..cc017ac3a0 100644
--- a/plc4go/internal/cbus/Reader_test.go
+++ b/plc4go/internal/cbus/Reader_test.go
@@ -177,23 +177,19 @@ func TestReader_readSync(t *testing.T) {
 				result: make(chan apiModel.PlcReadRequestResult, 1),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
-
-				transport := test.NewTransport()
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
 				})
 				fields.messageCodec = codec
-				fields.tm = transactions.NewRequestTransactionManager(10, options.WithCustomLogger(testutils.ProduceTestingLogger(t)))
+				fields.tm = transactions.NewRequestTransactionManager(10, _options...)
 			},
 			resultEvaluator: func(t *testing.T, results chan apiModel.PlcReadRequestResult) bool {
 				timer := time.NewTimer(2 * time.Second)
@@ -256,15 +252,12 @@ func TestReader_readSync(t *testing.T) {
 				result: make(chan apiModel.PlcReadRequestResult, 1),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				fields.tm = transactions.NewRequestTransactionManager(10, loggerOption)
+				fields.tm = transactions.NewRequestTransactionManager(10, _options...)
 				transport := test.NewTransport()
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -286,7 +279,7 @@ func TestReader_readSync(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
@@ -334,18 +327,15 @@ func TestReader_readSync(t *testing.T) {
 				result: make(chan apiModel.PlcReadRequestResult, 1),
 			},
 			setup: func(t *testing.T, fields *fields) {
-				fields.tm = transactions.NewRequestTransactionManager(10, options.WithCustomLogger(testutils.ProduceTestingLogger(t)))
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
+				fields.tm = transactions.NewRequestTransactionManager(10, _options...)
 
 				transport := test.NewTransport()
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
@@ -428,13 +418,13 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 				},
 			},
 			setup: func(t *testing.T, fields *fields, args *args, ch chan struct{}) {
-				loggerOption := options.WithCustomLogger(testutils.ProduceTestingLogger(t))
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
@@ -491,12 +481,7 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 				},
 			},
 			setup: func(t *testing.T, fields *fields, args *args, ch chan struct{}) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
-
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 				transaction := NewMockRequestTransaction(t)
 				expect := transaction.EXPECT()
 				expect.FailRequest(mock.Anything).Return(errors.New("Nope")).Run(func(_ error) {
@@ -504,9 +489,9 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 				})
 				args.transaction = transaction
 
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -528,7 +513,7 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
@@ -578,15 +563,11 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 				},
 			},
 			setup: func(t *testing.T, fields *fields, args *args, ch chan struct{}) {
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				// Custom option for that
-				loggerOption := options.WithCustomLogger(logger)
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -608,7 +589,7 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
@@ -674,15 +655,11 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					close(ch)
 				})
 				args.transaction = transaction
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
-
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -704,7 +681,7 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
@@ -763,15 +740,11 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					close(ch)
 				})
 				args.transaction = transaction
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
-
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -793,7 +766,7 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
@@ -852,15 +825,11 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					close(ch)
 				})
 				args.transaction = transaction
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
-
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -882,7 +851,7 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
@@ -941,15 +910,11 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					close(ch)
 				})
 				args.transaction = transaction
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
-
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -971,7 +936,7 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
@@ -1030,15 +995,11 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					close(ch)
 				})
 				args.transaction = transaction
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
-
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -1060,7 +1021,7 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
@@ -1119,15 +1080,11 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					close(ch)
 				})
 				args.transaction = transaction
+				_options := testutils.EnrichOptionsWithOptionsForTesting(t)
 
-				// Setup logger
-				logger := testutils.ProduceTestingLogger(t)
-
-				loggerOption := options.WithCustomLogger(logger)
-
-				transport := test.NewTransport(loggerOption)
+				transport := test.NewTransport(_options...)
 				transportUrl := url.URL{Scheme: "test"}
-				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, loggerOption)
+				transportInstance, err := transport.CreateTransportInstance(transportUrl, nil, _options...)
 				require.NoError(t, err)
 				type MockState uint8
 				const (
@@ -1149,7 +1106,7 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 						t.Log("Done")
 					}
 				})
-				codec := NewMessageCodec(transportInstance, loggerOption)
+				codec := NewMessageCodec(transportInstance, _options...)
 				require.NoError(t, codec.Connect())
 				t.Cleanup(func() {
 					assert.NoError(t, codec.Disconnect())
diff --git a/plc4go/pkg/api/cache/connectionContainer_test.go b/plc4go/pkg/api/cache/connectionContainer_test.go
index 8e8227dc78..fcc74ca2aa 100644
--- a/plc4go/pkg/api/cache/connectionContainer_test.go
+++ b/plc4go/pkg/api/cache/connectionContainer_test.go
@@ -26,7 +26,6 @@ import (
 	"github.com/apache/plc4x/plc4go/pkg/api/config"
 	"github.com/apache/plc4x/plc4go/spi/options"
 	"github.com/apache/plc4x/plc4go/spi/testutils"
-	"github.com/rs/zerolog"
 	"github.com/stretchr/testify/assert"
 	"github.com/viney-shih/go-lock"
 	"testing"
@@ -186,7 +185,6 @@ func Test_connectionContainer_connect(t1 *testing.T) {
 
 func Test_connectionContainer_lease(t1 *testing.T) {
 	type fields struct {
-		log              zerolog.Logger
 		lock             lock.RWMutex
 		connectionString string
 		driverManager    plc4go.PlcDriverManager
@@ -214,8 +212,6 @@ func Test_connectionContainer_lease(t1 *testing.T) {
 			setup: func(t *testing.T, fields *fields) {
 				logger := testutils.ProduceTestingLogger(t)
 
-				fields.log = logger
-
 				driverManager := plc4go.NewPlcDriverManager(config.WithCustomLogger(logger))
 				driverManager.RegisterDriver(simulated.NewDriver(options.WithCustomLogger(logger)))
 				fields.driverManager = driverManager
@@ -229,7 +225,7 @@ func Test_connectionContainer_lease(t1 *testing.T) {
 				tt.setup(t, &tt.fields)
 			}
 			c := &connectionContainer{
-				log:              tt.fields.log,
+				log:              testutils.ProduceTestingLogger(t),
 				lock:             tt.fields.lock,
 				connectionString: tt.fields.connectionString,
 				driverManager:    tt.fields.driverManager,
diff --git a/plc4go/spi/pool/WorkerPool.go b/plc4go/spi/pool/WorkerPool.go
index 82d0e7a4a1..bc20ebeaa8 100644
--- a/plc4go/spi/pool/WorkerPool.go
+++ b/plc4go/spi/pool/WorkerPool.go
@@ -58,12 +58,7 @@ func NewFixedSizeExecutor(numberOfWorkers, queueDepth int, _options ...options.W
 		worker:     workers,
 		log:        customLogger,
 	}
-	for _, option := range _options {
-		switch option := option.(type) {
-		case *tracerWorkersOption:
-			_executor.traceWorkers = option.traceWorkers
-		}
-	}
+	_executor.traceWorkers, _ = ExtractTracerWorkers(_options...)
 	for i := 0; i < numberOfWorkers; i++ {
 		workers[i].executor = _executor
 	}
@@ -80,12 +75,7 @@ func NewDynamicExecutor(maxNumberOfWorkers, queueDepth int, _options ...options.
 		},
 		maxNumberOfWorkers: maxNumberOfWorkers,
 	}
-	for _, option := range _options {
-		switch option := option.(type) {
-		case *tracerWorkersOption:
-			_executor.traceWorkers = option.traceWorkers
-		}
-	}
+	_executor.traceWorkers, _ = ExtractTracerWorkers(_options...)
 	// We spawn one initial worker
 	w := worker{
 		id:          0,
@@ -98,10 +88,22 @@ func NewDynamicExecutor(maxNumberOfWorkers, queueDepth int, _options ...options.
 	return _executor
 }
 
+// WithExecutorOptionTracerWorkers sets a flag which extends logging for workers
 func WithExecutorOptionTracerWorkers(traceWorkers bool) options.WithOption {
 	return &tracerWorkersOption{traceWorkers: traceWorkers}
 }
 
+// ExtractTracerWorkers returns the value from WithExecutorOptionTracerWorkers
+func ExtractTracerWorkers(_options ...options.WithOption) (traceWorkers bool, found bool) {
+	for _, option := range _options {
+		switch option := option.(type) {
+		case *tracerWorkersOption:
+			return option.traceWorkers, true
+		}
+	}
+	return false, false
+}
+
 ///////////////////////////////////////
 ///////////////////////////////////////
 //
diff --git a/plc4go/spi/testutils/TestUtils.go b/plc4go/spi/testutils/TestUtils.go
index f51fb75161..2e0752a932 100644
--- a/plc4go/spi/testutils/TestUtils.go
+++ b/plc4go/spi/testutils/TestUtils.go
@@ -26,6 +26,8 @@ import (
 	"strings"
 	"testing"
 
+	"github.com/apache/plc4x/plc4go/spi/options"
+	"github.com/apache/plc4x/plc4go/spi/pool"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 
 	"github.com/ajankovic/xdiff"
@@ -131,6 +133,20 @@ func ProduceTestingLogger(t *testing.T) zerolog.Logger {
 	)
 }
 
+// EnrichOptionsWithOptionsForTesting appends options useful for testing to config.WithOption s
+func EnrichOptionsWithOptionsForTesting(t *testing.T, _options ...options.WithOption) []options.WithOption {
+	traceWorkers := true
+	if extractedTraceWorkers, found := pool.ExtractTracerWorkers(_options...); found {
+		traceWorkers = extractedTraceWorkers
+	}
+	// TODO: apply to other options like above
+	return append(_options,
+		options.WithCustomLogger(ProduceTestingLogger(t)),
+		options.WithPassLoggerToModel(true),
+		pool.WithExecutorOptionTracerWorkers(traceWorkers),
+	)
+}
+
 type _explodingGlobalLogger struct {
 	hardExplode bool
 }