From a9b2f9e9ebf02140ce55cf06207b9c94f0f6bf52 Mon Sep 17 00:00:00 2001 From: HirazawaUi <695097494plus@gmail.com> Date: Wed, 3 May 2023 01:33:28 +0800 Subject: [PATCH] add remove_file in client-go util directory Kubernetes-commit: f49cc5eb113b839a5f5c6121ff0b89f82a483011 --- util/testing/remove_file.go | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 util/testing/remove_file.go diff --git a/util/testing/remove_file.go b/util/testing/remove_file.go new file mode 100644 index 00000000..976b9afa --- /dev/null +++ b/util/testing/remove_file.go @@ -0,0 +1,40 @@ +/* +Copyright 2023 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package testing + +import ( + "os" + "testing" +) + +// CloseAndRemove is a helper to close and remove test file. +func CloseAndRemove(t *testing.T, files ...*os.File) { + t.Helper() + // We should close it first before remove a file, it's not only a good practice, + // but also can avoid failed file removing on Windows OS. + for _, f := range files { + if f == nil { + continue + } + if err := f.Close(); err != nil { + t.Fatalf("Error closing %s: %v", f.Name(), err) + } + if err := os.Remove(f.Name()); err != nil { + t.Fatalf("Error removing %s: %v", f.Name(), err) + } + } +}