From cd4120eb5458396b2900fe83b5543aa7a077c430 Mon Sep 17 00:00:00 2001 From: aram price Date: Fri, 19 Jul 2024 16:07:04 -0700 Subject: [PATCH] more GinkgoT().TempDir() for automatic cleanup --- iaas_cli/iaas_cli_suite_test.go | 2 - iaas_cli/iaas_clients/vcenter_client_test.go | 4 +- .../vcenter_govmomi_contract_test.go | 4 +- integration/construct/construct_suite_test.go | 4 +- integration/interrupt_test.go | 8 +-- .../ovftool/ovftool_darwin_test.go | 65 ++++++------------- .../ovftool/ovftool_portable_test.go | 24 ++----- package_stemcell/ovftool/ovftool_test.go | 18 ++--- .../ovftool/ovftool_windows_test.go | 51 +++++---------- .../packagers/packager_utility_test.go | 9 +-- .../packagers/vcenter_packager_test.go | 6 +- .../packagers/vmdk_packager_test.go | 58 +++++++---------- templates/vmx_test.go | 6 +- 13 files changed, 82 insertions(+), 177 deletions(-) diff --git a/iaas_cli/iaas_cli_suite_test.go b/iaas_cli/iaas_cli_suite_test.go index e0b29915..5ab7efcf 100644 --- a/iaas_cli/iaas_cli_suite_test.go +++ b/iaas_cli/iaas_cli_suite_test.go @@ -18,7 +18,6 @@ var targetVMPath string var vCenterCredentialUrl string var _ = BeforeSuite(func() { - vCenterCredentialUrl = os.Getenv("VCENTER_ADMIN_CREDENTIAL_URL") Expect(vCenterCredentialUrl).NotTo(Equal(""), "VCENTER_ADMIN_CREDENTIAL_URL is required") @@ -28,5 +27,4 @@ var _ = BeforeSuite(func() { Expect(vmName).NotTo(Equal(""), "PACKAGE_TEST_VM_NAME is required") targetVMPath = fmt.Sprintf("%s/%s", vmFolder, vmName) - }) diff --git a/iaas_cli/iaas_clients/vcenter_client_test.go b/iaas_cli/iaas_clients/vcenter_client_test.go index b09e57fb..6734ac0c 100644 --- a/iaas_cli/iaas_clients/vcenter_client_test.go +++ b/iaas_cli/iaas_clients/vcenter_client_test.go @@ -3,7 +3,6 @@ package iaas_clients import ( "errors" "fmt" - "os" "github.com/cloudfoundry/stembuild/iaas_cli/iaas_clifakes" @@ -256,8 +255,9 @@ ethernet-0 VirtualE1000e internal-network Context("ExportVM", func() { var destinationDir string BeforeEach(func() { - destinationDir, _ = os.MkdirTemp(os.TempDir(), "destinationDir") + destinationDir = GinkgoT().TempDir() // automatically cleaned up }) + It("exports the VM to local machine from vcenter using vm inventory path", func() { expectedArgs := []string{"export.ovf", "-u", credentialUrl, "-sha", "1", "-vm", "validVMPath", destinationDir} runner.RunReturns(0) diff --git a/iaas_cli/iaas_clients/vcenter_govmomi_contract_test.go b/iaas_cli/iaas_clients/vcenter_govmomi_contract_test.go index a1e72b59..3e4e3a72 100644 --- a/iaas_cli/iaas_clients/vcenter_govmomi_contract_test.go +++ b/iaas_cli/iaas_clients/vcenter_govmomi_contract_test.go @@ -88,9 +88,7 @@ var _ = Describe("VcenterClient", func() { Skip("export VCENTER_CA_CERT= to run this test") } - tmpDir, err := os.MkdirTemp("", "vcenter-client-contract-tests") - defer os.RemoveAll(tmpDir) - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() // automatically cleaned up f, err := os.CreateTemp(tmpDir, "valid-cert") Expect(err).ToNot(HaveOccurred()) diff --git a/integration/construct/construct_suite_test.go b/integration/construct/construct_suite_test.go index 86699991..a64ec041 100644 --- a/integration/construct/construct_suite_test.go +++ b/integration/construct/construct_suite_test.go @@ -178,7 +178,7 @@ var _ = SynchronizedAfterSuite(func() { _ = os.RemoveAll(tmpDir) }, func() { if pathToCACert != "" { - os.RemoveAll(pathToCACert) + _ = os.RemoveAll(pathToCACert) } }) @@ -305,7 +305,7 @@ func runIgnoringOutput(args []string) int { _, w, _ := os.Pipe() - defer w.Close() + defer func() { _ = w.Close() }() os.Stderr = w os.Stdout = w diff --git a/integration/interrupt_test.go b/integration/interrupt_test.go index 4873f5c4..a1f23c4e 100644 --- a/integration/interrupt_test.go +++ b/integration/interrupt_test.go @@ -16,14 +16,15 @@ import ( var _ = Describe("Interrupts", func() { Describe("catchInterruptSignal", func() { + // Tried to create test to handle 2 interrupts in a row, but timing of processes makes testing difficult + It("cleans up on one interrupt", func() { var err error stembuildExecutable, err = helpers.BuildStembuild("1200.0.0") Expect(err).ToNot(HaveOccurred()) inputVmdk := filepath.Join("..", "test", "data", "expected.vmdk") - tmpDir, err := os.MkdirTemp(os.TempDir(), "stembuild-interrupts") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() // automatically cleaned up session := helpers.Stembuild(stembuildExecutable, "package", "--vmdk", inputVmdk, "--outputDir", tmpDir) time.Sleep(1 * time.Second) @@ -35,8 +36,5 @@ var _ = Describe("Interrupts", func() { stdErr := session.Err.Contents() Expect(string(stdErr)).To(ContainSubstring("received (")) }) - - // Tried to create test to handle 2 interrupts in a row, but timing of processes makes it difficult - // to test }) }) diff --git a/package_stemcell/ovftool/ovftool_darwin_test.go b/package_stemcell/ovftool/ovftool_darwin_test.go index 1ee2cfed..8a1de540 100644 --- a/package_stemcell/ovftool/ovftool_darwin_test.go +++ b/package_stemcell/ovftool/ovftool_darwin_test.go @@ -4,7 +4,9 @@ package ovftool_test import ( + "bytes" "os" + "os/exec" "path/filepath" . "github.com/onsi/ginkgo/v2" @@ -14,66 +16,47 @@ import ( ) var _ = Describe("ovftool darwin", func() { - Context("homeDirectory", func() { - var home = "" - - BeforeEach(func() { - home = os.Getenv("HOME") - }) - - AfterEach(func() { - os.Setenv("HOME", home) - }) - It("returns value of HOME environment variable is set", func() { - Expect(home).NotTo(Equal("")) + envHomedir := "/fake/envHomedir/dir" + GinkgoT().Setenv("HOME", envHomedir) testHome := ovftool.HomeDirectory() - Expect(testHome).To(Equal(home)) + Expect(testHome).To(Equal(envHomedir)) }) It("returns user HOME directory if HOME environment variable is not set", func() { - os.Unsetenv("HOME") + GinkgoT().Setenv("HOME", "") + + osHomedirBytes, err := exec.Command("sh", "-c", "cd ~ && pwd").Output() + Expect(err).NotTo(HaveOccurred()) + osHomedir := string(bytes.TrimSpace(osHomedirBytes)) testHome := ovftool.HomeDirectory() - Expect(testHome).To(Equal(home)) + Expect(testHome).To(Equal(osHomedir)) }) - }) Context("Ovftool", func() { - var oldPath string - BeforeEach(func() { - oldPath = os.Getenv("PATH") - os.Unsetenv("PATH") - }) - - AfterEach(func() { - os.Setenv("PATH", oldPath) + GinkgoT().Setenv("PATH", "") }) It("when ovftool is on the path, its path is returned", func() { - tmpDir, err := os.MkdirTemp(os.TempDir(), "ovftmp") - Expect(err).ToNot(HaveOccurred()) - err = os.WriteFile(filepath.Join(tmpDir, "ovftool"), []byte{}, 0700) + tmpDir := GinkgoT().TempDir() // automatically cleaned up + err := os.WriteFile(filepath.Join(tmpDir, "ovftool"), []byte{}, 0700) Expect(err).ToNot(HaveOccurred()) - os.Setenv("PATH", tmpDir) + GinkgoT().Setenv("PATH", tmpDir) ovfPath, err := ovftool.Ovftool([]string{}) - os.RemoveAll(tmpDir) - Expect(err).ToNot(HaveOccurred()) Expect(ovfPath).To(Equal(filepath.Join(tmpDir, "ovftool"))) }) It("fails when given invalid set of install paths", func() { - tmpDir, err := os.MkdirTemp(os.TempDir(), "ovftmp") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() // automatically cleaned up - _, err = ovftool.Ovftool([]string{tmpDir}) - os.RemoveAll(tmpDir) + _, err := ovftool.Ovftool([]string{tmpDir}) Expect(err).To(HaveOccurred()) }) @@ -87,18 +70,10 @@ var _ = Describe("ovftool darwin", func() { var tmpDir, dummyDir string BeforeEach(func() { - var err error - tmpDir, err = os.MkdirTemp(os.TempDir(), "ovftmp") + tmpDir = GinkgoT().TempDir() // automatically cleaned up + dummyDir = GinkgoT().TempDir() // automatically cleaned up + err := os.WriteFile(filepath.Join(tmpDir, "ovftool"), []byte{}, 0700) Expect(err).ToNot(HaveOccurred()) - dummyDir, err = os.MkdirTemp(os.TempDir(), "trashdir") - Expect(err).ToNot(HaveOccurred()) - err = os.WriteFile(filepath.Join(tmpDir, "ovftool"), []byte{}, 0700) - Expect(err).ToNot(HaveOccurred()) - }) - - AfterEach(func() { - os.RemoveAll(tmpDir) - os.RemoveAll(dummyDir) }) It("Returns the path to the ovftool", func() { diff --git a/package_stemcell/ovftool/ovftool_portable_test.go b/package_stemcell/ovftool/ovftool_portable_test.go index fa8b745a..dc7f4e7e 100644 --- a/package_stemcell/ovftool/ovftool_portable_test.go +++ b/package_stemcell/ovftool/ovftool_portable_test.go @@ -14,33 +14,21 @@ import ( ) var _ = Describe("ovftool", func() { - - var oldPath string - - BeforeEach(func() { - oldPath = os.Getenv("PATH") - os.Unsetenv("PATH") - }) - - AfterEach(func() { - os.Setenv("PATH", oldPath) - }) - It("when ovftool is on the PATH, its path is returned", func() { - tmpDir, err := os.MkdirTemp(os.TempDir(), "ovftmp") - Expect(err).ToNot(HaveOccurred()) - err = os.WriteFile(filepath.Join(tmpDir, "ovftool"), []byte{}, 0700) + tmpDir := GinkgoT().TempDir() // automatically cleaned up + err := os.WriteFile(filepath.Join(tmpDir, "ovftool"), []byte{}, 0700) Expect(err).ToNot(HaveOccurred()) - os.Setenv("PATH", tmpDir) - ovfPath, err := ovftool.Ovftool([]string{}) - os.RemoveAll(tmpDir) + GinkgoT().Setenv("PATH", tmpDir) + ovfPath, err := ovftool.Ovftool([]string{}) Expect(err).ToNot(HaveOccurred()) Expect(ovfPath).To(Equal(filepath.Join(tmpDir, "ovftool"))) }) It("fails when ovftool is not installed in the PATH", func() { + GinkgoT().Setenv("PATH", "/tmp") + _, err := ovftool.Ovftool([]string{}) Expect(err).To(HaveOccurred()) }) diff --git a/package_stemcell/ovftool/ovftool_test.go b/package_stemcell/ovftool/ovftool_test.go index b33dc44a..9648c30a 100644 --- a/package_stemcell/ovftool/ovftool_test.go +++ b/package_stemcell/ovftool/ovftool_test.go @@ -15,26 +15,18 @@ var _ = Describe("ovftool", func() { Context("findExecutable", func() { var exeFolder, outFolder string + var ovftoolExe = "ovftool" + if runtime.GOOS == "windows" { + ovftoolExe += ".exe" + } BeforeEach(func() { - var err error - exeFolder, err = os.MkdirTemp(os.TempDir(), "dummyExecutables") - Expect(err).NotTo(HaveOccurred()) + exeFolder = GinkgoT().TempDir() // automatically cleaned up outFolder = filepath.Join(exeFolder, "out") Expect(os.Mkdir(outFolder, os.ModeDir|os.ModePerm)).To(Succeed()) }) - AfterEach(func() { - err := os.RemoveAll(exeFolder) - Expect(err).NotTo(HaveOccurred()) - }) - - var ovftoolExe = "ovftool" - if runtime.GOOS == "windows" { - ovftoolExe += ".exe" - } - It("given root that has executable and valid executable name, should return location of the executable", func() { Expect(os.WriteFile(filepath.Join(outFolder, ovftoolExe), []byte{}, os.ModePerm)).To(Succeed()) diff --git a/package_stemcell/ovftool/ovftool_windows_test.go b/package_stemcell/ovftool/ovftool_windows_test.go index e855e117..004abb50 100644 --- a/package_stemcell/ovftool/ovftool_windows_test.go +++ b/package_stemcell/ovftool/ovftool_windows_test.go @@ -4,19 +4,16 @@ import ( "os" "path/filepath" - "github.com/cloudfoundry/stembuild/package_stemcell/ovftool" - "golang.org/x/sys/windows/registry" - . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" + "golang.org/x/sys/windows/registry" + + "github.com/cloudfoundry/stembuild/package_stemcell/ovftool" ) var _ = Describe("ovftool", func() { - Context("vmwareInstallPaths", func() { - It("returns install paths when given valid set of registry key paths", func() { - keypaths := []string{ `SOFTWARE\Wow6432Node\VMware, Inc.\VMware Workstation`, `SOFTWARE\Wow6432Node\VMware, Inc.\VMware OVF Tool`, @@ -31,7 +28,7 @@ var _ = Describe("ovftool", func() { }) It("fails when given invalid registry key path", func() { - keypaths := []string{`\SOFTWARE\faketempkey`} + keypaths := []string{`\SOFTWARE\fake-temp-key`} _, err := ovftool.VmwareInstallPaths(keypaths) @@ -57,17 +54,16 @@ var _ = Describe("ovftool", func() { _, exists, err := registry.CreateKey(key, `faketempkey`, registry.WRITE) Expect(err).ToNot(HaveOccurred()) Expect(exists).To(BeFalse()) - keypaths = []string{`\SOFTWARE\faketempkey`} + keypaths = []string{`\SOFTWARE\fake-temp-key`} }) AfterEach(func() { Expect(key).ToNot(BeNil()) - err := registry.DeleteKey(key, `faketempkey`) + err := registry.DeleteKey(key, `fake-temp-key`) Expect(err).ToNot(HaveOccurred()) }) It("fails", func() { - _, err := ovftool.VmwareInstallPaths(keypaths) Expect(err).To(HaveOccurred()) @@ -76,23 +72,16 @@ var _ = Describe("ovftool", func() { }) Context("Ovftool", func() { - var oldPath string - BeforeEach(func() { - oldPath = os.Getenv("PATH") - os.Unsetenv("PATH") - }) - - AfterEach(func() { - os.Setenv("PATH", oldPath) + GinkgoT().Setenv("PATH", "") }) It("when ovftool is on the path, its path is returned", func() { - tmpDir, err := os.MkdirTemp(os.TempDir(), "ovftmp") - Expect(err).ToNot(HaveOccurred()) - err = os.WriteFile(filepath.Join(tmpDir, "ovftool.exe"), []byte{}, 0700) + tmpDir := GinkgoT().TempDir() // automatically cleaned up + err := os.WriteFile(filepath.Join(tmpDir, "ovftool.exe"), []byte{}, 0700) Expect(err).ToNot(HaveOccurred()) - os.Setenv("PATH", tmpDir) + + GinkgoT().Setenv("PATH", tmpDir) ovfPath, err := ovftool.Ovftool([]string{}) os.RemoveAll(tmpDir) @@ -102,11 +91,9 @@ var _ = Describe("ovftool", func() { }) It("fails when given invalid set of install paths", func() { - tmpDir, err := os.MkdirTemp(os.TempDir(), "ovftmp") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() // automatically cleaned up _, err = ovftool.Ovftool([]string{tmpDir}) - os.RemoveAll(tmpDir) Expect(err).To(HaveOccurred()) }) @@ -120,22 +107,14 @@ var _ = Describe("ovftool", func() { var tmpDir, dummyDir string BeforeEach(func() { - var err error - tmpDir, err = os.MkdirTemp(os.TempDir(), "ovftmp") - Expect(err).ToNot(HaveOccurred()) - dummyDir, err = os.MkdirTemp(os.TempDir(), "trashdir") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() // automatically cleaned up + dummyDir := GinkgoT().TempDir() // automatically cleaned up err = os.WriteFile(filepath.Join(tmpDir, "ovftool.exe"), []byte{}, 0644) Expect(err).ToNot(HaveOccurred()) }) - AfterEach(func() { - os.RemoveAll(tmpDir) - os.RemoveAll(dummyDir) - }) - It("Returns the path to the ovftool", func() { - ovfPath, err := ovftool.Ovftool([]string{"notrealdir", dummyDir, tmpDir}) + ovfPath, err := ovftool.Ovftool([]string{"not-real-dir", dummyDir, tmpDir}) Expect(err).ToNot(HaveOccurred()) Expect(ovfPath).To(Equal(filepath.Join(tmpDir, "ovftool.exe"))) diff --git a/package_stemcell/packagers/packager_utility_test.go b/package_stemcell/packagers/packager_utility_test.go index ec92f3bc..e13d2e16 100644 --- a/package_stemcell/packagers/packager_utility_test.go +++ b/package_stemcell/packagers/packager_utility_test.go @@ -20,13 +20,8 @@ var _ bool = Describe("Packager Utility", func() { var destinationDir string BeforeEach(func() { - sourceDir, _ = os.MkdirTemp(os.TempDir(), "packager-utility-test-source") - destinationDir, _ = os.MkdirTemp(os.TempDir(), "packager-utility-test-destination") - }) - - AfterEach(func() { - os.RemoveAll(sourceDir) //nolint:errcheck - os.RemoveAll(destinationDir) //nolint:errcheck + sourceDir = GinkgoT().TempDir() // automatically cleaned up + destinationDir = GinkgoT().TempDir() // automatically cleaned up }) It("should tar all files inside provided folder and return its sha1", func() { diff --git a/package_stemcell/packagers/vcenter_packager_test.go b/package_stemcell/packagers/vcenter_packager_test.go index c9fcf4ad..2ad6cd9a 100644 --- a/package_stemcell/packagers/vcenter_packager_test.go +++ b/package_stemcell/packagers/vcenter_packager_test.go @@ -29,16 +29,12 @@ var _ = Describe("VcenterPackager", func() { var fakeVcenterClient *packagersfakes.FakeIaasClient BeforeEach(func() { - outputDir, _ = os.MkdirTemp(os.TempDir(), "vcenter-test-output-dir") + outputDir = GinkgoT().TempDir() // automatically cleaned up sourceConfig = config.SourceConfig{Password: "password", URL: "url", Username: "username", VmInventoryPath: "path/valid-vm-name"} outputConfig = config.OutputConfig{Os: "2012R2", StemcellVersion: "1200.2", OutputDir: outputDir} fakeVcenterClient = &packagersfakes.FakeIaasClient{} }) - AfterEach(func() { - _ = os.RemoveAll(outputDir) - }) - Context("ValidateSourceParameters", func() { It("returns an error if the vCenter url is invalid", func() { fakeVcenterClient.ValidateUrlReturns(errors.New("vcenter client url error")) diff --git a/package_stemcell/packagers/vmdk_packager_test.go b/package_stemcell/packagers/vmdk_packager_test.go index 303f0343..a09be07d 100644 --- a/package_stemcell/packagers/vmdk_packager_test.go +++ b/package_stemcell/packagers/vmdk_packager_test.go @@ -19,44 +19,35 @@ import ( ) var _ = Describe("VmdkPackager", func() { - var tmpDir string var stembuildConfig package_parameters.VmdkPackageParameters - var c packagers.VmdkPackager + var vmdkPackager packagers.VmdkPackager BeforeEach(func() { - var err error - tmpDir, err = os.MkdirTemp("", "") - Expect(err).NotTo(HaveOccurred()) - stembuildConfig = package_parameters.VmdkPackageParameters{ OSVersion: "2012R2", Version: "1200.1", } - c = packagers.VmdkPackager{ + vmdkPackager = packagers.VmdkPackager{ Stop: make(chan struct{}), Debugf: func(format string, a ...interface{}) {}, BuildOptions: stembuildConfig, } }) - AfterEach(func() { - Expect(os.RemoveAll(tmpDir)).To(Succeed()) - }) - Describe("vmdk", func() { Context("valid vmdk file specified", func() { It("should be valid", func() { - vmdk, err := os.CreateTemp("", "temp.vmdk") Expect(err).ToNot(HaveOccurred()) - defer os.Remove(vmdk.Name()) + defer func() { _ = os.Remove(vmdk.Name()) }() valid, err := packagers.IsValidVMDK(vmdk.Name()) Expect(err).To(BeNil()) Expect(valid).To(BeTrue()) }) }) + Context("invalid vmdk file specified", func() { It("should be invalid", func() { valid, err := packagers.IsValidVMDK(filepath.Join("..", "out", "invalid")) @@ -67,29 +58,28 @@ var _ = Describe("VmdkPackager", func() { }) Describe("CreateImage", func() { - It("successfully creates an image tarball", func() { - c.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk") - err := c.CreateImage() + vmdkPackager.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk") + err := vmdkPackager.CreateImage() Expect(err).NotTo(HaveOccurred()) // the image will be saved to the VmdkPackager's temp directory - tmpdir, err := c.TempDir() + tmpdir, err := vmdkPackager.TempDir() Expect(err).NotTo(HaveOccurred()) outputImagePath := filepath.Join(tmpdir, "image") - Expect(c.Image).To(Equal(outputImagePath)) + Expect(vmdkPackager.Image).To(Equal(outputImagePath)) // Make sure the sha1 sum is correct h := sha1.New() - f, err := os.Open(c.Image) + f, err := os.Open(vmdkPackager.Image) Expect(err).NotTo(HaveOccurred()) _, err = io.Copy(h, f) Expect(err).NotTo(HaveOccurred()) actualShasum := fmt.Sprintf("%x", h.Sum(nil)) - Expect(c.Sha1sum).To(Equal(actualShasum)) + Expect(vmdkPackager.Sha1sum).To(Equal(actualShasum)) // expect the image ova to contain only the following file names expectedNames := []string{ @@ -98,7 +88,7 @@ var _ = Describe("VmdkPackager", func() { "image-disk1.vmdk", } - imageDir, err := helpers.ExtractGzipArchive(c.Image) + imageDir, err := helpers.ExtractGzipArchive(vmdkPackager.Image) Expect(err).NotTo(HaveOccurred()) list, err := os.ReadDir(imageDir) Expect(err).NotTo(HaveOccurred()) @@ -128,12 +118,12 @@ var _ = Describe("VmdkPackager", func() { Context("When VMDK file is invalid", func() { It("returns an error", func() { - c.BuildOptions.VMDKFile = "" + vmdkPackager.BuildOptions.VMDKFile = "" mockCtrl = gomock.NewController(GinkgoT()) mockFileSystem = mockfilesystem.NewMockFileSystem(mockCtrl) - err := c.ValidateFreeSpaceForPackage(mockFileSystem) + err := vmdkPackager.ValidateFreeSpaceForPackage(mockFileSystem) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("could not get vmdk info")) @@ -142,42 +132,42 @@ var _ = Describe("VmdkPackager", func() { Context("When filesystem has enough free space for stemcell (twice the size of the expected free space)", func() { It("does not return an error", func() { - c.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk") + vmdkPackager.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk") mockCtrl = gomock.NewController(GinkgoT()) mockFileSystem = mockfilesystem.NewMockFileSystem(mockCtrl) - vmdkFile, err := os.Stat(c.BuildOptions.VMDKFile) + vmdkFile, err := os.Stat(vmdkPackager.BuildOptions.VMDKFile) Expect(err).ToNot(HaveOccurred()) testVmdkSize := vmdkFile.Size() expectFreeSpace := uint64(testVmdkSize)*2 + (packagers.Gigabyte / 2) - directoryPath := filepath.Dir(c.BuildOptions.VMDKFile) + directoryPath := filepath.Dir(vmdkPackager.BuildOptions.VMDKFile) mockFileSystem.EXPECT().GetAvailableDiskSpace(directoryPath).Return(uint64(expectFreeSpace*2), nil).AnyTimes() - err = c.ValidateFreeSpaceForPackage(mockFileSystem) + err = vmdkPackager.ValidateFreeSpaceForPackage(mockFileSystem) Expect(err).To(Not(HaveOccurred())) }) }) Context("When filesystem does not have enough free space for stemcell (half the size of the expected free space", func() { It("returns error", func() { - c.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk") + vmdkPackager.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk") mockCtrl = gomock.NewController(GinkgoT()) mockFileSystem = mockfilesystem.NewMockFileSystem(mockCtrl) - vmdkFile, err := os.Stat(c.BuildOptions.VMDKFile) + vmdkFile, err := os.Stat(vmdkPackager.BuildOptions.VMDKFile) Expect(err).ToNot(HaveOccurred()) testVmdkSize := vmdkFile.Size() expectFreeSpace := uint64(testVmdkSize)*2 + (packagers.Gigabyte / 2) - directoryPath := filepath.Dir(c.BuildOptions.VMDKFile) + directoryPath := filepath.Dir(vmdkPackager.BuildOptions.VMDKFile) mockFileSystem.EXPECT().GetAvailableDiskSpace(directoryPath).Return(uint64(expectFreeSpace/2), nil).AnyTimes() - err = c.ValidateFreeSpaceForPackage(mockFileSystem) + err = vmdkPackager.ValidateFreeSpaceForPackage(mockFileSystem) Expect(err).To(HaveOccurred()) @@ -188,15 +178,15 @@ var _ = Describe("VmdkPackager", func() { Context("When filesystem fails to provide free space", func() { It("returns error specifying that given disk could not provide free space", func() { - c.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk") + vmdkPackager.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk") mockCtrl = gomock.NewController(GinkgoT()) mockFileSystem = mockfilesystem.NewMockFileSystem(mockCtrl) - directoryPath := filepath.Dir(c.BuildOptions.VMDKFile) + directoryPath := filepath.Dir(vmdkPackager.BuildOptions.VMDKFile) mockFileSystem.EXPECT().GetAvailableDiskSpace(directoryPath).Return(uint64(4), errors.New("some error")).AnyTimes() - err := c.ValidateFreeSpaceForPackage(mockFileSystem) + err := vmdkPackager.ValidateFreeSpaceForPackage(mockFileSystem) Expect(err).To(HaveOccurred()) expectedErrorMsg := "could not check free space on disk: " diff --git a/templates/vmx_test.go b/templates/vmx_test.go index ca2dc428..c6e82b06 100644 --- a/templates/vmx_test.go +++ b/templates/vmx_test.go @@ -73,11 +73,7 @@ func TestVMXTemplate(t *testing.T) { } func TestWriteVMXTemplate(t *testing.T) { - tmpdir, err := os.MkdirTemp("", "test-") - if err != nil { - t.Fatal(err) - } - vmxPath := filepath.Join(tmpdir, "FooBarBaz.vmx") + vmxPath := filepath.Join(t.TempDir(), "FooBarBaz.vmx") if err := templates.WriteVMXTemplate(vmdkPath, virtualHWVersion, vmxPath); err != nil { t.Fatal(err)