Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Speed up tests #2580

Merged
merged 12 commits into from
Mar 5, 2024
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ test: test-client ## run unit and integration tests
go test -v -cover -timeout=30m ./...

test-acceptance: ## run acceptance tests
TF_ACC=1 go test -run "^TestAcc_" -v -cover -timeout=60m ./...
TF_ACC=1 SF_TF_ACC_TEST_CONFIGURE_CLIENT_ONCE=true go test -run "^TestAcc_" -v -cover -timeout=60m ./...

test-integration: ## run SDK integration tests
go test -run "^TestInt_" -v -cover -timeout=30m ./...
Expand Down
2 changes: 1 addition & 1 deletion docs/resources/role_grants.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: |-

# snowflake_role_grants (Resource)


~> **Deprecation** This resource is deprecated and will be removed in a future major version release. Please use [snowflake_grant_privileges_to_account_role](./grant_privileges_to_account_role) instead. <deprecation>

## Example Usage

Expand Down
52 changes: 32 additions & 20 deletions pkg/acceptance/testing.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@ package acceptance

import (
"context"
"log"
"path/filepath"
"strconv"
"sync"
"testing"

"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/provider"
"github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/sdk"
"github.com/hashicorp/terraform-plugin-go/tfprotov5"
"github.com/hashicorp/terraform-plugin-go/tfprotov6"
"github.com/hashicorp/terraform-plugin-mux/tf5to6server"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
Expand All @@ -22,27 +24,45 @@ const (
TestWarehouseName2 = "terraform_test_warehouse_2"
)

var TestAccProvider *schema.Provider
var (
TestAccProvider *schema.Provider
v5Server tfprotov5.ProviderServer
v6Server tfprotov6.ProviderServer
)

func init() {
TestAccProvider = provider.Provider()
v5Server = TestAccProvider.GRPCProvider()
var err error
v6Server, err = tf5to6server.UpgradeServer(
context.Background(),
func() tfprotov5.ProviderServer {
return v5Server
},
)
if err != nil {
log.Panic("Cannot upgrade server from proto v5 to proto v6, failing")
sfc-gh-jcieslak marked this conversation as resolved.
Show resolved Hide resolved
}
_ = testAccProtoV6ProviderFactoriesNew
}

var TestAccProtoV6ProviderFactories = map[string]func() (tfprotov6.ProviderServer, error){
"snowflake": func() (tfprotov6.ProviderServer, error) {
return v6Server, nil
},
}

// if we do not reuse the created objects there is no `Previously configured provider being re-configured.` warning
// currently left for possible usage after other improvements
var testAccProtoV6ProviderFactoriesNew = map[string]func() (tfprotov6.ProviderServer, error){
"snowflake": func() (tfprotov6.ProviderServer, error) {
return tf5to6server.UpgradeServer(
context.Background(),
TestAccProvider.GRPCProvider,
provider.Provider().GRPCProvider,
)
},
}

func init() {
TestAccProvider = provider.Provider()
}

func TestAccProviders() map[string]*schema.Provider {
return map[string]*schema.Provider{
"snowflake": provider.Provider(),
}
}

var once sync.Once

func TestAccPreCheck(t *testing.T) {
Expand Down Expand Up @@ -99,11 +119,3 @@ func ConfigurationDirectory(directory string) func(config.TestStepConfigRequest)
return filepath.Join("testdata", directory)
}
}

// ConfigurationInnerDirectory is similar to ConfigurationSameAsStepN, but instead of index-based directories,
// you can choose a particular one by name.
func ConfigurationInnerDirectory(innerDirectory string) func(config.TestStepConfigRequest) string {
return func(req config.TestStepConfigRequest) string {
return filepath.Join("testdata", req.TestName, innerDirectory)
}
}
2 changes: 1 addition & 1 deletion pkg/datasources/current_account_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
)

func TestAcc_CurrentAccount(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
ProtoV6ProviderFactories: acc.TestAccProtoV6ProviderFactories,
TerraformVersionChecks: []tfversion.TerraformVersionCheck{
tfversion.RequireAbove(tfversion.Version1_5_0),
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/database_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
func TestAcc_Database(t *testing.T) {
databaseName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
comment := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/database_roles_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func TestAcc_DatabaseRoles(t *testing.T) {
dbName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
dbRoleName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))

resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/databases_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
func TestAcc_Databases(t *testing.T) {
databaseName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
comment := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/external_tables_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ func TestAcc_ExternalTables(t *testing.T) {
schemaName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
stageName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
externalTableName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
4 changes: 2 additions & 2 deletions pkg/datasources/file_formats_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func TestAcc_FileFormats(t *testing.T) {
databaseName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
schemaName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
fileFormatName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand All @@ -34,7 +34,7 @@ func TestAcc_FileFormats(t *testing.T) {
func TestAcc_FileFormatsEmpty(t *testing.T) {
databaseName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
schemaName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/grants_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
)

func TestAcc_Grants(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/masking_policies_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func TestAcc_MaskingPolicies(t *testing.T) {
databaseName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
schemaName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
maskingPolicyName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
6 changes: 3 additions & 3 deletions pkg/datasources/parameters_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
)

func TestAcc_ParametersOnAccount(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand All @@ -32,7 +32,7 @@ func TestAcc_ParametersOnAccount(t *testing.T) {

func TestAcc_ParametersOnSession(t *testing.T) {
userName := "TEST_USER_" + strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand All @@ -51,7 +51,7 @@ func TestAcc_ParametersOnSession(t *testing.T) {

func TestAcc_ParametersOnObject(t *testing.T) {
dbName := "TEST_DB_" + strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/pipes_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func TestAcc_Pipes(t *testing.T) {
databaseName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
schemaName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
pipeName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/role_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ func TestAcc_Role(t *testing.T) {
roleName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
comment := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))

resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
ProtoV6ProviderFactories: acc.TestAccProtoV6ProviderFactories,
PreCheck: func() { acc.TestAccPreCheck(t) },
TerraformVersionChecks: []tfversion.TerraformVersionCheck{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/roles_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ func TestAcc_Roles(t *testing.T) {
roleName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
roleName2 := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
comment := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/schemas_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
func TestAcc_Schemas(t *testing.T) {
databaseName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
schemaName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/sequences_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func TestAcc_Sequences(t *testing.T) {
databaseName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
schemaName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
sequenceName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/shares_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ func TestAcc_Shares(t *testing.T) {
comment := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
pattern := shareName

resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/streams_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ func TestAcc_Streams(t *testing.T) {
schemaName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
streamName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
tableName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
)

func TestAcc_SystemGetAWSSNSIAMPolicy_basic(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
)

func TestAcc_SystemGetPrivateLinkConfig_aws(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
)

func TestAcc_SystemGetSnowflakePlatformInfo(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/tables_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func TestAcc_Tables(t *testing.T) {
tableName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
stageName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
externalTableName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
ProtoV6ProviderFactories: acc.TestAccProtoV6ProviderFactories,
PreCheck: func() { acc.TestAccPreCheck(t) },
TerraformVersionChecks: []tfversion.TerraformVersionCheck{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/tasks_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func TestAcc_Tasks(t *testing.T) {
databaseName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
schemaName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
taskName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/users_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (

func TestAcc_Users(t *testing.T) {
userName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
Steps: []resource.TestStep{
{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/views_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ func TestAcc_Views(t *testing.T) {
databaseName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
schemaName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
viewName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
ProtoV6ProviderFactories: acc.TestAccProtoV6ProviderFactories,
PreCheck: func() { acc.TestAccPreCheck(t) },
TerraformVersionChecks: []tfversion.TerraformVersionCheck{
Expand Down
2 changes: 1 addition & 1 deletion pkg/datasources/warehouses_acceptance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (

func TestAcc_Warehouses(t *testing.T) {
warehouseName := strings.ToUpper(acctest.RandStringFromCharSet(10, acctest.CharSetAlpha))
resource.ParallelTest(t, resource.TestCase{
resource.Test(t, resource.TestCase{
Providers: providers(),
CheckDestroy: nil,
Steps: []resource.TestStep{
Expand Down
Loading
Loading