mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
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.
36 lines
825 B
Go
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)
|
|
}
|
|
}
|