mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-28 01:41:48 -06:00
ffe056bacb
This is part of a general effort to move all of Terraform's non-library package surface under internal in order to reinforce that these are for internal use within Terraform only. If you were previously importing packages under this prefix into an external codebase, you could pin to an earlier release tag as an interim solution until you've make a plan to achieve the same functionality some other way.
60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
package e2etest
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/terraform/internal/e2e"
|
|
)
|
|
|
|
var terraformBin string
|
|
|
|
func TestMain(m *testing.M) {
|
|
teardown := setup()
|
|
code := m.Run()
|
|
teardown()
|
|
os.Exit(code)
|
|
}
|
|
|
|
func setup() func() {
|
|
if terraformBin != "" {
|
|
// this is pre-set when we're running in a binary produced from
|
|
// the make-archive.sh script, since that builds a ready-to-go
|
|
// binary into the archive. However, we do need to turn it into
|
|
// an absolute path so that we can find it when we change the
|
|
// working directory during tests.
|
|
var err error
|
|
terraformBin, err = filepath.Abs(terraformBin)
|
|
if err != nil {
|
|
panic(fmt.Sprintf("failed to find absolute path of terraform executable: %s", err))
|
|
}
|
|
return func() {}
|
|
}
|
|
|
|
tmpFilename := e2e.GoBuild("github.com/hashicorp/terraform", "terraform")
|
|
|
|
// Make the executable available for use in tests
|
|
terraformBin = tmpFilename
|
|
|
|
return func() {
|
|
os.Remove(tmpFilename)
|
|
}
|
|
}
|
|
|
|
func canAccessNetwork() bool {
|
|
// We re-use the flag normally used for acceptance tests since that's
|
|
// established as a way to opt-in to reaching out to real systems that
|
|
// may suffer transient errors.
|
|
return os.Getenv("TF_ACC") != ""
|
|
}
|
|
|
|
func skipIfCannotAccessNetwork(t *testing.T) {
|
|
t.Helper()
|
|
|
|
if !canAccessNetwork() {
|
|
t.Skip("network access not allowed; use TF_ACC=1 to enable")
|
|
}
|
|
}
|