Skip to content

Commit b4582e0

Browse files
michalvavriksquakez
authored andcommitted
Let Golang testing framework clean any temporary data
Closes: - #6192 Changes: - temporary files created during tests are placed in a temporary directory deleted by the testing framework - all the top-level temporary directories created for the tests are now deleted by the testing framework - pattern in the temporary directory is lost as the testing framework does not allow to add the pattern, hence we use the default temp dir name - test 'TestPermissionDenied' changes the file permissions to the temporary directory, therefore we need to change it back so that the testing framework can delete the folder
1 parent b2f6324 commit b4582e0

File tree

14 files changed

+69
-84
lines changed

14 files changed

+69
-84
lines changed

e2e/common/cli/promote_test.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ package common
2424

2525
import (
2626
"context"
27-
"os"
2827
"testing"
2928

3029
corev1 "k8s.io/api/core/v1"
@@ -47,10 +46,7 @@ func TestKamelPromoteGitOps(t *testing.T) {
4746
})
4847
WithNewTestNamespace(t, func(ctx context.Context, g *WithT, nsTarget string) {
4948
// Export to GitOps directory structure
50-
tmpDir, err := os.MkdirTemp("", "ck-promote-it-*")
51-
if err != nil {
52-
t.Error(err)
53-
}
49+
tmpDir := t.TempDir()
5450
g.Expect(Kamel(t, ctx, "promote", "yaml", "-n", ns, "--to", nsTarget, "--export-gitops-dir", tmpDir).Execute()).To(Succeed())
5551
// Run the exported Integration as it would be any CICD
5652
ExpectExecSucceed(t, g, Kubectl("apply", "-k", tmpDir+"/yaml/overlays/"+nsTarget))

pkg/builder/common_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ import (
2828
)
2929

3030
func TestProcessDependenciesSkipNested(t *testing.T) {
31-
tmpDir, err := os.MkdirTemp("", "ck-deps-dir")
32-
require.NoError(t, err)
31+
tmpDir := t.TempDir()
3332
tmpDirNested, err := os.MkdirTemp(tmpDir, "nested")
3433
require.NoError(t, err)
3534
err = util.WriteFileWithContent(path.Join(tmpDir, "deps.jar"), []byte("bogus"))
@@ -48,8 +47,7 @@ func TestProcessDependenciesSkipNested(t *testing.T) {
4847
}
4948

5049
func TestProcessDependenciesIncludeNested(t *testing.T) {
51-
tmpDir, err := os.MkdirTemp("", "ck-deps-dir")
52-
require.NoError(t, err)
50+
tmpDir := t.TempDir()
5351
tmpDirNested, err := os.MkdirTemp(tmpDir, "nested")
5452
require.NoError(t, err)
5553
err = util.WriteFileWithContent(path.Join(tmpDir, "deps.jar"), []byte("bogus"))

pkg/builder/git_test.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ import (
3232
)
3333

3434
func TestGitPublicRepo(t *testing.T) {
35-
tmpGitDir, err := os.MkdirTemp("", "ck-git-dir")
36-
require.NoError(t, err)
35+
tmpGitDir := t.TempDir()
3736

3837
ctx := &builderContext{
3938
C: context.TODO(),
@@ -45,7 +44,7 @@ func TestGitPublicRepo(t *testing.T) {
4544
},
4645
}
4746

48-
err = cloneProject(ctx)
47+
err := cloneProject(ctx)
4948
require.NoError(t, err)
5049
f, err := os.Stat(path.Join(tmpGitDir, "maven", "pom.xml"))
5150
require.NoError(t, err)
@@ -75,8 +74,7 @@ func TestGitPublicRepo(t *testing.T) {
7574
}
7675

7776
func TestGitPrivateRepoFail(t *testing.T) {
78-
tmpGitDir, err := os.MkdirTemp("", "ck-git-dir")
79-
require.NoError(t, err)
77+
tmpGitDir := t.TempDir()
8078

8179
ctx := &builderContext{
8280
Path: tmpGitDir,
@@ -87,7 +85,7 @@ func TestGitPrivateRepoFail(t *testing.T) {
8785
},
8886
}
8987

90-
err = cloneProject(ctx)
88+
err := cloneProject(ctx)
9189
require.Error(t, err)
9290
assert.Contains(t, err.Error(), "authentication required")
9391
_, err = os.Stat(path.Join(tmpGitDir, "maven", "pom.xml"))

pkg/builder/jib_test.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ package builder
2020
import (
2121
"context"
2222
"fmt"
23-
"os"
2423
"path/filepath"
2524
"strings"
2625
"testing"
@@ -32,8 +31,7 @@ import (
3231
)
3332

3433
func TestJibBuildMavenArgs(t *testing.T) {
35-
tmpMvnCtxDir, err := os.MkdirTemp("", "my-build-test")
36-
require.NoError(t, err)
34+
tmpMvnCtxDir := t.TempDir()
3735
args := buildJibMavenArgs(tmpMvnCtxDir, "my-image", "my-base-image", true, nil)
3836
expectedParams := strings.Split(
3937
fmt.Sprintf("jib:build -Djib.disableUpdateChecks=true -P jib -Djib.to.image=my-image "+
@@ -43,8 +41,7 @@ func TestJibBuildMavenArgs(t *testing.T) {
4341
}
4442

4543
func TestJibBuildMavenArgsWithPlatforms(t *testing.T) {
46-
tmpMvnCtxDir, err := os.MkdirTemp("", "my-build-test")
47-
require.NoError(t, err)
44+
tmpMvnCtxDir := t.TempDir()
4845
args := buildJibMavenArgs(tmpMvnCtxDir, "my-image", "my-base-image", true, []string{"amd64", "arm64"})
4946
expectedParams := strings.Split(
5047
fmt.Sprintf("jib:build -Djib.disableUpdateChecks=true -P jib -Djib.to.image=my-image "+
@@ -55,13 +52,12 @@ func TestJibBuildMavenArgsWithPlatforms(t *testing.T) {
5552
}
5653

5754
func TestInjectJibProfileMissingPom(t *testing.T) {
58-
tmpMvnCtxDir, err := os.MkdirTemp("", "ck-jib-profile-test")
59-
require.NoError(t, err)
55+
tmpMvnCtxDir := t.TempDir()
6056
builderContext := builderContext{
6157
C: context.TODO(),
6258
Path: tmpMvnCtxDir,
6359
}
64-
err = injectJibProfile(&builderContext)
60+
err := injectJibProfile(&builderContext)
6561
assert.Error(t, err)
6662
assert.Contains(t, err.Error(), "no such file or directory")
6763
}
@@ -73,16 +69,15 @@ var poms = []string{
7369
}
7470

7571
func TestInjectJibProfiles(t *testing.T) {
76-
tmpMvnCtxDir, err := os.MkdirTemp("", "ck-jib-profile-test")
77-
require.NoError(t, err)
72+
tmpMvnCtxDir := t.TempDir()
7873
builderContext := builderContext{
7974
C: context.TODO(),
8075
Path: tmpMvnCtxDir,
8176
}
8277

8378
for _, p := range poms {
8479
pom := filepath.Join(tmpMvnCtxDir, "maven", "pom.xml")
85-
err = util.WriteFileWithContent(pom, []byte(p))
80+
err := util.WriteFileWithContent(pom, []byte(p))
8681
require.NoError(t, err)
8782
err = injectJibProfile(&builderContext)
8883
require.NoError(t, err)

pkg/builder/quarkus_test.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,7 @@ func TestLoadCamelQuarkusCatalogOk(t *testing.T) {
104104
}
105105

106106
func TestGenerateQuarkusProjectWithBuildTimeProperties(t *testing.T) {
107-
tmpDir, err := os.MkdirTemp("", "go-test-camel-k-quarkus-with-props")
108-
require.NoError(t, err)
107+
tmpDir := t.TempDir()
109108
defaultCatalog, err := camel.DefaultCatalog()
110109
require.NoError(t, err)
111110

@@ -167,8 +166,7 @@ func TestGenerateQuarkusProjectWithBuildTimeProperties(t *testing.T) {
167166
}
168167

169168
func TestGenerateQuarkusProjectWithNativeSources(t *testing.T) {
170-
tmpDir, err := os.MkdirTemp("", "go-test-camel-k-quarkus-native")
171-
require.NoError(t, err)
169+
tmpDir := t.TempDir()
172170
defaultCatalog, err := camel.DefaultCatalog()
173171
require.NoError(t, err)
174172

@@ -227,8 +225,7 @@ func TestGenerateQuarkusProjectWithNativeSources(t *testing.T) {
227225
}
228226

229227
func TestBuildQuarkusRunner(t *testing.T) {
230-
tmpDir, err := os.MkdirTemp("", "go-test-camel-k-quarkus")
231-
require.NoError(t, err)
228+
tmpDir := t.TempDir()
232229
defaultCatalog, err := camel.DefaultCatalog()
233230
require.NoError(t, err)
234231
c, err := internal.NewFakeClient(&v1.CamelCatalog{

pkg/cmd/bind_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,8 @@ func TestBindServiceAccountName(t *testing.T) {
267267
}
268268

269269
func TestBindOutputWithoutKubernetesCluster(t *testing.T) {
270-
tmpFile, err := os.CreateTemp("", "camel-k-kubeconfig-*")
270+
tempDir := t.TempDir()
271+
tmpFile, err := os.CreateTemp(tempDir, "camel-k-kubeconfig-*")
271272
require.NoError(t, err)
272273

273274
bindCmdOptions, bindCmd, _ := initializeBindCmdOptions(t)

pkg/cmd/promote_test.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -595,10 +595,7 @@ func TestIntegrationGitOps(t *testing.T) {
595595
srcCatalog := createTestCamelCatalog(srcPlatform)
596596
dstCatalog := createTestCamelCatalog(dstPlatform)
597597

598-
tmpDir, err := os.MkdirTemp("", "ck-promote-it-*")
599-
if err != nil {
600-
t.Error(err)
601-
}
598+
tmpDir := t.TempDir()
602599

603600
_, promoteCmd, _ := initializePromoteCmdOptions(t, &srcPlatform, &dstPlatform, &defaultIntegration, &defaultKit, &srcCatalog, &dstCatalog)
604601
output, err := ExecuteCommand(promoteCmd, cmdPromote, "my-it-test", "--to", "prod-namespace", "--export-gitops-dir", tmpDir, "-n", "default")
@@ -702,10 +699,7 @@ func TestPipeGitOps(t *testing.T) {
702699
srcCatalog := createTestCamelCatalog(srcPlatform)
703700
dstCatalog := createTestCamelCatalog(dstPlatform)
704701

705-
tmpDir, err := os.MkdirTemp("", "ck-promote-pipe-*")
706-
if err != nil {
707-
t.Error(err)
708-
}
702+
tmpDir := t.TempDir()
709703

710704
_, promoteCmd, _ := initializePromoteCmdOptions(t, &srcPlatform, &dstPlatform, &defaultKB, &defaultIntegration, &defaultKit, &srcCatalog, &dstCatalog)
711705
output, err := ExecuteCommand(promoteCmd, cmdPromote, "my-pipe-test", "--to", "prod-namespace", "--export-gitops-dir", tmpDir, "-n", "default")

pkg/cmd/run_test.go

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,8 @@ func TestExtractProperties_SingleKeyValue(t *testing.T) {
300300
func TestExtractProperties_FromFile(t *testing.T) {
301301
var tmpFile1 *os.File
302302
var err error
303-
if tmpFile1, err = os.CreateTemp("", "camel-k-*.properties"); err != nil {
303+
tempDir := t.TempDir()
304+
if tmpFile1, err = os.CreateTemp(tempDir, "camel-k-*.properties"); err != nil {
304305
t.Error(err)
305306
}
306307

@@ -324,7 +325,8 @@ func TestExtractProperties_FromFile(t *testing.T) {
324325
func TestExtractPropertiesFromFileAndSingleValue(t *testing.T) {
325326
var tmpFile1 *os.File
326327
var err error
327-
if tmpFile1, err = os.CreateTemp("", "camel-k-*.properties"); err != nil {
328+
tempDir := t.TempDir()
329+
if tmpFile1, err = os.CreateTemp(tempDir, "camel-k-*.properties"); err != nil {
328330
t.Error(err)
329331
}
330332

@@ -351,7 +353,8 @@ func TestExtractPropertiesFromFileAndSingleValue(t *testing.T) {
351353
func TestAddPropertyFile(t *testing.T) {
352354
var tmpFile *os.File
353355
var err error
354-
if tmpFile, err = os.CreateTemp("", "camel-k-"); err != nil {
356+
tempDir := t.TempDir()
357+
if tmpFile, err = os.CreateTemp(tempDir, "camel-k-"); err != nil {
355358
t.Error(err)
356359
}
357360

@@ -582,7 +585,8 @@ public class Sample extends RouteBuilder {
582585
func TestOutputYaml(t *testing.T) {
583586
var tmpFile *os.File
584587
var err error
585-
if tmpFile, err = os.CreateTemp("", "camel-k-"); err != nil {
588+
tempDir := t.TempDir()
589+
if tmpFile, err = os.CreateTemp(tempDir, "camel-k-"); err != nil {
586590
t.Error(err)
587591
}
588592

@@ -616,7 +620,8 @@ status: {}
616620
func TestTrait(t *testing.T) {
617621
var tmpFile *os.File
618622
var err error
619-
if tmpFile, err = os.CreateTemp("", "camel-k-"); err != nil {
623+
tempDir := t.TempDir()
624+
if tmpFile, err = os.CreateTemp(tempDir, "camel-k-"); err != nil {
620625
t.Error(err)
621626
}
622627

@@ -653,7 +658,8 @@ status: {}
653658
func TestMissingTrait(t *testing.T) {
654659
var tmpFile *os.File
655660
var err error
656-
if tmpFile, err = os.CreateTemp("", "camel-k-"); err != nil {
661+
tempDir := t.TempDir()
662+
if tmpFile, err = os.CreateTemp(tempDir, "camel-k-"); err != nil {
657663
t.Error(err)
658664
}
659665

@@ -703,7 +709,8 @@ func TestResolveJsonPodTemplateWithSupplementalGroups(t *testing.T) {
703709
func TestIntegrationServiceAccountName(t *testing.T) {
704710
var tmpFile *os.File
705711
var err error
706-
if tmpFile, err = os.CreateTemp("", "camel-k-"); err != nil {
712+
tempDir := t.TempDir()
713+
if tmpFile, err = os.CreateTemp(tempDir, "camel-k-"); err != nil {
707714
t.Error(err)
708715
}
709716

@@ -720,7 +727,8 @@ func TestIntegrationServiceAccountName(t *testing.T) {
720727
func TestFileProperties(t *testing.T) {
721728
var tmpFile1 *os.File
722729
var err error
723-
if tmpFile1, err = os.CreateTemp("", "camel-k-*.properties"); err != nil {
730+
tempDir := t.TempDir()
731+
if tmpFile1, err = os.CreateTemp(tempDir, "camel-k-*.properties"); err != nil {
724732
t.Error(err)
725733
}
726734

@@ -732,7 +740,7 @@ func TestFileProperties(t *testing.T) {
732740
`), 0o400))
733741

734742
var tmpFile *os.File
735-
if tmpFile, err = os.CreateTemp("", "camel-k-"); err != nil {
743+
if tmpFile, err = os.CreateTemp(tempDir, "camel-k-"); err != nil {
736744
t.Error(err)
737745
}
738746

@@ -752,7 +760,8 @@ func TestFileProperties(t *testing.T) {
752760
func TestPropertyShouldNotExpand(t *testing.T) {
753761
var tmpFile1 *os.File
754762
var err error
755-
if tmpFile1, err = os.CreateTemp("", "camel-k-*.properties"); err != nil {
763+
tempDir := t.TempDir()
764+
if tmpFile1, err = os.CreateTemp(tempDir, "camel-k-*.properties"); err != nil {
756765
t.Error(err)
757766
}
758767

@@ -762,7 +771,7 @@ func TestPropertyShouldNotExpand(t *testing.T) {
762771
`), 0o400))
763772

764773
var tmpFile *os.File
765-
if tmpFile, err = os.CreateTemp("", "camel-k-"); err != nil {
774+
if tmpFile, err = os.CreateTemp(tempDir, "camel-k-"); err != nil {
766775
t.Error(err)
767776
}
768777

@@ -784,7 +793,8 @@ func TestPropertyShouldNotExpand(t *testing.T) {
784793
func TestRunOutput(t *testing.T) {
785794
var tmpFile1 *os.File
786795
var err error
787-
if tmpFile1, err = os.CreateTemp("", "camel-k-*.yaml"); err != nil {
796+
tempDir := t.TempDir()
797+
if tmpFile1, err = os.CreateTemp(tempDir, "camel-k-*.yaml"); err != nil {
788798
t.Error(err)
789799
}
790800
defer tmpFile1.Close()
@@ -811,10 +821,7 @@ func TestRunOutput(t *testing.T) {
811821
}
812822

813823
func TestRunGlob(t *testing.T) {
814-
dir, err := os.MkdirTemp("", "camel-k-TestRunGlob-*")
815-
if err != nil {
816-
t.Error(err)
817-
}
824+
dir := t.TempDir()
818825

819826
pattern := "camel-k-*.yaml"
820827

@@ -846,10 +853,7 @@ func TestRunGlob(t *testing.T) {
846853
}
847854

848855
func TestRunGlobAllFiles(t *testing.T) {
849-
dir, err := os.MkdirTemp("", "camel-k-TestRunGlobAllFiles-*")
850-
if err != nil {
851-
t.Error(err)
852-
}
856+
dir := t.TempDir()
853857

854858
pattern := "camel-k-*.yaml"
855859

@@ -881,10 +885,7 @@ func TestRunGlobAllFiles(t *testing.T) {
881885
}
882886

883887
func TestRunGlobChange(t *testing.T) {
884-
dir, err := os.MkdirTemp("", "camel-k-TestRunGlobChange-*")
885-
if err != nil {
886-
t.Error(err)
887-
}
888+
dir := t.TempDir()
888889

889890
pattern := "camel-k-*.yaml"
890891

@@ -924,7 +925,8 @@ func TestRunGlobChange(t *testing.T) {
924925
}
925926

926927
func TestRunOutputWithoutKubernetesCluster(t *testing.T) {
927-
tmpFile, err := os.CreateTemp("", "camel-k-kubeconfig-*")
928+
tempDir := t.TempDir()
929+
tmpFile, err := os.CreateTemp(tempDir, "camel-k-kubeconfig-*")
928930
require.NoError(t, err)
929931

930932
runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)

pkg/cmd/source/util_test.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,11 @@ func TestPermissionDenied(t *testing.T) {
4848
t.Skip("Test not reliably producing a result on a windows OS")
4949
}
5050

51-
dir, err := os.MkdirTemp("/tmp", "camel-k-")
51+
dir := t.TempDir()
52+
53+
fileInfo, err := os.Stat(dir)
5254
require.NoError(t, err)
55+
originalDirMode := fileInfo.Mode()
5356

5457
filename := filepath.Join(dir, "file.txt")
5558
f, err := os.Create(filename)
@@ -63,6 +66,10 @@ func TestPermissionDenied(t *testing.T) {
6366
// must not panic because a permission error
6467
require.Error(t, err)
6568
assert.False(t, value)
69+
70+
// restore original directory permissions, so that the Golang test framework can delete it
71+
err = os.Chmod(dir, originalDirMode)
72+
require.NoError(t, err)
6673
}
6774

6875
func TestSupportedScheme(t *testing.T) {

0 commit comments

Comments
 (0)