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" "reflect"
"testing" "testing"
utiltesting "k8s.io/client-go/util/testing"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apiserver/pkg/apis/apiserver" "k8s.io/apiserver/pkg/apis/apiserver"
) )
@ -281,7 +283,7 @@ spec:
if err != nil { if err != nil {
t.Fatal(err) 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 { if err := ioutil.WriteFile(f.Name(), []byte(tc.contents), os.FileMode(0755)); err != nil {
t.Fatal(err) t.Fatal(err)
} }

View File

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

View File

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

View File

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

View File

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