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/02 11:19:05 UTC

[plc4x] branch develop updated: test(plc4go/cbus): fix Jenkins not being able to parse log outputs.

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 1abf354916 test(plc4go/cbus): fix Jenkins not being able to parse log outputs.
1abf354916 is described below

commit 1abf354916ade61cdabf877d639884a42873fa58
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Jun 2 13:18:58 2023 +0200

    test(plc4go/cbus): fix Jenkins not being able to parse log outputs.
---
 plc4go/pkg/api/driverManager_test.go | 33 ++++++++++++++++++++++++---------
 plc4go/spi/pool/WorkerPool_test.go   | 19 +++++++++++++++++--
 plc4go/spi/testutils/TestUtils.go    |  8 ++++++++
 plc4go/spi/utils/IdGenerator_test.go | 17 ++++++++++++++++-
 4 files changed, 65 insertions(+), 12 deletions(-)

diff --git a/plc4go/pkg/api/driverManager_test.go b/plc4go/pkg/api/driverManager_test.go
index 58a7633922..1ea81c977b 100644
--- a/plc4go/pkg/api/driverManager_test.go
+++ b/plc4go/pkg/api/driverManager_test.go
@@ -24,6 +24,7 @@ import (
 	"github.com/apache/plc4x/plc4go/pkg/api/config"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/rs/zerolog"
+	"os"
 	"testing"
 	"time"
 
@@ -332,7 +333,7 @@ func Test_plcDriverManger_Discover(t *testing.T) {
 				drivers:    tt.fields.drivers,
 				transports: tt.fields.transports,
 			}
-			m.log = zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t)))
+			m.log = produceTestLogger(t)
 			if err := m.Discover(tt.args.callback, tt.args.discoveryOptions...); (err != nil) != tt.wantErr {
 				t.Errorf("Discover() error = %v, wantErr %v", err, tt.wantErr)
 			}
@@ -416,7 +417,7 @@ func Test_plcDriverManger_DiscoverWithContext(t *testing.T) {
 				drivers:    tt.fields.drivers,
 				transports: tt.fields.transports,
 			}
-			m.log = zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t)))
+			m.log = produceTestLogger(t)
 			if err := m.DiscoverWithContext(tt.args.ctx, tt.args.callback, tt.args.discoveryOptions...); (err != nil) != tt.wantErr {
 				t.Errorf("DiscoverWithContext() error = %v, wantErr %v", err, tt.wantErr)
 			}
@@ -525,7 +526,7 @@ func Test_plcDriverManger_GetConnection(t *testing.T) {
 				drivers:    tt.fields.drivers,
 				transports: tt.fields.transports,
 			}
-			m.log = zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t)))
+			m.log = produceTestLogger(t)
 			if got := m.GetConnection(tt.args.connectionString); !tt.wantVerifier(t, got) {
 				t.Errorf("GetConnection() = %v", got)
 			}
@@ -567,7 +568,7 @@ func Test_plcDriverManger_GetDriver(t *testing.T) {
 				drivers:    tt.fields.drivers,
 				transports: tt.fields.transports,
 			}
-			m.log = zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t)))
+			m.log = produceTestLogger(t)
 			got, err := m.GetDriver(tt.args.driverName)
 			if (err != nil) != tt.wantErr {
 				t.Errorf("GetDriver() error = %v, wantErr %v", err, tt.wantErr)
@@ -616,7 +617,7 @@ func Test_plcDriverManger_GetTransport(t *testing.T) {
 				drivers:    tt.fields.drivers,
 				transports: tt.fields.transports,
 			}
-			m.log = zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t)))
+			m.log = produceTestLogger(t)
 			got, err := m.GetTransport(tt.args.transportName, tt.args.in1, tt.args.in2)
 			if (err != nil) != tt.wantErr {
 				t.Errorf("GetTransport() error = %v, wantErr %v", err, tt.wantErr)
@@ -658,7 +659,7 @@ func Test_plcDriverManger_ListDriverNames(t *testing.T) {
 				drivers:    tt.fields.drivers,
 				transports: tt.fields.transports,
 			}
-			m.log = zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t)))
+			m.log = produceTestLogger(t)
 			if got := m.ListDriverNames(); !assert.Equal(t, got, tt.want) {
 				t.Errorf("ListDriverNames() = %v, want %v", got, tt.want)
 			}
@@ -695,7 +696,7 @@ func Test_plcDriverManger_ListTransportNames(t *testing.T) {
 				drivers:    tt.fields.drivers,
 				transports: tt.fields.transports,
 			}
-			m.log = zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t)))
+			m.log = produceTestLogger(t)
 			if got := m.ListTransportNames(); !assert.Equal(t, got, tt.want) {
 				t.Errorf("ListTransportNames() = %v, want %v", got, tt.want)
 			}
@@ -755,7 +756,7 @@ func Test_plcDriverManger_RegisterDriver(t *testing.T) {
 				drivers:    tt.fields.drivers,
 				transports: tt.fields.transports,
 			}
-			m.log = zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t)))
+			m.log = produceTestLogger(t)
 			m.RegisterDriver(tt.args.driver)
 		})
 	}
@@ -811,7 +812,7 @@ func Test_plcDriverManger_RegisterTransport(t *testing.T) {
 				drivers:    tt.fields.drivers,
 				transports: tt.fields.transports,
 			}
-			m.log = zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t)))
+			m.log = produceTestLogger(t)
 			m.RegisterTransport(tt.args.transport)
 		})
 	}
@@ -842,3 +843,17 @@ func Test_withDiscoveryOption_isDiscoveryOption(t *testing.T) {
 		})
 	}
 }
+
+// note: we can't use testutils here due to import cycle
+func produceTestLogger(t *testing.T) zerolog.Logger {
+	return zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t),
+		func(w *zerolog.ConsoleWriter) {
+			// TODO: this is really an issue with go-junit-report not sanitizing output before dumping into xml...
+			onJenkins := os.Getenv("JENKINS_URL") != ""
+			onGithubAction := os.Getenv("GITHUB_ACTIONS") != ""
+			onCI := os.Getenv("CI") != ""
+			if onJenkins || onGithubAction || onCI {
+				w.NoColor = true
+			}
+		}))
+}
diff --git a/plc4go/spi/pool/WorkerPool_test.go b/plc4go/spi/pool/WorkerPool_test.go
index fc64be079b..6c798eb391 100644
--- a/plc4go/spi/pool/WorkerPool_test.go
+++ b/plc4go/spi/pool/WorkerPool_test.go
@@ -27,6 +27,7 @@ import (
 	"github.com/rs/zerolog"
 	"github.com/stretchr/testify/assert"
 	"math/rand"
+	"os"
 	"testing"
 	"time"
 )
@@ -290,7 +291,7 @@ func TestNewDynamicExecutor(t *testing.T) {
 				options:         []options.WithOption{WithExecutorOptionTracerWorkers(true)},
 			},
 			setup: func(t *testing.T, args *args) {
-				args.options = append(args.options, options.WithCustomLogger(zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t)))))
+				args.options = append(args.options, options.WithCustomLogger(produceTestLogger(t)))
 			},
 			executorValidator: func(t *testing.T, e *dynamicExecutor) bool {
 				assert.False(t, e.running)
@@ -308,7 +309,7 @@ func TestNewDynamicExecutor(t *testing.T) {
 				options:         []options.WithOption{WithExecutorOptionTracerWorkers(true)},
 			},
 			setup: func(t *testing.T, args *args) {
-				args.options = append(args.options, options.WithCustomLogger(zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t)))))
+				args.options = append(args.options, options.WithCustomLogger(produceTestLogger(t)))
 			},
 			manipulator: func(t *testing.T, e *dynamicExecutor) {
 				{
@@ -741,3 +742,17 @@ func testContext(t *testing.T) context.Context {
 	t.Cleanup(cancel)
 	return ctx
 }
+
+// note: we can't use testutils here due to import cycle
+func produceTestLogger(t *testing.T) zerolog.Logger {
+	return zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t),
+		func(w *zerolog.ConsoleWriter) {
+			// TODO: this is really an issue with go-junit-report not sanitizing output before dumping into xml...
+			onJenkins := os.Getenv("JENKINS_URL") != ""
+			onGithubAction := os.Getenv("GITHUB_ACTIONS") != ""
+			onCI := os.Getenv("CI") != ""
+			if onJenkins || onGithubAction || onCI {
+				w.NoColor = true
+			}
+		}))
+}
diff --git a/plc4go/spi/testutils/TestUtils.go b/plc4go/spi/testutils/TestUtils.go
index 6d5cf89bcd..c07e88c628 100644
--- a/plc4go/spi/testutils/TestUtils.go
+++ b/plc4go/spi/testutils/TestUtils.go
@@ -20,6 +20,7 @@
 package testutils
 
 import (
+	"context"
 	"github.com/rs/zerolog/log"
 	"os"
 	"runtime/debug"
@@ -104,6 +105,13 @@ func CompareResults(t *testing.T, actualString []byte, referenceString []byte) e
 	return errors.New("there were differences: Expected: \n" + string(referenceString) + "\nBut Got: \n" + string(actualString))
 }
 
+// TestContext produces a context which is getting cleaned up by testing.T
+func TestContext(t *testing.T) context.Context {
+	ctx, cancel := context.WithCancel(context.Background())
+	t.Cleanup(cancel)
+	return ctx
+}
+
 // ProduceTestingLogger produces a logger which redirects to testing.T
 func ProduceTestingLogger(t *testing.T) zerolog.Logger {
 	return zerolog.New(
diff --git a/plc4go/spi/utils/IdGenerator_test.go b/plc4go/spi/utils/IdGenerator_test.go
index abf104417c..8469324e6e 100644
--- a/plc4go/spi/utils/IdGenerator_test.go
+++ b/plc4go/spi/utils/IdGenerator_test.go
@@ -22,6 +22,7 @@ package utils
 import (
 	"github.com/rs/zerolog"
 	"github.com/stretchr/testify/assert"
+	"os"
 	"testing"
 )
 
@@ -47,7 +48,21 @@ func TestGenerateId(t *testing.T) {
 			randomByteFiller = func(_ []byte) (n int, err error) {
 				return 0, nil
 			}
-			assert.Equalf(t, tt.want, GenerateId(zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t))), tt.args.numBytes), "GenerateId(%v)", tt.args.numBytes)
+			assert.Equalf(t, tt.want, GenerateId(produceTestLogger(t), tt.args.numBytes), "GenerateId(%v)", tt.args.numBytes)
 		})
 	}
 }
+
+// note: we can't use testutils here due to import cycle
+func produceTestLogger(t *testing.T) zerolog.Logger {
+	return zerolog.New(zerolog.NewConsoleWriter(zerolog.ConsoleTestWriter(t),
+		func(w *zerolog.ConsoleWriter) {
+			// TODO: this is really an issue with go-junit-report not sanitizing output before dumping into xml...
+			onJenkins := os.Getenv("JENKINS_URL") != ""
+			onGithubAction := os.Getenv("GITHUB_ACTIONS") != ""
+			onCI := os.Getenv("CI") != ""
+			if onJenkins || onGithubAction || onCI {
+				w.NoColor = true
+			}
+		}))
+}