...
1
16
17 package options
18
19 import (
20 "flag"
21 "reflect"
22 "sort"
23 "strings"
24 "testing"
25
26 "github.com/spf13/pflag"
27
28 cliflag "k8s.io/component-base/cli/flag"
29 "k8s.io/component-base/cli/globalflag"
30 "k8s.io/component-base/logs"
31 )
32
33 func TestAddCustomGlobalFlags(t *testing.T) {
34 namedFlagSets := &cliflag.NamedFlagSets{}
35
36
37
38
39 nfs := namedFlagSets.FlagSet("test")
40 nfs.SetNormalizeFunc(cliflag.WordSepNormalizeFunc)
41 globalflag.AddGlobalFlags(nfs, "test-cmd")
42 AddCustomGlobalFlags(nfs)
43
44 actualFlag := []string{}
45 nfs.VisitAll(func(flag *pflag.Flag) {
46 actualFlag = append(actualFlag, flag.Name)
47 })
48
49
50 wantedFlag := []string{"help"}
51 pflag.CommandLine.AddGoFlagSet(flag.CommandLine)
52 logs.AddFlags(pflag.CommandLine)
53 normalizeFunc := nfs.GetNormalizeFunc()
54 pflag.VisitAll(func(flag *pflag.Flag) {
55 if !strings.Contains(flag.Name, "test.") {
56 wantedFlag = append(wantedFlag, string(normalizeFunc(nfs, flag.Name)))
57 }
58 })
59 sort.Strings(wantedFlag)
60
61 if !reflect.DeepEqual(wantedFlag, actualFlag) {
62 t.Errorf("[Default]: expected %+v, got %+v", wantedFlag, actualFlag)
63 }
64 }
65
View as plain text