move provisioner acceptance tests into sdk alongside builder acceptance tests. Reorganize slightly to make sure no import cycles of doom get formed
This commit is contained in:
parent
becf7723e6
commit
8f51a8bfae
|
@ -447,7 +447,7 @@ For the Shell provisioner this is:
|
||||||
os.Setenv("PACKER_RUN_UUID", UUID)
|
os.Setenv("PACKER_RUN_UUID", UUID)
|
||||||
}
|
}
|
||||||
file := "provisioner.shell." + UUID + ".txt"
|
file := "provisioner.shell." + UUID + ".txt"
|
||||||
defer testshelper.CleanupFiles(file)
|
defer testutils.CleanupFiles(file)
|
||||||
|
|
||||||
// Run build
|
// Run build
|
||||||
// All provisioner acc tests should contain this code and validation
|
// All provisioner acc tests should contain this code and validation
|
||||||
|
@ -462,7 +462,7 @@ For the Shell provisioner this is:
|
||||||
}
|
}
|
||||||
|
|
||||||
// Any other extra specific validation
|
// Any other extra specific validation
|
||||||
if !testshelper.FileExists(file) {
|
if !testutils.FileExists(file) {
|
||||||
return fmt.Errorf("Expected to find %s", file)
|
return fmt.Errorf("Expected to find %s", file)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -11,9 +11,8 @@ import (
|
||||||
|
|
||||||
"github.com/hashicorp/packer/builder/virtualbox/iso"
|
"github.com/hashicorp/packer/builder/virtualbox/iso"
|
||||||
|
|
||||||
|
"github.com/hashicorp/packer/packer-plugin-sdk/acctest/testutils"
|
||||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||||
|
|
||||||
testshelper "github.com/hashicorp/packer/helper/tests"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type VirtualBoxISOAccTest struct{}
|
type VirtualBoxISOAccTest struct{}
|
||||||
|
@ -34,8 +33,8 @@ func (v *VirtualBoxISOAccTest) GetConfigs() (map[string]string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VirtualBoxISOAccTest) CleanUp() error {
|
func (v *VirtualBoxISOAccTest) CleanUp() error {
|
||||||
testshelper.CleanupFiles("virtualbox-iso-packer-acc-test")
|
testutils.CleanupFiles("virtualbox-iso-packer-acc-test")
|
||||||
testshelper.CleanupFiles("packer_cache")
|
testutils.CleanupFiles("packer_cache")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
package testshelper
|
package provisioneracc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"os"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
amazonebsbuilder "github.com/hashicorp/packer/builder/amazon/ebs"
|
amazonebsbuilder "github.com/hashicorp/packer/builder/amazon/ebs"
|
||||||
|
@ -13,14 +12,6 @@ import (
|
||||||
"github.com/hashicorp/packer/provisioner/shell"
|
"github.com/hashicorp/packer/provisioner/shell"
|
||||||
)
|
)
|
||||||
|
|
||||||
// fileExists returns true if the filename is found
|
|
||||||
func FileExists(filename string) bool {
|
|
||||||
if _, err := os.Stat(filename); err == nil {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
// testCoreConfigBuilder creates a packer CoreConfig that has a file builder
|
// testCoreConfigBuilder creates a packer CoreConfig that has a file builder
|
||||||
// available. This allows us to test a builder that writes files to disk.
|
// available. This allows us to test a builder that writes files to disk.
|
||||||
func testCoreConfigBuilder(t *testing.T) *packer.CoreConfig {
|
func testCoreConfigBuilder(t *testing.T) *packer.CoreConfig {
|
||||||
|
@ -50,9 +41,3 @@ func TestMetaFile(t *testing.T) command.Meta {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func CleanupFiles(moreFiles ...string) {
|
|
||||||
for _, file := range moreFiles {
|
|
||||||
os.RemoveAll(file)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
package acc
|
package provisioneracc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
@ -9,11 +9,10 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
testshelper "github.com/hashicorp/packer/helper/tests"
|
|
||||||
|
|
||||||
amazonEBS "github.com/hashicorp/packer/builder/amazon/ebs/acceptance"
|
amazonEBS "github.com/hashicorp/packer/builder/amazon/ebs/acceptance"
|
||||||
virtualboxISO "github.com/hashicorp/packer/builder/virtualbox/iso/acceptance"
|
virtualboxISO "github.com/hashicorp/packer/builder/virtualbox/iso/acceptance"
|
||||||
"github.com/hashicorp/packer/command"
|
"github.com/hashicorp/packer/command"
|
||||||
|
"github.com/hashicorp/packer/packer-plugin-sdk/acctest/testutils"
|
||||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -56,7 +55,7 @@ func TestProvisionersAgainstBuilders(provisionerAcc ProvisionerAcceptance, t *te
|
||||||
|
|
||||||
err = provisionerAcc.RunTest(c, args)
|
err = provisionerAcc.RunTest(c, args)
|
||||||
// Cleanup created resources
|
// Cleanup created resources
|
||||||
testshelper.CleanupFiles(fileName)
|
testutils.CleanupFiles(fileName)
|
||||||
cleanErr := builderAcc.CleanUp()
|
cleanErr := builderAcc.CleanUp()
|
||||||
if cleanErr != nil {
|
if cleanErr != nil {
|
||||||
log.Printf("bad: failed to clean up resources: %s", cleanErr.Error())
|
log.Printf("bad: failed to clean up resources: %s", cleanErr.Error())
|
||||||
|
@ -122,7 +121,7 @@ func writeJsonTemplate(out *bytes.Buffer, filePath string, t *testing.T) {
|
||||||
|
|
||||||
func buildCommand(t *testing.T, builder BuilderAcceptance, provisioner ProvisionerAcceptance) *command.BuildCommand {
|
func buildCommand(t *testing.T, builder BuilderAcceptance, provisioner ProvisionerAcceptance) *command.BuildCommand {
|
||||||
c := &command.BuildCommand{
|
c := &command.BuildCommand{
|
||||||
Meta: testshelper.TestMetaFile(t),
|
Meta: TestMetaFile(t),
|
||||||
}
|
}
|
||||||
c.CoreConfig.Components.BuilderStore = builder.GetBuilderStore()
|
c.CoreConfig.Components.BuilderStore = builder.GetBuilderStore()
|
||||||
c.CoreConfig.Components.ProvisionerStore = provisioner.GetProvisionerStore()
|
c.CoreConfig.Components.ProvisionerStore = provisioner.GetProvisionerStore()
|
|
@ -0,0 +1,18 @@
|
||||||
|
package testutils
|
||||||
|
|
||||||
|
import "os"
|
||||||
|
|
||||||
|
// CleanupFiles removes all files in the given strings.
|
||||||
|
func CleanupFiles(moreFiles ...string) {
|
||||||
|
for _, file := range moreFiles {
|
||||||
|
os.RemoveAll(file)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FileExists returns true if the filename is found.
|
||||||
|
func FileExists(filename string) bool {
|
||||||
|
if _, err := os.Stat(filename); err == nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
|
@ -10,7 +10,7 @@ import (
|
||||||
|
|
||||||
"github.com/hashicorp/go-uuid"
|
"github.com/hashicorp/go-uuid"
|
||||||
"github.com/hashicorp/packer/command"
|
"github.com/hashicorp/packer/command"
|
||||||
"github.com/hashicorp/packer/helper/tests/acc"
|
"github.com/hashicorp/packer/packer-plugin-sdk/acctest/provisioneracc"
|
||||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||||
"github.com/hashicorp/packer/provisioner/powershell"
|
"github.com/hashicorp/packer/provisioner/powershell"
|
||||||
windowsshellprovisioner "github.com/hashicorp/packer/provisioner/windows-shell"
|
windowsshellprovisioner "github.com/hashicorp/packer/provisioner/windows-shell"
|
||||||
|
@ -19,24 +19,24 @@ import (
|
||||||
const TestProvisionerName = "powershell"
|
const TestProvisionerName = "powershell"
|
||||||
|
|
||||||
func TestAccPowershellProvisioner_basic(t *testing.T) {
|
func TestAccPowershellProvisioner_basic(t *testing.T) {
|
||||||
acc.TestProvisionersPreCheck(TestProvisionerName, t)
|
provisioneracc.TestProvisionersPreCheck(TestProvisionerName, t)
|
||||||
|
|
||||||
testProvisioner := PowershellProvisionerAccTest{"powershell-provisioner-cleanup.txt"}
|
testProvisioner := PowershellProvisionerAccTest{"powershell-provisioner-cleanup.txt"}
|
||||||
acc.TestProvisionersAgainstBuilders(&testProvisioner, t)
|
provisioneracc.TestProvisionersAgainstBuilders(&testProvisioner, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAccPowershellProvisioner_Inline(t *testing.T) {
|
func TestAccPowershellProvisioner_Inline(t *testing.T) {
|
||||||
acc.TestProvisionersPreCheck(TestProvisionerName, t)
|
provisioneracc.TestProvisionersPreCheck(TestProvisionerName, t)
|
||||||
|
|
||||||
testProvisioner := PowershellProvisionerAccTest{"powershell-inline-provisioner.txt"}
|
testProvisioner := PowershellProvisionerAccTest{"powershell-inline-provisioner.txt"}
|
||||||
acc.TestProvisionersAgainstBuilders(&testProvisioner, t)
|
provisioneracc.TestProvisionersAgainstBuilders(&testProvisioner, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAccPowershellProvisioner_Script(t *testing.T) {
|
func TestAccPowershellProvisioner_Script(t *testing.T) {
|
||||||
acc.TestProvisionersPreCheck(TestProvisionerName, t)
|
provisioneracc.TestProvisionersPreCheck(TestProvisionerName, t)
|
||||||
|
|
||||||
testProvisioner := PowershellProvisionerAccTest{"powershell-script-provisioner.txt"}
|
testProvisioner := PowershellProvisionerAccTest{"powershell-script-provisioner.txt"}
|
||||||
acc.TestProvisionersAgainstBuilders(&testProvisioner, t)
|
provisioneracc.TestProvisionersAgainstBuilders(&testProvisioner, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
type PowershellProvisionerAccTest struct {
|
type PowershellProvisionerAccTest struct {
|
||||||
|
|
|
@ -8,7 +8,8 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/hashicorp/packer/helper/tests/acc"
|
"github.com/hashicorp/packer/packer-plugin-sdk/acctest/provisioneracc"
|
||||||
|
|
||||||
"github.com/hashicorp/packer/provisioner/shell"
|
"github.com/hashicorp/packer/provisioner/shell"
|
||||||
|
|
||||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||||
|
@ -17,8 +18,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestShellLocalProvisionerWithRetryOption(t *testing.T) {
|
func TestShellLocalProvisionerWithRetryOption(t *testing.T) {
|
||||||
acc.TestProvisionersPreCheck("shell-local", t)
|
provisioneracc.TestProvisionersPreCheck("shell-local", t)
|
||||||
acc.TestProvisionersAgainstBuilders(new(ShellLocalProvisionerAccTest), t)
|
provisioneracc.TestProvisionersAgainstBuilders(new(ShellLocalProvisionerAccTest), t)
|
||||||
}
|
}
|
||||||
|
|
||||||
type ShellLocalProvisionerAccTest struct{}
|
type ShellLocalProvisionerAccTest struct{}
|
||||||
|
|
|
@ -8,7 +8,8 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/hashicorp/packer/helper/tests/acc"
|
"github.com/hashicorp/packer/packer-plugin-sdk/acctest/provisioneracc"
|
||||||
|
"github.com/hashicorp/packer/packer-plugin-sdk/acctest/testutils"
|
||||||
"github.com/hashicorp/packer/provisioner/file"
|
"github.com/hashicorp/packer/provisioner/file"
|
||||||
"github.com/hashicorp/packer/provisioner/shell"
|
"github.com/hashicorp/packer/provisioner/shell"
|
||||||
|
|
||||||
|
@ -16,12 +17,11 @@ import (
|
||||||
|
|
||||||
"github.com/hashicorp/go-uuid"
|
"github.com/hashicorp/go-uuid"
|
||||||
"github.com/hashicorp/packer/command"
|
"github.com/hashicorp/packer/command"
|
||||||
testshelper "github.com/hashicorp/packer/helper/tests"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestShellProvisioner(t *testing.T) {
|
func TestShellProvisioner(t *testing.T) {
|
||||||
acc.TestProvisionersPreCheck("shell", t)
|
provisioneracc.TestProvisionersPreCheck("shell", t)
|
||||||
acc.TestProvisionersAgainstBuilders(new(ShellProvisionerAccTest), t)
|
provisioneracc.TestProvisionersAgainstBuilders(new(ShellProvisionerAccTest), t)
|
||||||
}
|
}
|
||||||
|
|
||||||
type ShellProvisionerAccTest struct{}
|
type ShellProvisionerAccTest struct{}
|
||||||
|
@ -61,7 +61,7 @@ func (s *ShellProvisionerAccTest) RunTest(c *command.BuildCommand, args []string
|
||||||
}
|
}
|
||||||
|
|
||||||
file := "provisioner.shell." + UUID + ".txt"
|
file := "provisioner.shell." + UUID + ".txt"
|
||||||
defer testshelper.CleanupFiles(file)
|
defer testutils.CleanupFiles(file)
|
||||||
|
|
||||||
if code := c.Run(args); code != 0 {
|
if code := c.Run(args); code != 0 {
|
||||||
ui := c.Meta.Ui.(*packersdk.BasicUi)
|
ui := c.Meta.Ui.(*packersdk.BasicUi)
|
||||||
|
@ -73,7 +73,7 @@ func (s *ShellProvisionerAccTest) RunTest(c *command.BuildCommand, args []string
|
||||||
err.String())
|
err.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
if !testshelper.FileExists(file) {
|
if !testutils.FileExists(file) {
|
||||||
return fmt.Errorf("Expected to find %s", file)
|
return fmt.Errorf("Expected to find %s", file)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in New Issue