From 5a3b1a0c7c685db9c46b92ff4aa897efd3fcf0a4 Mon Sep 17 00:00:00 2001 From: "Rostislav M. Georgiev" Date: Wed, 6 Mar 2019 12:27:31 +0200 Subject: [PATCH] kubeadm: Don't hardcode temp path in a test Hardcoding a temp path of /tmp/... is not portable and can potentially cause other issues (such as flakyness) too. Use TempFile instead. Signed-off-by: Rostislav M. Georgiev --- cmd/kubeadm/app/cmd/upgrade/common_test.go | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/cmd/kubeadm/app/cmd/upgrade/common_test.go b/cmd/kubeadm/app/cmd/upgrade/common_test.go index f2c228ba285..0c45da63dbf 100644 --- a/cmd/kubeadm/app/cmd/upgrade/common_test.go +++ b/cmd/kubeadm/app/cmd/upgrade/common_test.go @@ -18,11 +18,9 @@ package upgrade import ( "bytes" - "fmt" "io/ioutil" "os" "testing" - "time" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" ) @@ -77,17 +75,25 @@ func TestGetK8sVersionFromUserInput(t *testing.T) { name: "Version is optional", }, } - for tnum, tt := range tcases { + for _, tt := range tcases { t.Run(tt.name, func(t *testing.T) { flags := &applyPlanFlags{} if len(tt.clusterConfig) > 0 { - tmpfile := fmt.Sprintf("/tmp/kubeadm-upgrade-common-test-%d-%d.yaml", tnum, time.Now().Unix()) - if err := ioutil.WriteFile(tmpfile, []byte(tt.clusterConfig), 0666); err != nil { + file, err := ioutil.TempFile("", "kubeadm-upgrade-common-test-*.yaml") + if err != nil { t.Fatalf("Failed to create test config file: %+v", err) } - defer os.Remove(tmpfile) - flags.cfgPath = tmpfile + tmpFileName := file.Name() + defer os.Remove(tmpFileName) + + _, err = file.WriteString(tt.clusterConfig) + file.Close() + if err != nil { + t.Fatalf("Failed to write test config file contents: %+v", err) + } + + flags.cfgPath = tmpFileName } userVersion, err := getK8sVersionFromUserInput(flags, tt.args, tt.isVersionMandatory)