packer-cn/post-processor/digitalocean-import/post-processor_test.go

40 lines
1.3 KiB
Go
Raw Normal View History

2018-11-22 21:33:34 -05:00
package digitaloceanimport
import (
"testing"
2020-12-17 16:29:25 -05:00
packersdk "github.com/hashicorp/packer-plugin-sdk/packer"
2018-11-22 21:33:34 -05:00
)
func TestPostProcessor_ImplementsPostProcessor(t *testing.T) {
var _ packersdk.PostProcessor = new(PostProcessor)
2018-11-22 21:33:34 -05:00
}
Add check for empty artifact.Files slice (#9857) * Add check for empty artifact.Files slice Tests before change ``` ⇶ go test ./post-processor/digitalocean-import/... -run=TestPostProcsor_extractImageArtifact 2020/08/31 13:51:25 Looking for image in artifact --- FAIL: TestPostProcsor_extractImageArtifact (0.00s) panic: runtime error: index out of range [0] with length 0 [recovered] panic: runtime error: index out of range [0] with length 0 goroutine 7 [running]: testing.tRunner.func1.1(0xfb0300, 0xc000456460) /usr/local/go/src/testing/testing.go:940 +0x2f5 testing.tRunner.func1(0xc0003ab560) /usr/local/go/src/testing/testing.go:943 +0x3f9 panic(0xfb0300, 0xc000456460) /usr/local/go/src/runtime/panic.go:969 +0x166 github.com/hashicorp/packer/post-processor/digitalocean-import.extractImageArtifact(0x0, 0x0, 0x0, 0x24, 0xc000060ea0, 0x453937, 0x1431250) /home/wilken/Development/packer/post-processor/digitalocean-import/post-processor.go:262 +0x36d github.com/hashicorp/packer/post-processor/digitalocean-import.TestPostProcsor_extractImageArtifact(0xc0003ab560) /home/wilken/Development/packer/post-processor/digitalocean-import/post-processor_test.go:28 +0x2b0 testing.tRunner(0xc0003ab560, 0x1077208) /usr/local/go/src/testing/testing.go:991 +0xdc created by testing.(*T).Run /usr/local/go/src/testing/testing.go:1042 +0x357 FAIL github.com/hashicorp/packer/post-processor/digitalocean-import 0.009s FAIL ``` Tests after change ``` [go-1.14.2] [1] wilken@automaton in ~/Development/packer/ on fix_9848 (ahead 1) ⇶ go test ./post-processor/digitalocean-import/... -run=TestPostProcsor_extractImageArtifact ok github.com/hashicorp/packer/post-processor/digitalocean-import 0.006s ``` * Update to reflect review feedback
2020-09-01 10:59:01 -04:00
func TestPostProcessor_ImageArtifactExtraction(t *testing.T) {
tt := []struct {
Name string
Source string
Artifacts []string
ExpectedError string
}{
{Name: "EmptyArtifacts", ExpectedError: "no artifacts were provided"},
{Name: "SingleArtifact", Source: "Sample.img", Artifacts: []string{"Sample.img"}},
{Name: "SupportedArtifact", Source: "Example.tar.xz", Artifacts: []string{"Sample", "SomeZip.zip", "Example.tar.xz"}},
{Name: "FirstSupportedArtifact", Source: "SomeVMDK.vmdk", Artifacts: []string{"Sample", "SomeVMDK.vmdk", "Example.xz"}},
{Name: "NonSupportedArtifact", Artifacts: []string{"Sample", "SomeZip.zip", "Example.xz"}, ExpectedError: "no valid image file found"},
}
for _, tc := range tt {
tc := tc
source, err := extractImageArtifact(tc.Artifacts)
if tc.Source != source {
t.Errorf("expected the source to be %q, but got %q", tc.Source, source)
}
if err != nil && (tc.ExpectedError != err.Error()) {
t.Errorf("unexpected error received; expected %q, but got %q", tc.ExpectedError, err.Error())
}
}
}