fix fd leaks and failed file removing for pkg controller-manager and apiserver

This commit is contained in:
HirazawaUi 2023-05-03 01:36:00 +08:00
parent 73aeed8766
commit 982d2966cd
5 changed files with 17 additions and 4 deletions

View File

@ -23,6 +23,8 @@ import (
"reflect"
"testing"
utiltesting "k8s.io/client-go/util/testing"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apiserver/pkg/apis/apiserver"
)
@ -281,7 +283,7 @@ spec:
if err != nil {
t.Fatal(err)
}
defer os.Remove(f.Name())
defer utiltesting.CloseAndRemove(t, f)
if err := ioutil.WriteFile(f.Name(), []byte(tc.contents), os.FileMode(0755)); err != nil {
t.Fatal(err)
}

View File

@ -704,6 +704,7 @@ func bootstrapTestDir(t *testing.T) string {
// Write the certificate files to disk or fail
for fileName, fileData := range files {
if err := ioutil.WriteFile(filepath.Join(dir, fileName), fileData, 0400); err != nil {
os.RemoveAll(dir)
t.Fatal(err)
}
}
@ -713,6 +714,10 @@ func bootstrapTestDir(t *testing.T) string {
func newKubeConfigFile(config v1.Config) (string, error) {
configFile, err := ioutil.TempFile("", "")
if err != nil {
return "", err
}
defer configFile.Close()
if err != nil {
return "", fmt.Errorf("unable to create the Kubernetes client config file: %v", err)

View File

@ -34,6 +34,8 @@ import (
"text/template"
"time"
utiltesting "k8s.io/client-go/util/testing"
"github.com/google/go-cmp/cmp"
authorizationv1 "k8s.io/api/authorization/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -185,7 +187,7 @@ current-context: default
return err
}
p := tempfile.Name()
defer os.Remove(p)
defer utiltesting.CloseAndRemove(t, tempfile)
tmpl, err := template.New("test").Parse(tt.configTmpl)
if err != nil {

View File

@ -21,6 +21,8 @@ import (
"reflect"
"testing"
utiltesting "k8s.io/client-go/util/testing"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
internal "k8s.io/controller-manager/config"
)
@ -117,7 +119,7 @@ controllerLeaders:
if err != nil {
t.Fatal(err)
}
defer os.Remove(configFile.Name())
defer utiltesting.CloseAndRemove(t, configFile)
err = os.WriteFile(configFile.Name(), []byte(tc.content), os.FileMode(0755))
if err != nil {
t.Fatal(err)

View File

@ -21,6 +21,8 @@ import (
"reflect"
"testing"
utiltesting "k8s.io/client-go/util/testing"
"github.com/spf13/pflag"
"k8s.io/controller-manager/config"
@ -188,7 +190,7 @@ controllerLeaders:
if err != nil {
t.Fatal(err)
}
defer os.Remove(configFile.Name())
defer utiltesting.CloseAndRemove(t, configFile)
err = os.WriteFile(configFile.Name(), []byte(tc.configContent), os.FileMode(0755))
if err != nil {
t.Fatal(err)