testing: Use T.cleanup() to cleanup tempdir

Previously, after 'make test', some many temp dir have not been removed.
Since this commit, temp dir created by ensure.HelmHome()
ensure.TempDir() and ensure.TempFile() will be removed automatically in
the end of testing

- Use T.cleanup to remove the tempdir
- Remove unnecessary defer

Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
pull/8829/head
Li Zhijian 5 years ago
parent ab12382ddc
commit 3350760d85

@ -31,7 +31,7 @@ import (
) )
func TestCreateCmd(t *testing.T) { func TestCreateCmd(t *testing.T) {
defer ensure.HelmHome(t)() ensure.HelmHome(t)
cname := "testchart" cname := "testchart"
dir := ensure.TempDir(t) dir := ensure.TempDir(t)
defer testChdir(t, dir)() defer testChdir(t, dir)()
@ -62,7 +62,7 @@ func TestCreateCmd(t *testing.T) {
} }
func TestCreateStarterCmd(t *testing.T) { func TestCreateStarterCmd(t *testing.T) {
defer ensure.HelmHome(t)() ensure.HelmHome(t)
cname := "testchart" cname := "testchart"
defer resetEnv()() defer resetEnv()()
os.MkdirAll(helmpath.CachePath(), 0755) os.MkdirAll(helmpath.CachePath(), 0755)
@ -128,7 +128,7 @@ func TestCreateStarterCmd(t *testing.T) {
func TestCreateStarterAbsoluteCmd(t *testing.T) { func TestCreateStarterAbsoluteCmd(t *testing.T) {
defer resetEnv()() defer resetEnv()()
defer ensure.HelmHome(t)() ensure.HelmHome(t)
cname := "testchart" cname := "testchart"
// Create a starter. // Create a starter.

@ -152,7 +152,7 @@ func TestDependencyUpdateCmd(t *testing.T) {
func TestDependencyUpdateCmd_DontDeleteOldChartsOnError(t *testing.T) { func TestDependencyUpdateCmd_DontDeleteOldChartsOnError(t *testing.T) {
defer resetEnv()() defer resetEnv()()
defer ensure.HelmHome(t)() ensure.HelmHome(t)
srv, err := repotest.NewTempServerWithCleanup(t, "testdata/testcharts/*.tgz") srv, err := repotest.NewTempServerWithCleanup(t, "testdata/testcharts/*.tgz")
if err != nil { if err != nil {

@ -73,7 +73,7 @@ func TestUpdateCustomCacheCmd(t *testing.T) {
func TestUpdateCharts(t *testing.T) { func TestUpdateCharts(t *testing.T) {
defer resetEnv()() defer resetEnv()()
defer ensure.HelmHome(t)() ensure.HelmHome(t)
ts, err := repotest.NewTempServerWithCleanup(t, "testdata/testserver/*.*") ts, err := repotest.NewTempServerWithCleanup(t, "testdata/testserver/*.*")
if err != nil { if err != nil {

@ -77,7 +77,7 @@ func TestRootCmd(t *testing.T) {
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
defer ensure.HelmHome(t)() ensure.HelmHome(t)
for k, v := range tt.envvars { for k, v := range tt.envvars {
os.Setenv(k, v) os.Setenv(k, v)

@ -27,7 +27,7 @@ import (
) )
// HelmHome sets up a Helm Home in a temp dir. // HelmHome sets up a Helm Home in a temp dir.
func HelmHome(t *testing.T) func() { func HelmHome(t *testing.T) {
t.Helper() t.Helper()
base := TempDir(t) base := TempDir(t)
os.Setenv(xdg.CacheHomeEnvVar, base) os.Setenv(xdg.CacheHomeEnvVar, base)
@ -36,9 +36,6 @@ func HelmHome(t *testing.T) func() {
os.Setenv(helmpath.CacheHomeEnvVar, "") os.Setenv(helmpath.CacheHomeEnvVar, "")
os.Setenv(helmpath.ConfigHomeEnvVar, "") os.Setenv(helmpath.ConfigHomeEnvVar, "")
os.Setenv(helmpath.DataHomeEnvVar, "") os.Setenv(helmpath.DataHomeEnvVar, "")
return func() {
os.RemoveAll(base)
}
} }
// TempDir ensures a scratch test directory for unit testing purposes. // TempDir ensures a scratch test directory for unit testing purposes.
@ -48,6 +45,8 @@ func TempDir(t *testing.T) string {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
t.Cleanup(func() { os.RemoveAll(d) })
return d return d
} }
@ -55,11 +54,7 @@ func TempDir(t *testing.T) string {
// //
// It returns the path to the directory (to which you will still need to join the filename) // It returns the path to the directory (to which you will still need to join the filename)
// //
// You must clean up the directory that is returned. // The whole TempDir will be Remove automatically
//
// tempdir := TempFile(t, "foo", []byte("bar"))
// defer os.RemoveAll(tempdir)
// filename := filepath.Join(tempdir, "foo")
func TempFile(t *testing.T, name string, data []byte) string { func TempFile(t *testing.T, name string, data []byte) string {
path := TempDir(t) path := TempDir(t)
filename := filepath.Join(path, name) filename := filepath.Join(path, name)

@ -18,7 +18,6 @@ package action
import ( import (
"io/ioutil" "io/ioutil"
"os"
"path" "path"
"testing" "testing"
@ -30,7 +29,6 @@ import (
func TestPassphraseFileFetcher(t *testing.T) { func TestPassphraseFileFetcher(t *testing.T) {
secret := "secret" secret := "secret"
directory := ensure.TempFile(t, "passphrase-file", []byte(secret)) directory := ensure.TempFile(t, "passphrase-file", []byte(secret))
defer os.RemoveAll(directory)
fetcher, err := passphraseFileFetcher(path.Join(directory, "passphrase-file"), nil) fetcher, err := passphraseFileFetcher(path.Join(directory, "passphrase-file"), nil)
if err != nil { if err != nil {
@ -50,7 +48,6 @@ func TestPassphraseFileFetcher(t *testing.T) {
func TestPassphraseFileFetcher_WithLineBreak(t *testing.T) { func TestPassphraseFileFetcher_WithLineBreak(t *testing.T) {
secret := "secret" secret := "secret"
directory := ensure.TempFile(t, "passphrase-file", []byte(secret+"\n\n.")) directory := ensure.TempFile(t, "passphrase-file", []byte(secret+"\n\n."))
defer os.RemoveAll(directory)
fetcher, err := passphraseFileFetcher(path.Join(directory, "passphrase-file"), nil) fetcher, err := passphraseFileFetcher(path.Join(directory, "passphrase-file"), nil)
if err != nil { if err != nil {
@ -69,7 +66,6 @@ func TestPassphraseFileFetcher_WithLineBreak(t *testing.T) {
func TestPassphraseFileFetcher_WithInvalidStdin(t *testing.T) { func TestPassphraseFileFetcher_WithInvalidStdin(t *testing.T) {
directory := ensure.TempDir(t) directory := ensure.TempDir(t)
defer os.RemoveAll(directory)
stdin, err := ioutil.TempFile(directory, "non-existing") stdin, err := ioutil.TempFile(directory, "non-existing")
if err != nil { if err != nil {

@ -37,7 +37,6 @@ import (
func TestSave(t *testing.T) { func TestSave(t *testing.T) {
tmp := ensure.TempDir(t) tmp := ensure.TempDir(t)
defer os.RemoveAll(tmp)
for _, dest := range []string{tmp, path.Join(tmp, "newdir")} { for _, dest := range []string{tmp, path.Join(tmp, "newdir")} {
t.Run("outDir="+dest, func(t *testing.T) { t.Run("outDir="+dest, func(t *testing.T) {

@ -280,7 +280,7 @@ func TestDownloadTo_TLS(t *testing.T) {
} }
func TestDownloadTo_VerifyLater(t *testing.T) { func TestDownloadTo_VerifyLater(t *testing.T) {
defer ensure.HelmHome(t)() ensure.HelmHome(t)
dest := ensure.TempDir(t) dest := ensure.TempDir(t)
defer os.RemoveAll(dest) defer os.RemoveAll(dest)

@ -16,7 +16,6 @@ limitations under the License.
package rules package rules
import ( import (
"os"
"path/filepath" "path/filepath"
"testing" "testing"
@ -80,7 +79,6 @@ func TestValidateDependencyInMetadata(t *testing.T) {
func TestDependencies(t *testing.T) { func TestDependencies(t *testing.T) {
tmp := ensure.TempDir(t) tmp := ensure.TempDir(t)
defer os.RemoveAll(tmp)
c := chartWithBadDependencies() c := chartWithBadDependencies()
err := chartutil.SaveDir(&c, tmp) err := chartutil.SaveDir(&c, tmp)

@ -178,7 +178,6 @@ func TestDeprecatedAPIFails(t *testing.T) {
}, },
} }
tmpdir := ensure.TempDir(t) tmpdir := ensure.TempDir(t)
defer os.RemoveAll(tmpdir)
if err := chartutil.SaveDir(&mychart, tmpdir); err != nil { if err := chartutil.SaveDir(&mychart, tmpdir); err != nil {
t.Fatal(err) t.Fatal(err)
@ -235,7 +234,6 @@ func TestStrictTemplateParsingMapError(t *testing.T) {
}, },
} }
dir := ensure.TempDir(t) dir := ensure.TempDir(t)
defer os.RemoveAll(dir)
if err := chartutil.SaveDir(&ch, dir); err != nil { if err := chartutil.SaveDir(&ch, dir); err != nil {
t.Fatal(err) t.Fatal(err)
} }

@ -67,7 +67,6 @@ func TestValidateValuesFileWellFormed(t *testing.T) {
not:well[]{}formed not:well[]{}formed
` `
tmpdir := ensure.TempFile(t, "values.yaml", []byte(badYaml)) tmpdir := ensure.TempFile(t, "values.yaml", []byte(badYaml))
defer os.RemoveAll(tmpdir)
valfile := filepath.Join(tmpdir, "values.yaml") valfile := filepath.Join(tmpdir, "values.yaml")
if err := validateValuesFile(valfile, map[string]interface{}{}); err == nil { if err := validateValuesFile(valfile, map[string]interface{}{}); err == nil {
t.Fatal("expected values file to fail parsing") t.Fatal("expected values file to fail parsing")
@ -77,7 +76,6 @@ func TestValidateValuesFileWellFormed(t *testing.T) {
func TestValidateValuesFileSchema(t *testing.T) { func TestValidateValuesFileSchema(t *testing.T) {
yaml := "username: admin\npassword: swordfish" yaml := "username: admin\npassword: swordfish"
tmpdir := ensure.TempFile(t, "values.yaml", []byte(yaml)) tmpdir := ensure.TempFile(t, "values.yaml", []byte(yaml))
defer os.RemoveAll(tmpdir)
createTestingSchema(t, tmpdir) createTestingSchema(t, tmpdir)
valfile := filepath.Join(tmpdir, "values.yaml") valfile := filepath.Join(tmpdir, "values.yaml")
@ -90,7 +88,6 @@ func TestValidateValuesFileSchemaFailure(t *testing.T) {
// 1234 is an int, not a string. This should fail. // 1234 is an int, not a string. This should fail.
yaml := "username: 1234\npassword: swordfish" yaml := "username: 1234\npassword: swordfish"
tmpdir := ensure.TempFile(t, "values.yaml", []byte(yaml)) tmpdir := ensure.TempFile(t, "values.yaml", []byte(yaml))
defer os.RemoveAll(tmpdir)
createTestingSchema(t, tmpdir) createTestingSchema(t, tmpdir)
valfile := filepath.Join(tmpdir, "values.yaml") valfile := filepath.Join(tmpdir, "values.yaml")
@ -109,7 +106,6 @@ func TestValidateValuesFileSchemaOverrides(t *testing.T) {
"password": "swordfish", "password": "swordfish",
} }
tmpdir := ensure.TempFile(t, "values.yaml", []byte(yaml)) tmpdir := ensure.TempFile(t, "values.yaml", []byte(yaml))
defer os.RemoveAll(tmpdir)
createTestingSchema(t, tmpdir) createTestingSchema(t, tmpdir)
valfile := filepath.Join(tmpdir, "values.yaml") valfile := filepath.Join(tmpdir, "values.yaml")

@ -80,7 +80,7 @@ func mockArchiveServer() *httptest.Server {
} }
func TestHTTPInstaller(t *testing.T) { func TestHTTPInstaller(t *testing.T) {
defer ensure.HelmHome(t)() ensure.HelmHome(t)
srv := mockArchiveServer() srv := mockArchiveServer()
defer srv.Close() defer srv.Close()
@ -129,7 +129,7 @@ func TestHTTPInstaller(t *testing.T) {
} }
func TestHTTPInstallerNonExistentVersion(t *testing.T) { func TestHTTPInstallerNonExistentVersion(t *testing.T) {
defer ensure.HelmHome(t)() ensure.HelmHome(t)
srv := mockArchiveServer() srv := mockArchiveServer()
defer srv.Close() defer srv.Close()
source := srv.URL + "/plugins/fake-plugin-0.0.1.tar.gz" source := srv.URL + "/plugins/fake-plugin-0.0.1.tar.gz"
@ -165,7 +165,7 @@ func TestHTTPInstallerUpdate(t *testing.T) {
srv := mockArchiveServer() srv := mockArchiveServer()
defer srv.Close() defer srv.Close()
source := srv.URL + "/plugins/fake-plugin-0.0.1.tar.gz" source := srv.URL + "/plugins/fake-plugin-0.0.1.tar.gz"
defer ensure.HelmHome(t)() ensure.HelmHome(t)
if err := os.MkdirAll(helmpath.DataPath("plugins"), 0755); err != nil { if err := os.MkdirAll(helmpath.DataPath("plugins"), 0755); err != nil {
t.Fatalf("Could not create %s: %s", helmpath.DataPath("plugins"), err) t.Fatalf("Could not create %s: %s", helmpath.DataPath("plugins"), err)

@ -49,7 +49,7 @@ func (r *testRepo) UpdateVersion(version string) error {
} }
func TestVCSInstaller(t *testing.T) { func TestVCSInstaller(t *testing.T) {
defer ensure.HelmHome(t)() ensure.HelmHome(t)
if err := os.MkdirAll(helmpath.DataPath("plugins"), 0755); err != nil { if err := os.MkdirAll(helmpath.DataPath("plugins"), 0755); err != nil {
t.Fatalf("Could not create %s: %s", helmpath.DataPath("plugins"), err) t.Fatalf("Could not create %s: %s", helmpath.DataPath("plugins"), err)
@ -102,7 +102,7 @@ func TestVCSInstaller(t *testing.T) {
} }
func TestVCSInstallerNonExistentVersion(t *testing.T) { func TestVCSInstallerNonExistentVersion(t *testing.T) {
defer ensure.HelmHome(t)() ensure.HelmHome(t)
source := "https://github.com/adamreese/helm-env" source := "https://github.com/adamreese/helm-env"
version := "0.2.0" version := "0.2.0"
@ -124,7 +124,7 @@ func TestVCSInstallerNonExistentVersion(t *testing.T) {
} }
} }
func TestVCSInstallerUpdate(t *testing.T) { func TestVCSInstallerUpdate(t *testing.T) {
defer ensure.HelmHome(t)() ensure.HelmHome(t)
source := "https://github.com/adamreese/helm-env" source := "https://github.com/adamreese/helm-env"

@ -31,7 +31,7 @@ import (
// Young'n, in these here parts, we test our tests. // Young'n, in these here parts, we test our tests.
func TestServer(t *testing.T) { func TestServer(t *testing.T) {
defer ensure.HelmHome(t)() ensure.HelmHome(t)
rootDir := ensure.TempDir(t) rootDir := ensure.TempDir(t)
defer os.RemoveAll(rootDir) defer os.RemoveAll(rootDir)
@ -99,7 +99,7 @@ func TestServer(t *testing.T) {
} }
func TestNewTempServer(t *testing.T) { func TestNewTempServer(t *testing.T) {
defer ensure.HelmHome(t)() ensure.HelmHome(t)
srv, err := NewTempServerWithCleanup(t, "testdata/examplechart-0.1.0.tgz") srv, err := NewTempServerWithCleanup(t, "testdata/examplechart-0.1.0.tgz")
if err != nil { if err != nil {

Loading…
Cancel
Save