1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
package helpers
import (
"fmt"
"os/exec"
"testing"
"github.com/stretchr/testify/assert"
)
func SkipIntegrationTests(t *testing.T, cmd ...string) {
if testing.Short() {
t.Skip("Skipping long tests")
}
if len(cmd) == 0 {
return
}
executable, err := exec.LookPath(cmd[0])
if err != nil {
t.Skip(cmd[0], "doesn't exist", err)
}
if err := executeCommandSucceeded(executable, cmd[1:]); err != nil {
assert.FailNow(t, "failed integration test command", "%q failed with error: %v", executable, err)
}
}
// executeCommandSucceeded tests whether a particular command execution successfully
// completes. If it does not, it returns the error produced.
func executeCommandSucceeded(executable string, args []string) error {
cmd := exec.Command(executable, args...)
out, err := cmd.CombinedOutput()
if err != nil {
return fmt.Errorf("%w - %s", err, string(out))
}
return nil
}
|