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 a3fdfe641..9189ad890 100644 --- a/backend/remote-state/manta/backend.go +++ b/backend/remote-state/manta/backend.go @@ -131,9 +131,6 @@ func (b *Backend) configure(ctx context.Context) error { if data.Get("key_id").(string) == "" { validationError = multierror.Append(validationError, errors.New("`Key ID` must be configured for the Triton provider")) } - if data.Get("key_id").(string) == "" { - validationError = multierror.Append(validationError, errors.New("`Key ID` must be configured for the Triton provider")) - } if b.path == "" { validationError = multierror.Append(validationError, errors.New("`Path` must be configured for the Triton provider")) } 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 b467552b5..f45e2b324 100644 --- a/internal/initwd/from_module_test.go +++ b/internal/initwd/from_module_test.go @@ -20,6 +20,11 @@ func TestDirFromModule_registry(t *testing.T) { fixtureDir := filepath.Clean("testdata/empty") 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) diff --git a/internal/initwd/module_install_test.go b/internal/initwd/module_install_test.go index 786f84400..444968169 100644 --- a/internal/initwd/module_install_test.go +++ b/internal/initwd/module_install_test.go @@ -233,6 +233,10 @@ func TestLoaderInstallModules_registry(t *testing.T) { fixtureDir := filepath.Clean("testdata/registry-modules") 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) @@ -365,6 +369,10 @@ func TestLoaderInstallModules_goGetter(t *testing.T) { fixtureDir := filepath.Clean("testdata/go-getter-modules") 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)