@@ -17,13 +17,16 @@ limitations under the License.
17
17
package client_test
18
18
19
19
import (
20
+ "bytes"
21
+ "io"
20
22
"testing"
21
23
22
24
. "github.com/onsi/ginkgo/v2"
23
25
. "github.com/onsi/gomega"
24
26
"k8s.io/client-go/kubernetes"
25
27
"k8s.io/client-go/kubernetes/scheme"
26
28
"k8s.io/client-go/rest"
29
+ "k8s.io/klog/v2"
27
30
"sigs.k8s.io/controller-runtime/examples/crd/pkg"
28
31
"sigs.k8s.io/controller-runtime/pkg/envtest"
29
32
@@ -36,12 +39,24 @@ func TestClient(t *testing.T) {
36
39
RunSpecs (t , "Client Suite" )
37
40
}
38
41
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
+ )
42
50
43
51
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" ))
45
60
46
61
testenv = & envtest.Environment {CRDDirectoryPaths : []string {"./testdata" }}
47
62
0 commit comments