opentofu/command/e2etest/version_test.go
Martin Atkins 0e0b0d125a command/e2etest: "terraform version" test
This basic test is here primarily because it's one of the few that can
run without reaching out to external services, and so it means our usual
test runs will catch situations where the main executable build is
somehow broken.

The version command itself is not very interesting to test, but it's
convenient in that its behavior is very predictable and self-contained.
2017-07-17 14:25:33 -07:00

36 lines
825 B
Go

package e2etest
import (
"fmt"
"strings"
"testing"
tfcore "github.com/hashicorp/terraform/terraform"
)
func TestVersion(t *testing.T) {
// Along with testing the "version" command in particular, this serves
// as a good smoke test for whether the Terraform binary can even be
// compiled and run, since it doesn't require any external network access
// to do its job.
t.Parallel()
tf := newTerraform("empty")
defer tf.Close()
stdout, stderr, err := tf.Run("version")
if err != nil {
t.Errorf("unexpected error: %s", err)
}
if stderr != "" {
t.Errorf("unexpected stderr output:\n%s", stderr)
}
wantVersion := fmt.Sprintf("Terraform %s", tfcore.VersionString())
if strings.Contains(stdout, wantVersion) {
t.Errorf("output does not contain our current version %q:\n%s", wantVersion, stdout)
}
}