Merge branch 'master' of github.com:helm/helm into validate-signature

pull/7944/head
Josh Dolitsky 6 years ago
commit ff562e169e

@ -35,7 +35,6 @@ import (
"io/ioutil" "io/ioutil"
"os" "os"
"os/exec" "os/exec"
"os/user"
"path/filepath" "path/filepath"
"runtime" "runtime"
"sync" "sync"
@ -175,13 +174,9 @@ func TestCopyDirFail_SrcInaccessible(t *testing.T) {
t.Skip("skipping on windows") t.Skip("skipping on windows")
} }
var currentUser, err = user.Current() var currentUID = os.Getuid()
if err != nil { if currentUID == 0 {
t.Fatalf("Failed to get name of current user: %s", err)
}
if currentUser.Name == "root" {
// Skipping if root, because all files are accessible // Skipping if root, because all files are accessible
t.Skip("Skipping for root user") t.Skip("Skipping for root user")
} }
@ -214,13 +209,9 @@ func TestCopyDirFail_DstInaccessible(t *testing.T) {
t.Skip("skipping on windows") t.Skip("skipping on windows")
} }
var currentUser, err = user.Current() var currentUID = os.Getuid()
if err != nil { if currentUID == 0 {
t.Fatalf("Failed to get name of current user: %s", err)
}
if currentUser.Name == "root" {
// Skipping if root, because all files are accessible // Skipping if root, because all files are accessible
t.Skip("Skipping for root user") t.Skip("Skipping for root user")
} }
@ -314,13 +305,9 @@ func TestCopyDirFailOpen(t *testing.T) {
t.Skip("skipping on windows") t.Skip("skipping on windows")
} }
var currentUser, err = user.Current() var currentUID = os.Getuid()
if err != nil {
t.Fatalf("Failed to get name of current user: %s", err)
}
if currentUser.Name == "root" { if currentUID == 0 {
// Skipping if root, because all files are accessible // Skipping if root, because all files are accessible
t.Skip("Skipping for root user") t.Skip("Skipping for root user")
} }
@ -483,13 +470,9 @@ func TestCopyFileFail(t *testing.T) {
t.Skip("skipping on windows") t.Skip("skipping on windows")
} }
var currentUser, err = user.Current() var currentUID = os.Getuid()
if err != nil { if currentUID == 0 {
t.Fatalf("Failed to get name of current user: %s", err)
}
if currentUser.Name == "root" {
// Skipping if root, because all files are accessible // Skipping if root, because all files are accessible
t.Skip("Skipping for root user") t.Skip("Skipping for root user")
} }
@ -574,13 +557,9 @@ func setupInaccessibleDir(t *testing.T, op func(dir string) error) func() {
func TestIsDir(t *testing.T) { func TestIsDir(t *testing.T) {
var currentUser, err = user.Current() var currentUID = os.Getuid()
if err != nil { if currentUID == 0 {
t.Fatalf("Failed to get name of current user: %s", err)
}
if currentUser.Name == "root" {
// Skipping if root, because all files are accessible // Skipping if root, because all files are accessible
t.Skip("Skipping for root user") t.Skip("Skipping for root user")
} }
@ -631,13 +610,9 @@ func TestIsDir(t *testing.T) {
func TestIsSymlink(t *testing.T) { func TestIsSymlink(t *testing.T) {
var currentUser, err = user.Current() var currentUID = os.Getuid()
if err != nil {
t.Fatalf("Failed to get name of current user: %s", err)
}
if currentUser.Name == "root" { if currentUID == 0 {
// Skipping if root, because all files are accessible // Skipping if root, because all files are accessible
t.Skip("Skipping for root user") t.Skip("Skipping for root user")
} }

@ -213,6 +213,7 @@ func (e Engine) renderWithReferences(tpls, referenceTpls map[string]renderable)
// We want to parse the templates in a predictable order. The order favors // We want to parse the templates in a predictable order. The order favors
// higher-level (in file system) templates over deeply nested templates. // higher-level (in file system) templates over deeply nested templates.
keys := sortTemplates(tpls) keys := sortTemplates(tpls)
referenceKeys := sortTemplates(referenceTpls)
for _, filename := range keys { for _, filename := range keys {
r := tpls[filename] r := tpls[filename]
@ -223,8 +224,9 @@ func (e Engine) renderWithReferences(tpls, referenceTpls map[string]renderable)
// Adding the reference templates to the template context // Adding the reference templates to the template context
// so they can be referenced in the tpl function // so they can be referenced in the tpl function
for filename, r := range referenceTpls { for _, filename := range referenceKeys {
if t.Lookup(filename) == nil { if t.Lookup(filename) == nil {
r := referenceTpls[filename]
if _, err := t.New(filename).Parse(r.tpl); err != nil { if _, err := t.New(filename).Parse(r.tpl); err != nil {
return map[string]string{}, cleanupParseError(filename, err) return map[string]string{}, cleanupParseError(filename, err)
} }

@ -126,6 +126,46 @@ func TestRender(t *testing.T) {
} }
} }
func TestRenderRefsOrdering(t *testing.T) {
parentChart := &chart.Chart{
Metadata: &chart.Metadata{
Name: "parent",
Version: "1.2.3",
},
Templates: []*chart.File{
{Name: "templates/_helpers.tpl", Data: []byte(`{{- define "test" -}}parent value{{- end -}}`)},
{Name: "templates/test.yaml", Data: []byte(`{{ tpl "{{ include \"test\" . }}" . }}`)},
},
}
childChart := &chart.Chart{
Metadata: &chart.Metadata{
Name: "child",
Version: "1.2.3",
},
Templates: []*chart.File{
{Name: "templates/_helpers.tpl", Data: []byte(`{{- define "test" -}}child value{{- end -}}`)},
},
}
parentChart.AddDependency(childChart)
expect := map[string]string{
"parent/templates/test.yaml": "parent value",
}
for i := 0; i < 100; i++ {
out, err := Render(parentChart, chartutil.Values{})
if err != nil {
t.Fatalf("Failed to render templates: %s", err)
}
for name, data := range expect {
if out[name] != data {
t.Fatalf("Expected %q, got %q (iteraction %d)", data, out[name], i+1)
}
}
}
}
func TestRenderInternals(t *testing.T) { func TestRenderInternals(t *testing.T) {
// Test the internals of the rendering tool. // Test the internals of the rendering tool.

Loading…
Cancel
Save