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