tooling. Tested on OSX, `Windows, and Linux. Documented command line dependencies. Added acceptance tests (behind testacc flag, since there are dependencies). This option is only implemented for the vmware and hyperv iso builders. It will be implemented for others in later PRs in order to make review easier.
74 lines
2.0 KiB
Go
74 lines
2.0 KiB
Go
package common
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCDPrepare(t *testing.T) {
|
|
type testCases struct {
|
|
CDConfig CDConfig
|
|
ErrExpected bool
|
|
Reason string
|
|
ExpectedCDFiles []string
|
|
}
|
|
tcs := []testCases{
|
|
{
|
|
CDConfig: CDConfig{},
|
|
ErrExpected: false,
|
|
Reason: "TestNilCD: nil CD array should not fail",
|
|
ExpectedCDFiles: []string{},
|
|
},
|
|
{
|
|
CDConfig: CDConfig{CDFiles: make([]string, 0)},
|
|
ErrExpected: false,
|
|
Reason: "TestEmptyArrayCD: empty CD array should never fail",
|
|
ExpectedCDFiles: []string{},
|
|
},
|
|
{
|
|
CDConfig: CDConfig{CDFiles: []string{"extra_iso_config.go"}},
|
|
ErrExpected: false,
|
|
Reason: "TestExistingCDFile: array with existing CD should not fail",
|
|
ExpectedCDFiles: []string{"extra_iso_config.go"},
|
|
},
|
|
{
|
|
CDConfig: CDConfig{CDFiles: []string{"does_not_exist.foo"}},
|
|
ErrExpected: true,
|
|
Reason: "TestNonExistingCDFile: array with non existing CD should return errors",
|
|
ExpectedCDFiles: []string{"does_not_exist.foo"},
|
|
},
|
|
{
|
|
CDConfig: CDConfig{CDFiles: []string{"extra_iso_config*"}},
|
|
ErrExpected: false,
|
|
Reason: "TestGlobbingCDFile: Glob should work",
|
|
ExpectedCDFiles: []string{"extra_iso_config.go", "extra_iso_config_test.go"},
|
|
},
|
|
}
|
|
for _, tc := range tcs {
|
|
c := tc.CDConfig
|
|
errs := c.Prepare(nil)
|
|
if (len(errs) != 0) != tc.ErrExpected {
|
|
t.Fatal(tc.Reason)
|
|
}
|
|
assert.Equal(t, c.CDFiles, tc.ExpectedCDFiles)
|
|
}
|
|
}
|
|
|
|
func TestMultiErrorCDFiles(t *testing.T) {
|
|
c := CDConfig{
|
|
CDFiles: []string{"extra_iso_config.foo", "extra_iso_config.go",
|
|
"extra_iso_config.bar", "extra_iso_config_test.go", "extra_iso_config.baz"},
|
|
}
|
|
|
|
errs := c.Prepare(nil)
|
|
if len(errs) == 0 {
|
|
t.Fatal("array with non existing CD should return errors")
|
|
}
|
|
|
|
expectedErrors := 3
|
|
if count := len(errs); count != expectedErrors {
|
|
t.Fatalf("array with %v non existing CD should return %v errors but it is returning %v", expectedErrors, expectedErrors, count)
|
|
}
|
|
}
|