mirror of https://github.com/knative/pkg.git
Initialize prefix remapping map to avoid panic (#2453)
A `nil` `target` passed to `AsOptionalMap` causes a panic. Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
This commit is contained in:
parent
78fdd53826
commit
ce6f2877ce
|
|
@ -101,10 +101,11 @@ func (c *Config) GetComponentConfig(name string) ComponentConfig {
|
||||||
|
|
||||||
func defaultConfig() *Config {
|
func defaultConfig() *Config {
|
||||||
return &Config{
|
return &Config{
|
||||||
Buckets: 1,
|
Buckets: 1,
|
||||||
LeaseDuration: 60 * time.Second,
|
LeaseDuration: 60 * time.Second,
|
||||||
RenewDeadline: 40 * time.Second,
|
RenewDeadline: 40 * time.Second,
|
||||||
RetryPeriod: 10 * time.Second,
|
RetryPeriod: 10 * time.Second,
|
||||||
|
LeaseNamesPrefixMapping: make(map[string]string),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,10 +38,11 @@ const (
|
||||||
|
|
||||||
func okConfig() *Config {
|
func okConfig() *Config {
|
||||||
return &Config{
|
return &Config{
|
||||||
Buckets: 1,
|
Buckets: 1,
|
||||||
LeaseDuration: 15 * time.Second,
|
LeaseDuration: 15 * time.Second,
|
||||||
RenewDeadline: 10 * time.Second,
|
RenewDeadline: 10 * time.Second,
|
||||||
RetryPeriod: 2 * time.Second,
|
RetryPeriod: 2 * time.Second,
|
||||||
|
LeaseNamesPrefixMapping: map[string]string{},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -122,10 +123,11 @@ func TestNewConfigMapFromData(t *testing.T) {
|
||||||
"buckets": "5",
|
"buckets": "5",
|
||||||
},
|
},
|
||||||
expected: &Config{
|
expected: &Config{
|
||||||
Buckets: 5,
|
Buckets: 5,
|
||||||
LeaseDuration: 2 * time.Second,
|
LeaseDuration: 2 * time.Second,
|
||||||
RenewDeadline: 3 * time.Second,
|
RenewDeadline: 3 * time.Second,
|
||||||
RetryPeriod: 4 * time.Second,
|
RetryPeriod: 4 * time.Second,
|
||||||
|
LeaseNamesPrefixMapping: map[string]string{},
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
name: "prioritize new keys",
|
name: "prioritize new keys",
|
||||||
|
|
@ -139,10 +141,11 @@ func TestNewConfigMapFromData(t *testing.T) {
|
||||||
"buckets": "7",
|
"buckets": "7",
|
||||||
},
|
},
|
||||||
expected: &Config{
|
expected: &Config{
|
||||||
Buckets: 7,
|
Buckets: 7,
|
||||||
LeaseDuration: 1 * time.Second,
|
LeaseDuration: 1 * time.Second,
|
||||||
RenewDeadline: 2 * time.Second,
|
RenewDeadline: 2 * time.Second,
|
||||||
RetryPeriod: 3 * time.Second,
|
RetryPeriod: 3 * time.Second,
|
||||||
|
LeaseNamesPrefixMapping: map[string]string{},
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
@ -168,6 +171,57 @@ func TestNewConfigMapFromData(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNewConfigFromMap(t *testing.T) {
|
||||||
|
|
||||||
|
tt := []struct {
|
||||||
|
name string
|
||||||
|
data map[string]string
|
||||||
|
want Config
|
||||||
|
wantErr bool
|
||||||
|
}{{
|
||||||
|
name: "ok config",
|
||||||
|
data: map[string]string{
|
||||||
|
"lease-duration": "15s",
|
||||||
|
"buckets": "5",
|
||||||
|
},
|
||||||
|
want: Config{
|
||||||
|
Buckets: 5,
|
||||||
|
LeaseDuration: 15 * time.Second,
|
||||||
|
RenewDeadline: 40 * time.Second,
|
||||||
|
RetryPeriod: 10 * time.Second,
|
||||||
|
LeaseNamesPrefixMapping: map[string]string{},
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
name: "ok config, prefix map",
|
||||||
|
data: map[string]string{
|
||||||
|
"lease-duration": "15s",
|
||||||
|
"buckets": "5",
|
||||||
|
"map-lease-prefix.reconciler": "reconciler1",
|
||||||
|
},
|
||||||
|
want: Config{
|
||||||
|
Buckets: 5,
|
||||||
|
LeaseDuration: 15 * time.Second,
|
||||||
|
RenewDeadline: 40 * time.Second,
|
||||||
|
RetryPeriod: 10 * time.Second,
|
||||||
|
LeaseNamesPrefixMapping: map[string]string{
|
||||||
|
"reconciler": "reconciler1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
|
||||||
|
for _, tc := range tt {
|
||||||
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
|
c, err := NewConfigFromMap(tc.data)
|
||||||
|
if tc.wantErr != (err != nil) {
|
||||||
|
t.Fatalf("want err %v got %v", tc.wantErr, err)
|
||||||
|
}
|
||||||
|
if diff := cmp.Diff(tc.want, *c); diff != "" {
|
||||||
|
t.Fatal("(-want, +got)", diff)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestGetComponentConfig(t *testing.T) {
|
func TestGetComponentConfig(t *testing.T) {
|
||||||
const expectedName = "the-component"
|
const expectedName = "the-component"
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue