@@ -19,6 +19,7 @@ package framework
19
19
import (
20
20
"fmt"
21
21
"reflect"
22
+ "strings"
22
23
"testing"
23
24
24
25
"github.com/google/go-cmp/cmp"
@@ -29,9 +30,11 @@ import (
29
30
"k8s.io/apimachinery/pkg/util/sets"
30
31
utilfeature "k8s.io/apiserver/pkg/util/feature"
31
32
featuregatetesting "k8s.io/component-base/featuregate/testing"
33
+ "k8s.io/klog/v2"
32
34
"k8s.io/kubernetes/pkg/features"
33
35
st "k8s.io/kubernetes/pkg/scheduler/testing"
34
36
"k8s.io/kubernetes/test/utils/ktesting"
37
+ "k8s.io/kubernetes/test/utils/ktesting/initoption"
35
38
)
36
39
37
40
func TestNewResource (t * testing.T ) {
@@ -1657,3 +1660,17 @@ func TestCloudEvent_Match(t *testing.T) {
1657
1660
})
1658
1661
}
1659
1662
}
1663
+
1664
+ func TestNodeInfoKMetadata (t * testing.T ) {
1665
+ tCtx := ktesting .Init (t , initoption .BufferLogs (true ))
1666
+ logger := tCtx .Logger ()
1667
+ logger .Info ("Some NodeInfo slice" , "nodes" , klog .KObjSlice ([]* NodeInfo {nil , {}, {node : & v1.Node {}}, {node : & v1.Node {ObjectMeta : metav1.ObjectMeta {Name : "worker" }}}}))
1668
+
1669
+ output := logger .GetSink ().(ktesting.Underlier ).GetBuffer ().String ()
1670
+
1671
+ // The initial nil entry gets turned into empty ObjectRef by klog,
1672
+ // which becomes an empty string during output formatting.
1673
+ if ! strings .Contains (output , `Some NodeInfo slice nodes=["","<no node>","","worker"]` ) {
1674
+ tCtx .Fatalf ("unexpected output:\n %s" , output )
1675
+ }
1676
+ }
0 commit comments