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 <[email protected]>
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
+                       }
+               }))
+}

Reply via email to