From f342975ff31e5a59b4534b3fb216250365468b1f Mon Sep 17 00:00:00 2001 From: DanHam Date: Tue, 24 Apr 2018 22:17:36 +0100 Subject: [PATCH] Fix test - reporting compaction results requires a tmp file --- .../vmware/common/step_compact_disk_test.go | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/builder/vmware/common/step_compact_disk_test.go b/builder/vmware/common/step_compact_disk_test.go index d3884f8d5..fec048f9a 100644 --- a/builder/vmware/common/step_compact_disk_test.go +++ b/builder/vmware/common/step_compact_disk_test.go @@ -2,6 +2,8 @@ package common import ( "context" + "io/ioutil" + "os" "testing" "github.com/hashicorp/packer/helper/multistep" @@ -15,8 +17,25 @@ func TestStepCompactDisk(t *testing.T) { state := testState(t) step := new(StepCompactDisk) - diskPaths := []string{"foo"} - state.Put("disk_full_paths", diskPaths) + // Create a fake vmdk file for disk file size operations + diskFile, err := ioutil.TempFile("", "disk.vmdk") + if err != nil { + t.Fatalf("Error creating fake vmdk file: %s", err) + } + + diskPath := diskFile.Name() + defer os.Remove(diskPath) + + content := []byte("I am the fake vmdk's contents") + if _, err := diskFile.Write(content); err != nil { + t.Fatalf("Error writing to fake vmdk file: %s", err) + } + if err := diskFile.Close(); err != nil { + t.Fatalf("Error closing fake vmdk file: %s", err) + } + + // Set up required state + state.Put("disk_full_paths", []string{diskPath}) driver := state.Get("driver").(*DriverMock) @@ -32,7 +51,7 @@ func TestStepCompactDisk(t *testing.T) { if !driver.CompactDiskCalled { t.Fatal("should've called") } - if driver.CompactDiskPath != "foo" { + if driver.CompactDiskPath != diskPath { t.Fatal("should call with right path") } }