Skip to content

Commit b09cb19

Browse files
committed
Allow client tests to inspect controller and client log messages
1 parent 1ed3450 commit b09cb19

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

pkg/client/client_suite_test.go

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,16 @@ limitations under the License.
1717
package client_test
1818

1919
import (
20+
"bytes"
21+
"io"
2022
"testing"
2123

2224
. "github.com/onsi/ginkgo/v2"
2325
. "github.com/onsi/gomega"
2426
"k8s.io/client-go/kubernetes"
2527
"k8s.io/client-go/kubernetes/scheme"
2628
"k8s.io/client-go/rest"
29+
"k8s.io/klog/v2"
2730
"sigs.k8s.io/controller-runtime/examples/crd/pkg"
2831
"sigs.k8s.io/controller-runtime/pkg/envtest"
2932

@@ -36,12 +39,24 @@ func TestClient(t *testing.T) {
3639
RunSpecs(t, "Client Suite")
3740
}
3841

39-
var testenv *envtest.Environment
40-
var cfg *rest.Config
41-
var clientset *kubernetes.Clientset
42+
var (
43+
testenv *envtest.Environment
44+
cfg *rest.Config
45+
clientset *kubernetes.Clientset
46+
47+
// Used by tests to inspect controller and client log messages.
48+
log bytes.Buffer
49+
)
4250

4351
var _ = BeforeSuite(func() {
44-
logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true)))
52+
// Forwards logs to ginkgo output, and allows tests to inspect logs.
53+
mw := io.MultiWriter(&log, GinkgoWriter)
54+
55+
// Use prefixes to help us tell the source of the log message.
56+
// controller-runtime uses logf
57+
logf.SetLogger(zap.New(zap.WriteTo(mw), zap.UseDevMode(true)).WithName("logf"))
58+
// client-go logs uses klog
59+
klog.SetLogger(zap.New(zap.WriteTo(mw), zap.UseDevMode(true)).WithName("klog"))
4560

4661
testenv = &envtest.Environment{CRDDirectoryPaths: []string{"./testdata"}}
4762

0 commit comments

Comments
 (0)