58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package command
|
|
|
|
import (
|
|
"bytes"
|
|
"io/ioutil"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
packersdk "github.com/hashicorp/packer-plugin-sdk/packer"
|
|
"github.com/hashicorp/packer/packer"
|
|
)
|
|
|
|
const fixturesDir = "./test-fixtures"
|
|
|
|
func fatalCommand(t *testing.T, m Meta) {
|
|
ui := m.Ui.(*packersdk.BasicUi)
|
|
out := ui.Writer.(*bytes.Buffer)
|
|
err := ui.ErrorWriter.(*bytes.Buffer)
|
|
t.Fatalf(
|
|
"Bad exit code.\n\nStdout:\n\n%s\n\nStderr:\n\n%s",
|
|
out.String(),
|
|
err.String())
|
|
}
|
|
|
|
func outputCommand(t *testing.T, m Meta) (string, string) {
|
|
ui := m.Ui.(*packersdk.BasicUi)
|
|
out := ui.Writer.(*bytes.Buffer)
|
|
err := ui.ErrorWriter.(*bytes.Buffer)
|
|
return out.String(), err.String()
|
|
}
|
|
|
|
func testFixtureContent(n ...string) string {
|
|
path := filepath.Join(append([]string{fixturesDir}, n...)...)
|
|
b, err := ioutil.ReadFile(path)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return string(b)
|
|
}
|
|
|
|
func testFixture(n ...string) string {
|
|
paths := []string{fixturesDir}
|
|
paths = append(paths, n...)
|
|
return filepath.Join(paths...)
|
|
}
|
|
|
|
func testMeta(t *testing.T) Meta {
|
|
var out, err bytes.Buffer
|
|
|
|
return Meta{
|
|
CoreConfig: packer.TestCoreConfig(t),
|
|
Ui: &packersdk.BasicUi{
|
|
Writer: &out,
|
|
ErrorWriter: &err,
|
|
},
|
|
}
|
|
}
|