From b017814c6da1c2a022a1fcc4c88fbab34dd07af8 Mon Sep 17 00:00:00 2001 From: Ismo Vuorinen Date: Sun, 13 Jul 2025 14:08:23 +0300 Subject: [PATCH] test: check cleanup errors (#22) --- config/config_test.go | 12 ++++++++++-- fileproc/walker_test.go | 18 +++++++++++++++--- fileproc/writer_test.go | 8 ++++++-- main_test.go | 32 ++++++++++++++++++++++++++------ 4 files changed, 57 insertions(+), 13 deletions(-) diff --git a/config/config_test.go b/config/config_test.go index 0d7bd13..8a25cea 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -16,7 +16,11 @@ func TestDefaultConfig(t *testing.T) { if err != nil { t.Fatalf("Failed to create temp directory: %v", err) } - defer os.RemoveAll(tmpDir) + defer func() { + if err := os.RemoveAll(tmpDir); err != nil { + t.Fatalf("cleanup failed: %v", err) + } + }() // Point Viper to the temp directory with no config file. originalConfigPaths := viper.ConfigFileUsed() @@ -46,7 +50,11 @@ func TestLoadConfigFile(t *testing.T) { if err != nil { t.Fatalf("Failed to create temp directory: %v", err) } - defer os.RemoveAll(tmpDir) + defer func() { + if err := os.RemoveAll(tmpDir); err != nil { + t.Fatalf("cleanup failed: %v", err) + } + }() // Prepare a minimal config file configContent := []byte(`--- diff --git a/fileproc/walker_test.go b/fileproc/walker_test.go index 7e5b666..b8fb56d 100644 --- a/fileproc/walker_test.go +++ b/fileproc/walker_test.go @@ -15,7 +15,11 @@ func TestProdWalkerWithIgnore(t *testing.T) { if err != nil { t.Fatalf("Failed to create temp root directory: %v", err) } - defer os.RemoveAll(rootDir) + defer func() { + if err := os.RemoveAll(rootDir); err != nil { + t.Fatalf("cleanup failed: %v", err) + } + }() subDir := filepath.Join(rootDir, "vendor") if err := os.Mkdir(subDir, 0755); err != nil { @@ -69,7 +73,11 @@ func TestProdWalkerBinaryCheck(t *testing.T) { if err != nil { t.Fatalf("Failed to create temp root directory: %v", err) } - defer os.RemoveAll(rootDir) + defer func() { + if err := os.RemoveAll(rootDir); err != nil { + t.Fatalf("cleanup failed: %v", err) + } + }() // Create a mock binary file binFile := filepath.Join(rootDir, "somefile.exe") @@ -108,7 +116,11 @@ func TestProdWalkerSizeLimit(t *testing.T) { if err != nil { t.Fatalf("Failed to create temp root directory: %v", err) } - defer os.RemoveAll(rootDir) + defer func() { + if err := os.RemoveAll(rootDir); err != nil { + t.Fatalf("cleanup failed: %v", err) + } + }() // Create a file exceeding the size limit largeFilePath := filepath.Join(rootDir, "largefile.txt") diff --git a/fileproc/writer_test.go b/fileproc/writer_test.go index e6645f9..5c7a2a2 100644 --- a/fileproc/writer_test.go +++ b/fileproc/writer_test.go @@ -46,8 +46,12 @@ func TestStartWriter_Formats(t *testing.T) { t.Fatalf("Failed to create temp file: %v", err) } defer func() { - outFile.Close() - os.Remove(outFile.Name()) + if err := outFile.Close(); err != nil { + t.Errorf("close temp file: %v", err) + } + if err := os.Remove(outFile.Name()); err != nil { + t.Errorf("remove temp file: %v", err) + } }() // Prepare channels diff --git a/main_test.go b/main_test.go index cdbfae9..a7372cf 100644 --- a/main_test.go +++ b/main_test.go @@ -17,7 +17,11 @@ func TestIntegrationFullCLI(t *testing.T) { if err != nil { t.Fatalf("Failed to create temp source directory: %v", err) } - defer os.RemoveAll(srcDir) + defer func() { + if err := os.RemoveAll(srcDir); err != nil { + t.Fatalf("cleanup failed: %v", err) + } + }() // Create two test files. file1 := filepath.Join(srcDir, "file1.txt") @@ -35,8 +39,14 @@ func TestIntegrationFullCLI(t *testing.T) { t.Fatalf("Failed to create temp output file: %v", err) } outFilePath := outFile.Name() - outFile.Close() - defer os.Remove(outFilePath) + if err := outFile.Close(); err != nil { + t.Fatalf("close temp file: %v", err) + } + defer func() { + if err := os.Remove(outFilePath); err != nil { + t.Fatalf("cleanup output file: %v", err) + } + }() // Set up CLI arguments. os.Args = []string{ @@ -78,7 +88,11 @@ func TestIntegrationCancellation(t *testing.T) { if err != nil { t.Fatalf("Failed to create temp source directory: %v", err) } - defer os.RemoveAll(srcDir) + defer func() { + if err := os.RemoveAll(srcDir); err != nil { + t.Fatalf("cleanup failed: %v", err) + } + }() // Create a large number of small files. for i := 0; i < 1000; i++ { @@ -94,8 +108,14 @@ func TestIntegrationCancellation(t *testing.T) { t.Fatalf("Failed to create temp output file: %v", err) } outFilePath := outFile.Name() - outFile.Close() - defer os.Remove(outFilePath) + if err := outFile.Close(); err != nil { + t.Fatalf("close temp file: %v", err) + } + defer func() { + if err := os.Remove(outFilePath); err != nil { + t.Fatalf("cleanup output file: %v", err) + } + }() // Set up CLI arguments. os.Args = []string{