mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 14:37:00 +00:00
Tolerate YAML and JSON numbers
Both YAML and JSON can contain numbers
This commit is contained in:
parent
2ed3246631
commit
653ddbb01e
@ -626,10 +626,7 @@ func (q *Quantity) UnmarshalJSON(value []byte) error {
|
||||
q.i = int64Amount{}
|
||||
return nil
|
||||
}
|
||||
if l < 2 {
|
||||
return ErrFormatWrong
|
||||
}
|
||||
if value[0] == '"' && value[l-1] == '"' {
|
||||
if l >= 2 && value[0] == '"' && value[l-1] == '"' {
|
||||
value = value[1 : l-1]
|
||||
}
|
||||
|
||||
|
@ -826,11 +826,24 @@ func TestJSON(t *testing.T) {
|
||||
|
||||
func TestJSONWhitespace(t *testing.T) {
|
||||
q := Quantity{}
|
||||
for _, s := range []string{" 1", "1 "} {
|
||||
if err := json.Unmarshal([]byte(`"`+s+`"`), &q); err != nil {
|
||||
t.Errorf("%q: %v", s, err)
|
||||
testCases := []struct {
|
||||
in string
|
||||
expect string
|
||||
}{
|
||||
{`" 1"`, "1"},
|
||||
{`"1 "`, "1"},
|
||||
{`1`, "1"},
|
||||
{` 1`, "1"},
|
||||
{`1 `, "1"},
|
||||
{`10`, "10"},
|
||||
{`-1`, "-1"},
|
||||
{` -1`, "-1"},
|
||||
}
|
||||
for _, test := range testCases {
|
||||
if err := json.Unmarshal([]byte(test.in), &q); err != nil {
|
||||
t.Errorf("%q: %v", test.in, err)
|
||||
}
|
||||
if q.String() != "1" {
|
||||
if q.String() != test.expect {
|
||||
t.Errorf("unexpected string: %q", q.String())
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user