diff --git a/backend/remote-state/etcdv3/backend_test.go b/backend/remote-state/etcdv3/backend_test.go index 1199dc978..b37f8e3e5 100644 --- a/backend/remote-state/etcdv3/backend_test.go +++ b/backend/remote-state/etcdv3/backend_test.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "os" + "reflect" "strings" "testing" "time" @@ -45,6 +46,9 @@ func prepareEtcdv3(t *testing.T) { t.Log("etcd server tests require setting TF_ACC or TF_ETCDV3_TEST") t.Skip() } + if reflect.DeepEqual(etcdv3Endpoints, []string{""}) { + t.Fatal("etcd server tests require setting TF_ETCDV3_ENDPOINTS") + } cleanupEtcdv3(t) } diff --git a/backend/remote-state/manta/backend.go b/backend/remote-state/manta/backend.go index d4ec85c9c..9189ad890 100644 --- a/backend/remote-state/manta/backend.go +++ b/backend/remote-state/manta/backend.go @@ -53,7 +53,7 @@ func New() backend.Backend { "insecure_skip_tls_verify": { Type: schema.TypeBool, Optional: true, - DefaultFunc: schema.EnvDefaultFunc("TRITON_SKIP_TLS_VERIFY", ""), + DefaultFunc: schema.EnvDefaultFunc("TRITON_SKIP_TLS_VERIFY", false), }, "path": { diff --git a/backend/remote-state/manta/backend_test.go b/backend/remote-state/manta/backend_test.go index 7e53b928e..be9b2575d 100644 --- a/backend/remote-state/manta/backend_test.go +++ b/backend/remote-state/manta/backend_test.go @@ -18,6 +18,14 @@ func testACC(t *testing.T) { t.Log("Manta backend tests require setting TF_ACC or TF_MANTA_TEST") t.Skip() } + skip = os.Getenv("TRITON_ACCOUNT") == "" && os.Getenv("SDC_ACCOUNT") == "" + if skip { + t.Fatal("Manta backend tests require setting TRITON_ACCOUNT or SDC_ACCOUNT") + } + skip = os.Getenv("TRITON_KEY_ID") == "" && os.Getenv("SDC_KEY_ID") == "" + if skip { + t.Fatal("Manta backend tests require setting TRITON_KEY_ID or SDC_KEY_ID") + } } func TestBackend_impl(t *testing.T) { diff --git a/backend/remote-state/oss/backend_test.go b/backend/remote-state/oss/backend_test.go index 16e717eb7..c71ed2325 100644 --- a/backend/remote-state/oss/backend_test.go +++ b/backend/remote-state/oss/backend_test.go @@ -6,11 +6,12 @@ import ( "testing" "time" + "strings" + "github.com/aliyun/aliyun-oss-go-sdk/oss" "github.com/aliyun/aliyun-tablestore-go-sdk/tablestore" "github.com/hashicorp/terraform/backend" "github.com/hashicorp/terraform/configs/hcl2shim" - "strings" ) // verify that we are doing ACC tests or the OSS tests specifically @@ -20,6 +21,9 @@ func testACC(t *testing.T) { t.Log("oss backend tests require setting TF_ACC or TF_OSS_TEST") t.Skip() } + if skip { + t.Fatal("oss backend tests require setting ALICLOUD_ACCESS_KEY or ALICLOUD_ACCESS_KEY_ID") + } if os.Getenv("ALICLOUD_REGION") == "" { os.Setenv("ALICLOUD_REGION", "cn-beijing") } diff --git a/internal/initwd/from_module_test.go b/internal/initwd/from_module_test.go index 480ead680..f45e2b324 100644 --- a/internal/initwd/from_module_test.go +++ b/internal/initwd/from_module_test.go @@ -19,7 +19,16 @@ func TestDirFromModule_registry(t *testing.T) { } fixtureDir := filepath.Clean("testdata/empty") - dir, done := tempChdir(t, fixtureDir) + tmpDir, done := tempChdir(t, fixtureDir) + + // the module installer runs filepath.EvalSymlinks() on the destination + // directory before copying files, and the resultant directory is what is + // returned by the install hooks. Without this, tests could fail on machines + // where the default temp dir was a symlink. + dir, err := filepath.EvalSymlinks(tmpDir) + if err != nil { + t.Error(err) + } modsDir := filepath.Join(dir, ".terraform/modules") defer done() diff --git a/internal/initwd/module_install_test.go b/internal/initwd/module_install_test.go index 27a82aef7..444968169 100644 --- a/internal/initwd/module_install_test.go +++ b/internal/initwd/module_install_test.go @@ -232,7 +232,16 @@ func TestLoaderInstallModules_registry(t *testing.T) { } fixtureDir := filepath.Clean("testdata/registry-modules") - dir, done := tempChdir(t, fixtureDir) + tmpDir, done := tempChdir(t, fixtureDir) + // the module installer runs filepath.EvalSymlinks() on the destination + // directory before copying files, and the resultant directory is what is + // returned by the install hooks. Without this, tests could fail on machines + // where the default temp dir was a symlink. + dir, err := filepath.EvalSymlinks(tmpDir) + if err != nil { + t.Error(err) + } + defer done() hooks := &testInstallHooks{} @@ -359,7 +368,15 @@ func TestLoaderInstallModules_goGetter(t *testing.T) { } fixtureDir := filepath.Clean("testdata/go-getter-modules") - dir, done := tempChdir(t, fixtureDir) + tmpDir, done := tempChdir(t, fixtureDir) + // the module installer runs filepath.EvalSymlinks() on the destination + // directory before copying files, and the resultant directory is what is + // returned by the install hooks. Without this, tests could fail on machines + // where the default temp dir was a symlink. + dir, err := filepath.EvalSymlinks(tmpDir) + if err != nil { + t.Error(err) + } defer done() hooks := &testInstallHooks{} diff --git a/tools/terraform-bundle/e2etest/package_test.go b/tools/terraform-bundle/e2etest/package_test.go index fa920cabf..771f4acef 100644 --- a/tools/terraform-bundle/e2etest/package_test.go +++ b/tools/terraform-bundle/e2etest/package_test.go @@ -31,10 +31,10 @@ func TestPackage_empty(t *testing.T) { t.Errorf("unexpected stderr output:\n%s", stderr) } - if !strings.Contains(stdout, "Fetching Terraform 0.10.1 core package...") { + if !strings.Contains(stdout, "Fetching Terraform 0.12.0 core package...") { t.Errorf("success message is missing from output:\n%s", stdout) } - if !strings.Contains(stdout, "Creating terraform_0.10.1-bundle") { + if !strings.Contains(stdout, "Creating terraform_0.12.0-bundle") { t.Errorf("success message is missing from output:\n%s", stdout) } if !strings.Contains(stdout, "All done!") { @@ -65,36 +65,37 @@ func TestPackage_manyProviders(t *testing.T) { t.Errorf("unexpected stderr output:\n%s", stderr) } - if !strings.Contains(stdout, "Checking for available provider plugins on ") { - t.Errorf("success message is missing from output:\n%s", stdout) - } - // Here we have to check each provider separately // because it's internally held in a map (i.e. not guaranteed order) - if !strings.Contains(stdout, `- Resolving "aws" provider (~> 0.1)... -- Downloading plugin for provider "aws" (0.1.4)...`) { + if !strings.Contains(stdout, `- Resolving "aws" provider (~> 2.26.0)... +- Checking for provider plugin on https://releases.hashicorp.com... +- Downloading plugin for provider "aws" (hashicorp/aws) 2.26.0...`) { t.Errorf("success message is missing from output:\n%s", stdout) } - if !strings.Contains(stdout, `- Resolving "kubernetes" provider (0.1.0)... -- Downloading plugin for provider "kubernetes" (0.1.0)... -- Resolving "kubernetes" provider (0.1.1)... -- Downloading plugin for provider "kubernetes" (0.1.1)... -- Resolving "kubernetes" provider (0.1.2)... -- Downloading plugin for provider "kubernetes" (0.1.2)...`) { + if !strings.Contains(stdout, `- Resolving "kubernetes" provider (1.8.0)... +- Checking for provider plugin on https://releases.hashicorp.com... +- Downloading plugin for provider "kubernetes" (hashicorp/kubernetes) 1.8.0... +- Resolving "kubernetes" provider (1.8.1)... +- Checking for provider plugin on https://releases.hashicorp.com... +- Downloading plugin for provider "kubernetes" (hashicorp/kubernetes) 1.8.1... +- Resolving "kubernetes" provider (1.9.0)... +- Checking for provider plugin on https://releases.hashicorp.com... +- Downloading plugin for provider "kubernetes" (hashicorp/kubernetes) 1.9.0...`) { t.Errorf("success message is missing from output:\n%s", stdout) } - if !strings.Contains(stdout, `- Resolving "null" provider (0.1.0)... -- Downloading plugin for provider "null" (0.1.0)...`) { + if !strings.Contains(stdout, `- Resolving "null" provider (2.1.0)... +- Checking for provider plugin on https://releases.hashicorp.com... +- Downloading plugin for provider "null" (hashicorp/null) 2.1.0...`) { t.Errorf("success message is missing from output:\n%s", stdout) } - if !strings.Contains(stdout, "Fetching Terraform 0.10.1 core package...") { + if !strings.Contains(stdout, "Fetching Terraform 0.12.0 core package...") { t.Errorf("success message is missing from output:\n%s", stdout) } - if !strings.Contains(stdout, "Creating terraform_0.10.1-bundle") { + if !strings.Contains(stdout, "Creating terraform_0.12.0-bundle") { t.Errorf("success message is missing from output:\n%s", stdout) } if !strings.Contains(stdout, "All done!") { diff --git a/tools/terraform-bundle/e2etest/testdata/empty/terraform-bundle.hcl b/tools/terraform-bundle/e2etest/testdata/empty/terraform-bundle.hcl index 5350cab4a..328017f8a 100644 --- a/tools/terraform-bundle/e2etest/testdata/empty/terraform-bundle.hcl +++ b/tools/terraform-bundle/e2etest/testdata/empty/terraform-bundle.hcl @@ -1,3 +1,3 @@ terraform { - version = "0.10.1" + version = "0.12.0" } diff --git a/tools/terraform-bundle/e2etest/testdata/many-providers/terraform-bundle.hcl b/tools/terraform-bundle/e2etest/testdata/many-providers/terraform-bundle.hcl index 05ddc8b5f..edc77794d 100644 --- a/tools/terraform-bundle/e2etest/testdata/many-providers/terraform-bundle.hcl +++ b/tools/terraform-bundle/e2etest/testdata/many-providers/terraform-bundle.hcl @@ -1,9 +1,9 @@ terraform { - version = "0.10.1" + version = "0.12.0" } providers { - aws = ["~> 0.1"] - kubernetes = ["0.1.0", "0.1.1", "0.1.2"] - null = ["0.1.0"] -} \ No newline at end of file + aws = ["~> 2.26.0"] + kubernetes = ["1.8.0", "1.8.1", "1.9.0"] + null = ["2.1.0"] +}