From 4ef61a713675139f271b360ab7f46a164384a908 Mon Sep 17 00:00:00 2001 From: Adnan Abdulhussein Date: Wed, 29 Jun 2016 15:38:53 -0700 Subject: [PATCH] fix(chartutil): Ensure ReadValues doesn't return a nil map --- pkg/chartutil/values.go | 6 +++--- pkg/chartutil/values_test.go | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pkg/chartutil/values.go b/pkg/chartutil/values.go index 3987c5a16..e072e7e3a 100644 --- a/pkg/chartutil/values.go +++ b/pkg/chartutil/values.go @@ -110,9 +110,9 @@ func tableLookup(v Values, simple string) (Values, error) { // ReadValues will parse YAML byte data into a Values. func ReadValues(data []byte) (vals Values, err error) { - vals = make(map[string]interface{}) - if len(data) > 0 { - err = yaml.Unmarshal(data, &vals) + err = yaml.Unmarshal(data, &vals) + if len(vals) == 0 { + vals = Values{} } return } diff --git a/pkg/chartutil/values_test.go b/pkg/chartutil/values_test.go index bd55046fb..75d0d2e7d 100644 --- a/pkg/chartutil/values_test.go +++ b/pkg/chartutil/values_test.go @@ -53,6 +53,18 @@ water: t.Fatalf("Error parsing bytes: %s", err) } matchValues(t, data) + + tests := []string{`poet: "Coleridge"`, "# Just a comment", ""} + + for _, tt := range tests { + data, err = ReadValues([]byte(tt)) + if err != nil { + t.Fatalf("Error parsing bytes: %s", err) + } + if data == nil { + t.Errorf(`YAML string "%s" gave a nil map`, tt) + } + } } func TestReadValuesFile(t *testing.T) {