test: make must succeed/fail gadgets functions

For consistency with other gadgets like Grep, we make the MustSucceed
and MustFail gadgets private with a function to return an instance of
it.
pull/13032/head
Lucas Bajolet 2 years ago committed by Lucas Bajolet
parent afb4340539
commit 995b232464

@ -54,15 +54,23 @@ func InferName(c Checker) string {
return retVals[0].String()
}
type MustSucceed struct{}
func MustSucceed() Checker {
return mustSucceed{}
}
type mustSucceed struct{}
func (_ MustSucceed) Check(stdout, stderr string, err error) error {
func (_ mustSucceed) Check(stdout, stderr string, err error) error {
return err
}
type MustFail struct{}
func MustFail() Checker {
return mustFail{}
}
type mustFail struct{}
func (_ MustFail) Check(stdout, stderr string, err error) error {
func (_ mustFail) Check(stdout, stderr string, err error) error {
if err == nil {
return fmt.Errorf("unexpected command success")
}

@ -7,19 +7,19 @@ func (ts *PackerTestSuite) TestInstallPluginWithMetadata() {
ts.Run("metadata plugin installed must not have metadata in its path", func() {
ts.PackerCommand().UsePluginDir(tempPluginDir).
SetArgs("plugins", "installed").
Assert(ts.T(), MustSucceed{}, Grep("packer-plugin-tester_v1.0.0[^+]", grepStdout))
Assert(ts.T(), MustSucceed(), Grep("packer-plugin-tester_v1.0.0[^+]", grepStdout))
})
ts.Run("plugin with metadata should work with validate", func() {
ts.PackerCommand().UsePluginDir(tempPluginDir).
SetArgs("validate", "./templates/simple.pkr.hcl").
Assert(ts.T(), MustSucceed{}, Grep("packer-plugin-tester_v1.0.0[^+][^\\n]+plugin:", grepStderr))
Assert(ts.T(), MustSucceed(), Grep("packer-plugin-tester_v1.0.0[^+][^\\n]+plugin:", grepStderr))
})
ts.Run("plugin with metadata should work with build", func() {
ts.PackerCommand().UsePluginDir(tempPluginDir).
SetArgs("build", "./templates/simple.pkr.hcl").
Assert(ts.T(), MustSucceed{}, Grep("packer-plugin-tester_v1.0.0[^+][^\\n]+plugin:", grepStderr))
Assert(ts.T(), MustSucceed(), Grep("packer-plugin-tester_v1.0.0[^+][^\\n]+plugin:", grepStderr))
})
}
@ -32,6 +32,6 @@ func (ts *PackerTestSuite) TestInstallPluginPrerelease() {
ts.Run("try install plugin with alpha1 prerelease - should fail", func() {
ts.PackerCommand().UsePluginDir(pluginDir).
SetArgs("plugins", "install", "--path", pluginPath, "github.com/hashicorp/tester").
Assert(ts.T(), MustFail{}, Grep("Packer can only install plugin releases with this command", grepStdout))
Assert(ts.T(), MustFail(), Grep("Packer can only install plugin releases with this command", grepStdout))
})
}

@ -43,7 +43,7 @@ func (ts *PackerTestSuite) TestLoadingOrder() {
ts.PackerCommand().
SetArgs(command, tt.templatePath).
UsePluginDir(pluginDir).
Assert(t, MustSucceed{}, Grep(tt.grepStr))
Assert(t, MustSucceed(), Grep(tt.grepStr))
})
}
}
@ -60,7 +60,7 @@ func (ts *PackerTestSuite) TestLoadWithLegacyPluginName() {
ts.Run("multiple plugins installed: one with no version in path, one with qualified name. Should pick-up the qualified one only.", func() {
ts.PackerCommand().UsePluginDir(pluginDir).
SetArgs("build", "templates/simple.pkr.hcl").
Assert(ts.T(), MustSucceed{}, Grep("packer-plugin-tester_v1\\.0\\.0[^\\n]+ plugin:", grepStderr))
Assert(ts.T(), MustSucceed(), Grep("packer-plugin-tester_v1\\.0\\.0[^\\n]+ plugin:", grepStderr))
})
}
@ -77,7 +77,7 @@ func (ts *PackerTestSuite) TestLoadWithSHAMismatches() {
ts.PackerCommand().UsePluginDir(pluginDir).
SetArgs("plugins", "installed").
Assert(ts.T(), MustSucceed{},
Assert(ts.T(), MustSucceed(),
Grep("packer-plugin-tester_v1\\.0\\.9[^\\n]+", grepStdout),
Grep("packer-plugin-tester_v1.0.10", grepStdout, grepInvert),
Grep("v1.0.10[^\\n]+ignoring possibly unsafe binary", grepStderr))
@ -100,7 +100,7 @@ func (ts *PackerTestSuite) TestLoadWithSHAMismatches() {
ts.PackerCommand().UsePluginDir(pluginDir).
SetArgs("plugins", "installed").
Assert(ts.T(), MustSucceed{},
Assert(ts.T(), MustSucceed(),
Grep("packer-plugin-tester_v1\\.0\\.9[^\\n]+", grepStdout),
Grep("packer-plugin-tester_v1.0.10", grepInvert, grepStdout),
Grep("v1.0.10[^\\n]+ignoring possibly unsafe binary", grepStderr),

@ -193,7 +193,7 @@ func (ts *PackerTestSuite) MakePluginDir(pluginVersions ...string) (pluginTempDi
err = fmt.Errorf("failed to get path to version %q, was it compiled?", pluginVersion)
}
cmd := ts.PackerCommand().SetArgs("plugins", "install", "--path", path, "github.com/hashicorp/tester").AddEnv("PACKER_PLUGIN_PATH", pluginTempDir)
cmd.Assert(t, MustSucceed{})
cmd.Assert(t, MustSucceed())
out, stderr, cmdErr := cmd.Run()
if cmdErr != nil {
err = fmt.Errorf("failed to install tester plugin version %q: %s\nCommand stdout: %s\nCommand stderr: %s", pluginVersion, err, out, stderr)

Loading…
Cancel
Save