diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 94f673471248..843bca1fcf38 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -279,7 +279,6 @@ /pkg/revert/ @cockroachdb/disaster-recovery /pkg/storage/encryption.go @cockroachdb/disaster-recovery /pkg/storage/external_sst_reader.go @cockroachdb/disaster-recovery -/pkg/ccl/cloudccl/ @cockroachdb/disaster-recovery /pkg/cloud/ @cockroachdb/disaster-recovery /pkg/sql/distsql_plan_bulk* @cockroachdb/disaster-recovery /pkg/sql/catalog/externalcatalog @cockroachdb/disaster-recovery diff --git a/build/teamcity/cockroach/nightlies/cloud_unit_tests_impl.sh b/build/teamcity/cockroach/nightlies/cloud_unit_tests_impl.sh index cc951fe8cbd4..43cb639e7472 100755 --- a/build/teamcity/cockroach/nightlies/cloud_unit_tests_impl.sh +++ b/build/teamcity/cockroach/nightlies/cloud_unit_tests_impl.sh @@ -63,7 +63,7 @@ bazel_test_env=(--test_env=GO_TEST_WRAP_TESTV=1 \ exit_status=0 $BAZEL_BIN/pkg/cmd/bazci/bazci_/bazci -- test --config=ci \ - //pkg/cloud/gcp:gcp_test //pkg/cloud/amazon:amazon_test //pkg/ccl/cloudccl/gcp:gcp_test //pkg/ccl/cloudccl/amazon:amazon_test \ + //pkg/cloud/gcp:gcp_test //pkg/cloud/amazon:amazon_test \ //pkg/cloud/azure:azure_test //pkg/cloud/azure:azure_test \ "${bazel_test_env[@]}" \ --test_timeout=900 \ diff --git a/pkg/BUILD.bazel b/pkg/BUILD.bazel index 9ed36928c9e1..e15512636ddc 100644 --- a/pkg/BUILD.bazel +++ b/pkg/BUILD.bazel @@ -39,11 +39,6 @@ ALL_TESTS = [ "//pkg/ccl/changefeedccl/tableset:tableset_test", "//pkg/ccl/changefeedccl/timers:timers_test", "//pkg/ccl/changefeedccl:changefeedccl_test", - "//pkg/ccl/cloudccl/amazon:amazon_test", - "//pkg/ccl/cloudccl/azure:azure_test", - "//pkg/ccl/cloudccl/cloudprivilege:cloudprivilege_test", - "//pkg/ccl/cloudccl/externalconn:externalconn_test", - "//pkg/ccl/cloudccl/gcp:gcp_test", "//pkg/ccl/jwtauthccl:jwtauthccl_test", "//pkg/ccl/ldapccl:ldapccl_test", "//pkg/ccl/logictestccl/tests/3node-tenant-multiregion:3node-tenant-multiregion_test", @@ -111,6 +106,8 @@ ALL_TESTS = [ "//pkg/cli:cli_test", "//pkg/cloud/amazon:amazon_test", "//pkg/cloud/azure:azure_test", + "//pkg/cloud/cloudprivilege:cloudprivilege_test", + "//pkg/cloud/externalconn:externalconn_test", "//pkg/cloud/gcp:gcp_test", "//pkg/cloud/httpsink:httpsink_test", "//pkg/cloud/impl/cloudimpltests:cloudimpltests_test", @@ -1015,11 +1012,6 @@ GO_TARGETS = [ "//pkg/ccl/changefeedccl/timers:timers_test", "//pkg/ccl/changefeedccl:changefeedccl", "//pkg/ccl/changefeedccl:changefeedccl_test", - "//pkg/ccl/cloudccl/amazon:amazon_test", - "//pkg/ccl/cloudccl/azure:azure_test", - "//pkg/ccl/cloudccl/cloudprivilege:cloudprivilege_test", - "//pkg/ccl/cloudccl/externalconn:externalconn_test", - "//pkg/ccl/cloudccl/gcp:gcp_test", "//pkg/ccl/gssapiccl:gssapiccl", "//pkg/ccl/jwtauthccl:jwtauthccl", "//pkg/ccl/jwtauthccl:jwtauthccl_test", @@ -1137,12 +1129,14 @@ GO_TARGETS = [ "//pkg/cloud/azure:azure", "//pkg/cloud/azure:azure_test", "//pkg/cloud/cloudpb:cloudpb", + "//pkg/cloud/cloudprivilege:cloudprivilege_test", "//pkg/cloud/cloudtestutils:cloudtestutils", "//pkg/cloud/externalconn/connectionpb:connectionpb", "//pkg/cloud/externalconn/providers:providers", "//pkg/cloud/externalconn/testutils:testutils", "//pkg/cloud/externalconn/utils:utils", "//pkg/cloud/externalconn:externalconn", + "//pkg/cloud/externalconn:externalconn_test", "//pkg/cloud/faulty:faulty", "//pkg/cloud/gcp:gcp", "//pkg/cloud/gcp:gcp_test", diff --git a/pkg/ccl/cloudccl/amazon/BUILD.bazel b/pkg/ccl/cloudccl/amazon/BUILD.bazel deleted file mode 100644 index 9ff51683aab2..000000000000 --- a/pkg/ccl/cloudccl/amazon/BUILD.bazel +++ /dev/null @@ -1,30 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_test") - -go_test( - name = "amazon_test", - srcs = [ - "main_test.go", - "s3_connection_test.go", - ], - deps = [ - "//pkg/base", - "//pkg/ccl", - "//pkg/cloud", - "//pkg/cloud/amazon", - "//pkg/cloud/cloudpb", - "//pkg/cloud/cloudtestutils", - "//pkg/cloud/externalconn/providers", - "//pkg/security/securityassets", - "//pkg/security/securitytest", - "//pkg/server", - "//pkg/testutils", - "//pkg/testutils/serverutils", - "//pkg/testutils/skip", - "//pkg/testutils/sqlutils", - "//pkg/util/leaktest", - "//pkg/util/log", - "//pkg/util/randutil", - "@com_github_aws_aws_sdk_go_v2_config//:config", - "@com_github_stretchr_testify//require", - ], -) diff --git a/pkg/ccl/cloudccl/azure/BUILD.bazel b/pkg/ccl/cloudccl/azure/BUILD.bazel deleted file mode 100644 index 80293877978b..000000000000 --- a/pkg/ccl/cloudccl/azure/BUILD.bazel +++ /dev/null @@ -1,27 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_test") - -go_test( - name = "azure_test", - srcs = [ - "azure_connection_test.go", - "main_test.go", - ], - deps = [ - "//pkg/base", - "//pkg/ccl", - "//pkg/cloud/azure", - "//pkg/cloud/cloudtestutils", - "//pkg/cloud/externalconn/providers", - "//pkg/security/securityassets", - "//pkg/security/securitytest", - "//pkg/server", - "//pkg/testutils", - "//pkg/testutils/serverutils", - "//pkg/testutils/skip", - "//pkg/testutils/sqlutils", - "//pkg/util/leaktest", - "//pkg/util/log", - "//pkg/util/randutil", - "@com_github_azure_go_autorest_autorest//azure", - ], -) diff --git a/pkg/ccl/cloudccl/externalconn/BUILD.bazel b/pkg/ccl/cloudccl/externalconn/BUILD.bazel deleted file mode 100644 index 2e44e9f35d4b..000000000000 --- a/pkg/ccl/cloudccl/externalconn/BUILD.bazel +++ /dev/null @@ -1,36 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_test") - -go_test( - name = "externalconn_test", - srcs = [ - "datadriven_test.go", - "main_test.go", - ], - data = glob(["testdata/**"]), - exec_properties = { - "dockerNetwork": "standard", - }, - deps = [ - "//pkg/backup", - "//pkg/base", - "//pkg/ccl/changefeedccl", - "//pkg/cloud/externalconn", - "//pkg/cloud/externalconn/providers", - "//pkg/cloud/externalconn/testutils", - "//pkg/jobs", - "//pkg/roachpb", - "//pkg/security/securityassets", - "//pkg/security/securitytest", - "//pkg/server", - "//pkg/testutils", - "//pkg/testutils/datapathutils", - "//pkg/testutils/serverutils", - "//pkg/testutils/sqlutils", - "//pkg/testutils/testcluster", - "//pkg/util/leaktest", - "//pkg/util/log", - "//pkg/util/randutil", - "@com_github_cockroachdb_datadriven//:datadriven", - "@com_github_stretchr_testify//require", - ], -) diff --git a/pkg/ccl/cloudccl/gcp/BUILD.bazel b/pkg/ccl/cloudccl/gcp/BUILD.bazel deleted file mode 100644 index 414dfa3a405c..000000000000 --- a/pkg/ccl/cloudccl/gcp/BUILD.bazel +++ /dev/null @@ -1,32 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_test") - -go_test( - name = "gcp_test", - srcs = [ - "gcp_connection_test.go", - "main_test.go", - ], - deps = [ - "//pkg/base", - "//pkg/ccl", - "//pkg/cloud", - "//pkg/cloud/cloudtestutils", - "//pkg/cloud/externalconn/providers", - "//pkg/cloud/gcp", - "//pkg/cloud/impl:cloudimpl", - "//pkg/security/securityassets", - "//pkg/security/securitytest", - "//pkg/server", - "//pkg/testutils", - "//pkg/testutils/serverutils", - "//pkg/testutils/skip", - "//pkg/testutils/sqlutils", - "//pkg/util/leaktest", - "//pkg/util/log", - "//pkg/util/randutil", - "@com_github_stretchr_testify//require", - "@com_google_cloud_go_kms//apiv1", - "@com_google_cloud_go_storage//:storage", - "@org_golang_x_oauth2//google", - ], -) diff --git a/pkg/cloud/amazon/BUILD.bazel b/pkg/cloud/amazon/BUILD.bazel index ff841f6bc59f..d248cf86d2ce 100644 --- a/pkg/cloud/amazon/BUILD.bazel +++ b/pkg/cloud/amazon/BUILD.bazel @@ -49,25 +49,35 @@ go_library( go_test( name = "amazon_test", - size = "small", + size = "medium", srcs = [ "aws_kms_test.go", + "main_test.go", + "s3_connection_test.go", "s3_storage_test.go", ], embed = [":amazon"], deps = [ + "//pkg/backup", "//pkg/base", "//pkg/blobs", "//pkg/cloud", "//pkg/cloud/cloudpb", "//pkg/cloud/cloudtestutils", + "//pkg/cloud/externalconn/providers", + "//pkg/security/securityassets", + "//pkg/security/securitytest", "//pkg/security/username", + "//pkg/server", "//pkg/settings", "//pkg/settings/cluster", "//pkg/testutils", + "//pkg/testutils/serverutils", "//pkg/testutils/skip", + "//pkg/testutils/sqlutils", "//pkg/util/leaktest", "//pkg/util/log", + "//pkg/util/randutil", "//pkg/util/uuid", "@com_github_aws_aws_sdk_go//aws/awserr", "@com_github_aws_aws_sdk_go//aws/request", diff --git a/pkg/cloud/amazon/aws_kms_test.go b/pkg/cloud/amazon/aws_kms_test.go index 06618f67fb81..5e40ddac8c40 100644 --- a/pkg/cloud/amazon/aws_kms_test.go +++ b/pkg/cloud/amazon/aws_kms_test.go @@ -239,9 +239,14 @@ func TestKMSAgainstMockAWS(t *testing.T) { tempDir, cleanup := testutils.TempDir(t) defer cleanup() credFile := filepath.Join(tempDir, "credentials") + origCredsFile, hasCredsFile := os.LookupEnv("AWS_SHARED_CREDENTIALS_FILE") require.NoError(t, os.Setenv("AWS_SHARED_CREDENTIALS_FILE", credFile)) defer func() { - require.NoError(t, os.Unsetenv("AWS_SHARED_CREDENTIALS_FILE")) + if hasCredsFile { + require.NoError(t, os.Setenv("AWS_SHARED_CREDENTIALS_FILE", origCredsFile)) + } else { + require.NoError(t, os.Unsetenv("AWS_SHARED_CREDENTIALS_FILE")) + } }() require.NoError(t, os.WriteFile(credFile, []byte(`[default] aws_access_key_id = abc @@ -354,6 +359,7 @@ func TestAWSKMSDisallowImplicitCredentials(t *testing.T) { } func TestAWSKMSInaccessibleError(t *testing.T) { + defer leaktest.AfterTest(t)() q := make(url.Values) expect := map[string]string{ "AWS_ACCESS_KEY_ID": AWSAccessKeyParam, @@ -454,12 +460,22 @@ func TestAWSKMSImplicitAuthRequiresNoSharedConfigFiles(t *testing.T) { // so in order to circumvent this and test the case where the shared config // files are not present, we need to set the AWS_CONFIG_FILE and // AWS_SHARED_CREDENTIALS_FILE. + origConfigFile, hasConfigFile := os.LookupEnv("AWS_CONFIG_FILE") + origCredsFile, hasCredsFile := os.LookupEnv("AWS_SHARED_CREDENTIALS_FILE") require.NoError(t, os.Setenv("AWS_CONFIG_FILE", "/tmp/config")) require.NoError(t, os.Setenv("AWS_SHARED_CREDENTIALS_FILE", "/tmp/credentials")) defer func() { - require.NoError(t, os.Unsetenv("AWS_CONFIG_FILE")) - require.NoError(t, os.Unsetenv("AWS_SHARED_CREDENTIALS_FILE")) + if hasConfigFile { + require.NoError(t, os.Setenv("AWS_CONFIG_FILE", origConfigFile)) + } else { + require.NoError(t, os.Unsetenv("AWS_CONFIG_FILE")) + } + if hasCredsFile { + require.NoError(t, os.Setenv("AWS_SHARED_CREDENTIALS_FILE", origCredsFile)) + } else { + require.NoError(t, os.Unsetenv("AWS_SHARED_CREDENTIALS_FILE")) + } }() testEnv := &cloud.TestKMSEnv{ diff --git a/pkg/ccl/cloudccl/amazon/main_test.go b/pkg/cloud/amazon/main_test.go similarity index 75% rename from pkg/ccl/cloudccl/amazon/main_test.go rename to pkg/cloud/amazon/main_test.go index 5c6cc7c31863..6985c518ba6b 100644 --- a/pkg/ccl/cloudccl/amazon/main_test.go +++ b/pkg/cloud/amazon/main_test.go @@ -9,8 +9,9 @@ import ( "os" "testing" + _ "github.com/cockroachdb/cockroach/pkg/backup" // register BACKUP/RESTORE plan hooks. "github.com/cockroachdb/cockroach/pkg/base" - "github.com/cockroachdb/cockroach/pkg/ccl" + _ "github.com/cockroachdb/cockroach/pkg/cloud/externalconn/providers" // register External Connection providers. "github.com/cockroachdb/cockroach/pkg/security/securityassets" "github.com/cockroachdb/cockroach/pkg/security/securitytest" "github.com/cockroachdb/cockroach/pkg/server" @@ -19,8 +20,6 @@ import ( ) func TestMain(m *testing.M) { - defer ccl.TestingEnableEnterprise()() - securityassets.SetLoader(securitytest.EmbeddedAssets) randutil.SeedForTests() serverutils.InitTestServerFactory( @@ -30,4 +29,4 @@ func TestMain(m *testing.M) { os.Exit(m.Run()) } -//go:generate ../../../util/leaktest/add-leaktest.sh *_test.go +//go:generate ../../util/leaktest/add-leaktest.sh *_test.go diff --git a/pkg/ccl/cloudccl/amazon/s3_connection_test.go b/pkg/cloud/amazon/s3_connection_test.go similarity index 92% rename from pkg/ccl/cloudccl/amazon/s3_connection_test.go rename to pkg/cloud/amazon/s3_connection_test.go index 3b5da0fda198..f140350a55b8 100644 --- a/pkg/ccl/cloudccl/amazon/s3_connection_test.go +++ b/pkg/cloud/amazon/s3_connection_test.go @@ -15,12 +15,9 @@ import ( "github.com/aws/aws-sdk-go-v2/config" "github.com/cockroachdb/cockroach/pkg/base" - _ "github.com/cockroachdb/cockroach/pkg/ccl" "github.com/cockroachdb/cockroach/pkg/cloud" - "github.com/cockroachdb/cockroach/pkg/cloud/amazon" "github.com/cockroachdb/cockroach/pkg/cloud/cloudpb" "github.com/cockroachdb/cockroach/pkg/cloud/cloudtestutils" - _ "github.com/cockroachdb/cockroach/pkg/cloud/externalconn/providers" // import External Connection providers. "github.com/cockroachdb/cockroach/pkg/testutils" "github.com/cockroachdb/cockroach/pkg/testutils/serverutils" "github.com/cockroachdb/cockroach/pkg/testutils/skip" @@ -105,7 +102,7 @@ func TestS3ExternalConnection(t *testing.T) { }) t.Run("auth-specified", func(t *testing.T) { - s3URI := amazon.S3URI(bucket, fmt.Sprintf("backup-ec-test-default-%d", testID), + s3URI := S3URI(bucket, fmt.Sprintf("backup-ec-test-default-%d", testID), &cloudpb.ExternalStorage_S3{ AccessKey: creds.AccessKeyID, Secret: creds.SecretAccessKey, @@ -134,7 +131,7 @@ func TestS3ExternalConnection(t *testing.T) { "refer to https://docs.aws.com/cli/latest/userguide/cli-configure-role.html: %s", err) } - s3URI := amazon.S3URI(bucket, fmt.Sprintf("backup-ec-test-sse-256-%d", testID), &cloudpb.ExternalStorage_S3{ + s3URI := S3URI(bucket, fmt.Sprintf("backup-ec-test-sse-256-%d", testID), &cloudpb.ExternalStorage_S3{ Region: "us-east-1", Auth: cloud.AuthParamImplicit, ServerEncMode: "AES256", @@ -147,7 +144,7 @@ func TestS3ExternalConnection(t *testing.T) { if v == "" { skip.IgnoreLint(t, "AWS_KMS_KEY_ARN env var must be set") } - s3KMSURI := amazon.S3URI(bucket, fmt.Sprintf("backup-ec-test-sse-kms-%d", testID), &cloudpb.ExternalStorage_S3{ + s3KMSURI := S3URI(bucket, fmt.Sprintf("backup-ec-test-sse-kms-%d", testID), &cloudpb.ExternalStorage_S3{ Region: "us-east-1", Auth: cloud.AuthParamImplicit, ServerEncMode: "aws:kms", @@ -174,7 +171,7 @@ func TestS3ExternalConnection(t *testing.T) { } // Unsupported server side encryption option. - invalidS3URI := amazon.S3URI(bucket, fmt.Sprintf("backup-ec-test-sse-256-%d", testID), &cloudpb.ExternalStorage_S3{ + invalidS3URI := S3URI(bucket, fmt.Sprintf("backup-ec-test-sse-256-%d", testID), &cloudpb.ExternalStorage_S3{ Region: "us-east-1", Auth: cloud.AuthParamImplicit, ServerEncMode: "unsupported-algorithm", @@ -183,7 +180,7 @@ func TestS3ExternalConnection(t *testing.T) { "unsupported server encryption mode unsupported-algorithm. Supported values are `aws:kms` and `AES256", fmt.Sprintf(`BACKUP DATABASE foo INTO '%s'`, invalidS3URI)) - invalidS3URI = amazon.S3URI(bucket, fmt.Sprintf("backup-ec-test-sse-256-%d", testID), &cloudpb.ExternalStorage_S3{ + invalidS3URI = S3URI(bucket, fmt.Sprintf("backup-ec-test-sse-256-%d", testID), &cloudpb.ExternalStorage_S3{ Region: "us-east-1", Auth: cloud.AuthParamImplicit, ServerEncMode: "aws:kms", @@ -238,8 +235,8 @@ func TestAWSKMSExternalConnection(t *testing.T) { q := make(url.Values) expect := map[string]string{ - "AWS_ACCESS_KEY_ID": amazon.AWSAccessKeyParam, - "AWS_SECRET_ACCESS_KEY": amazon.AWSSecretParam, + "AWS_ACCESS_KEY_ID": AWSAccessKeyParam, + "AWS_SECRET_ACCESS_KEY": AWSSecretParam, } for env, param := range expect { v := os.Getenv(env) @@ -253,7 +250,7 @@ func TestAWSKMSExternalConnection(t *testing.T) { if kmsRegion == "" { skip.IgnoreLint(t, "AWS_KMS_REGION env var must be set") } - q.Add(amazon.KMSRegionParam, kmsRegion) + q.Add(KMSRegionParam, kmsRegion) // Get AWS Key identifier from env variable. keyID := os.Getenv("AWS_KMS_KEY_ARN") @@ -277,7 +274,7 @@ func TestAWSKMSExternalConnection(t *testing.T) { // Set the AUTH to implicit. params := make(url.Values) params.Add(cloud.AuthParam, cloud.AuthParamImplicit) - params.Add(amazon.KMSRegionParam, kmsRegion) + params.Add(KMSRegionParam, kmsRegion) kmsURI := fmt.Sprintf("aws-kms:///%s?%s", keyID, params.Encode()) createExternalConnection("auth-implicit-kms", kmsURI) @@ -350,9 +347,9 @@ func TestAWSKMSExternalConnectionAssumeRole(t *testing.T) { q := make(url.Values) expect := map[string]string{ - "AWS_ACCESS_KEY_ID": amazon.AWSAccessKeyParam, - "AWS_SECRET_ACCESS_KEY": amazon.AWSSecretParam, - "AWS_ASSUME_ROLE": amazon.AssumeRoleParam, + "AWS_ACCESS_KEY_ID": AWSAccessKeyParam, + "AWS_SECRET_ACCESS_KEY": AWSSecretParam, + "AWS_ASSUME_ROLE": AssumeRoleParam, } for env, param := range expect { v := os.Getenv(env) @@ -366,7 +363,7 @@ func TestAWSKMSExternalConnectionAssumeRole(t *testing.T) { if kmsRegion == "" { skip.IgnoreLint(t, "AWS_KMS_REGION env var must be set") } - q.Add(amazon.KMSRegionParam, kmsRegion) + q.Add(KMSRegionParam, kmsRegion) q.Set(cloud.AuthParam, cloud.AuthParamSpecified) // Get AWS Key identifier from env variable. @@ -404,8 +401,8 @@ func TestAWSKMSExternalConnectionAssumeRole(t *testing.T) { // Create params for implicit user. params := make(url.Values) params.Add(cloud.AuthParam, cloud.AuthParamImplicit) - params.Add(amazon.AssumeRoleParam, q.Get(amazon.AssumeRoleParam)) - params.Add(amazon.KMSRegionParam, kmsRegion) + params.Add(AssumeRoleParam, q.Get(AssumeRoleParam)) + params.Add(KMSRegionParam, kmsRegion) uri := fmt.Sprintf("aws-kms:///%s?%s", keyID, params.Encode()) createExternalConnection("auth-assume-role-implicit", uri) @@ -426,14 +423,14 @@ func TestAWSKMSExternalConnectionAssumeRole(t *testing.T) { // to access the KMS. for i, role := range roleChain { i := i - q.Set(amazon.AssumeRoleParam, role) + q.Set(AssumeRoleParam, role) disallowedKMSURI := fmt.Sprintf("aws-kms:///%s?%s", keyID, q.Encode()) disallowedECName := fmt.Sprintf("auth-assume-role-chaining-disallowed-%d", i) disallowedCreateExternalConnection(disallowedECName, disallowedKMSURI) } // Finally, check that the chain of roles can be used to access the KMS. - q.Set(amazon.AssumeRoleParam, roleChainStr) + q.Set(AssumeRoleParam, roleChainStr) uri := fmt.Sprintf("aws-kms:///%s?%s", keyID, q.Encode()) createExternalConnection("auth-assume-role-chaining", uri) backupAndRestoreFromExternalConnection(backupExternalConnectionName, "auth-assume-role-chaining") diff --git a/pkg/cloud/amazon/s3_storage_test.go b/pkg/cloud/amazon/s3_storage_test.go index 48f08fd6e179..2c031ed945e0 100644 --- a/pkg/cloud/amazon/s3_storage_test.go +++ b/pkg/cloud/amazon/s3_storage_test.go @@ -616,6 +616,7 @@ func (a awserror) ErrorFault() smithy.ErrorFault { } func TestInterpretAWSCode(t *testing.T) { + defer leaktest.AfterTest(t)() { // with code err := types.BucketAlreadyOwnedByYou{} @@ -848,6 +849,7 @@ func TestReadFileAtReturnsSize(t *testing.T) { } func TestCanceledError(t *testing.T) { + defer leaktest.AfterTest(t)() ctx, cancelFunc := context.WithCancel(context.Background()) cancelFunc() err := ctx.Err() @@ -881,12 +883,22 @@ func TestAWSS3ImplicitAuthRequiresNoSharedConfigFiles(t *testing.T) { // so in order to circumvent this and test the case where the shared config // files are not present, we need to set the AWS_CONFIG_FILE and // AWS_SHARED_CREDENTIALS_FILE. + origConfigFile, hasConfigFile := os.LookupEnv("AWS_CONFIG_FILE") + origCredsFile, hasCredsFile := os.LookupEnv("AWS_SHARED_CREDENTIALS_FILE") require.NoError(t, os.Setenv("AWS_CONFIG_FILE", "/tmp/config")) require.NoError(t, os.Setenv("AWS_SHARED_CREDENTIALS_FILE", "/tmp/credentials")) defer func() { - require.NoError(t, os.Unsetenv("AWS_CONFIG_FILE")) - require.NoError(t, os.Unsetenv("AWS_SHARED_CREDENTIALS_FILE")) + if hasConfigFile { + require.NoError(t, os.Setenv("AWS_CONFIG_FILE", origConfigFile)) + } else { + require.NoError(t, os.Unsetenv("AWS_CONFIG_FILE")) + } + if hasCredsFile { + require.NoError(t, os.Setenv("AWS_SHARED_CREDENTIALS_FILE", origCredsFile)) + } else { + require.NoError(t, os.Unsetenv("AWS_SHARED_CREDENTIALS_FILE")) + } }() s3 := s3Storage{ diff --git a/pkg/cloud/azure/BUILD.bazel b/pkg/cloud/azure/BUILD.bazel index 7dbbeaf9a923..698c997a4f2b 100644 --- a/pkg/cloud/azure/BUILD.bazel +++ b/pkg/cloud/azure/BUILD.bazel @@ -47,13 +47,16 @@ go_test( name = "azure_test", srcs = [ "azure_connection_test.go", + "azure_ec_connection_test.go", "azure_file_credentials_test.go", "azure_kms_connection_test.go", "azure_kms_test.go", "azure_storage_test.go", + "main_test.go", ], embed = [":azure"], deps = [ + "//pkg/backup", "//pkg/base", "//pkg/blobs", "//pkg/cloud", @@ -61,13 +64,20 @@ go_test( "//pkg/cloud/cloudtestutils", "//pkg/cloud/externalconn", "//pkg/cloud/externalconn/connectionpb", + "//pkg/cloud/externalconn/providers", + "//pkg/security/securityassets", + "//pkg/security/securitytest", "//pkg/security/username", + "//pkg/server", "//pkg/settings/cluster", "//pkg/testutils", + "//pkg/testutils/serverutils", "//pkg/testutils/skip", + "//pkg/testutils/sqlutils", "//pkg/util/envutil", "//pkg/util/leaktest", "//pkg/util/log", + "//pkg/util/randutil", "@com_github_azure_azure_sdk_for_go_sdk_azcore//:azcore", "@com_github_azure_azure_sdk_for_go_sdk_azidentity//:azidentity", "@com_github_azure_azure_sdk_for_go_sdk_storage_azblob//service", diff --git a/pkg/cloud/azure/azure_connection_test.go b/pkg/cloud/azure/azure_connection_test.go index 145b4800e854..0715c002ad07 100644 --- a/pkg/cloud/azure/azure_connection_test.go +++ b/pkg/cloud/azure/azure_connection_test.go @@ -10,10 +10,12 @@ import ( "github.com/cockroachdb/cockroach/pkg/cloud/externalconn" "github.com/cockroachdb/cockroach/pkg/cloud/externalconn/connectionpb" + "github.com/cockroachdb/cockroach/pkg/util/leaktest" "github.com/stretchr/testify/require" ) func TestAzureStorageConnection(t *testing.T) { + defer leaktest.AfterTest(t)() require.Equal(t, connectionpb.ConnectionProvider_azure_storage, externalconn.ProviderForURI("azure://test")) require.Equal(t, connectionpb.ConnectionProvider_azure_storage, externalconn.ProviderForURI("azure-storage://test")) require.Equal(t, connectionpb.ConnectionProvider_azure_storage, externalconn.ProviderForURI("azure-blob://test")) diff --git a/pkg/ccl/cloudccl/azure/azure_connection_test.go b/pkg/cloud/azure/azure_ec_connection_test.go similarity index 66% rename from pkg/ccl/cloudccl/azure/azure_connection_test.go rename to pkg/cloud/azure/azure_ec_connection_test.go index a4709aa10c97..ed6dec8e02dc 100644 --- a/pkg/ccl/cloudccl/azure/azure_connection_test.go +++ b/pkg/cloud/azure/azure_ec_connection_test.go @@ -7,18 +7,12 @@ package azure import ( "context" - "errors" "fmt" "net/url" - "os" "testing" - az "github.com/Azure/go-autorest/autorest/azure" "github.com/cockroachdb/cockroach/pkg/base" - _ "github.com/cockroachdb/cockroach/pkg/ccl" - "github.com/cockroachdb/cockroach/pkg/cloud/azure" "github.com/cockroachdb/cockroach/pkg/cloud/cloudtestutils" - _ "github.com/cockroachdb/cockroach/pkg/cloud/externalconn/providers" // import External Connection providers. "github.com/cockroachdb/cockroach/pkg/testutils" "github.com/cockroachdb/cockroach/pkg/testutils/serverutils" "github.com/cockroachdb/cockroach/pkg/testutils/skip" @@ -27,32 +21,12 @@ import ( "github.com/cockroachdb/cockroach/pkg/util/log" ) -func (a azureConfig) URI(file string, testID uint64) string { +func (a *azureConfig) ecURI(file string, testID uint64) string { return fmt.Sprintf("azure-storage://%s/%s-%d?%s=%s&%s=%s&%s=%s", a.bucket, file, testID, - azure.AzureAccountKeyParam, url.QueryEscape(a.key), - azure.AzureAccountNameParam, url.QueryEscape(a.account), - azure.AzureEnvironmentKeyParam, url.QueryEscape(a.environment)) -} - -type azureConfig struct { - account, key, bucket, environment string -} - -func getAzureConfig() (azureConfig, error) { - cfg := azureConfig{ - account: os.Getenv("AZURE_ACCOUNT_NAME"), - key: os.Getenv("AZURE_ACCOUNT_KEY"), - bucket: os.Getenv("AZURE_CONTAINER"), - environment: az.PublicCloud.Name, - } - if cfg.account == "" || cfg.key == "" || cfg.bucket == "" { - return azureConfig{}, errors.New("AZURE_ACCOUNT_NAME, AZURE_ACCOUNT_KEY, AZURE_CONTAINER must all be set") - } - if v, ok := os.LookupEnv(azure.AzureEnvironmentKeyParam); ok { - cfg.environment = v - } - return cfg, nil + AzureAccountKeyParam, url.QueryEscape(a.key), + AzureAccountNameParam, url.QueryEscape(a.account), + AzureEnvironmentKeyParam, url.QueryEscape(a.environment)) } func TestExternalConnections(t *testing.T) { @@ -95,6 +69,6 @@ func TestExternalConnections(t *testing.T) { testID := cloudtestutils.NewTestID() ecName := "azure-ec" - createExternalConnection(ecName, cfg.URI("backup-ec", testID)) + createExternalConnection(ecName, cfg.ecURI("backup-ec", testID)) backupAndRestoreFromExternalConnection(ecName) } diff --git a/pkg/cloud/azure/azure_kms_connection_test.go b/pkg/cloud/azure/azure_kms_connection_test.go index 22a8b7d558d5..6a6bb0e3a751 100644 --- a/pkg/cloud/azure/azure_kms_connection_test.go +++ b/pkg/cloud/azure/azure_kms_connection_test.go @@ -10,9 +10,11 @@ import ( "github.com/cockroachdb/cockroach/pkg/cloud/externalconn" "github.com/cockroachdb/cockroach/pkg/cloud/externalconn/connectionpb" + "github.com/cockroachdb/cockroach/pkg/util/leaktest" "github.com/stretchr/testify/require" ) func TestAzureKMSConnection(t *testing.T) { + defer leaktest.AfterTest(t)() require.Equal(t, connectionpb.ConnectionProvider_azure_kms, externalconn.ProviderForURI("azure-kms://test")) } diff --git a/pkg/cloud/azure/azure_storage_test.go b/pkg/cloud/azure/azure_storage_test.go index 18983f916723..654a2d08842d 100644 --- a/pkg/cloud/azure/azure_storage_test.go +++ b/pkg/cloud/azure/azure_storage_test.go @@ -227,6 +227,7 @@ func TestAntagonisticAzureRead(t *testing.T) { } func TestParseAzureURL(t *testing.T) { + defer leaktest.AfterTest(t)() t.Run("Defaults to Public Cloud when AZURE_ENVIRONEMNT unset", func(t *testing.T) { u, err := url.Parse("azure://container/path?AZURE_ACCOUNT_NAME=account&AZURE_ACCOUNT_KEY=key") require.NoError(t, err) @@ -274,6 +275,7 @@ func TestParseAzureURL(t *testing.T) { } func TestMakeAzureStorageURLFromEnvironment(t *testing.T) { + defer leaktest.AfterTest(t)() for _, tt := range []struct { environment string expected string diff --git a/pkg/ccl/cloudccl/azure/main_test.go b/pkg/cloud/azure/main_test.go similarity index 75% rename from pkg/ccl/cloudccl/azure/main_test.go rename to pkg/cloud/azure/main_test.go index e609408fd278..cf231ffff31a 100644 --- a/pkg/ccl/cloudccl/azure/main_test.go +++ b/pkg/cloud/azure/main_test.go @@ -9,8 +9,9 @@ import ( "os" "testing" + _ "github.com/cockroachdb/cockroach/pkg/backup" // register BACKUP/RESTORE plan hooks. "github.com/cockroachdb/cockroach/pkg/base" - "github.com/cockroachdb/cockroach/pkg/ccl" + _ "github.com/cockroachdb/cockroach/pkg/cloud/externalconn/providers" // register External Connection providers. "github.com/cockroachdb/cockroach/pkg/security/securityassets" "github.com/cockroachdb/cockroach/pkg/security/securitytest" "github.com/cockroachdb/cockroach/pkg/server" @@ -19,8 +20,6 @@ import ( ) func TestMain(m *testing.M) { - defer ccl.TestingEnableEnterprise()() - securityassets.SetLoader(securitytest.EmbeddedAssets) randutil.SeedForTests() serverutils.InitTestServerFactory( @@ -30,4 +29,4 @@ func TestMain(m *testing.M) { os.Exit(m.Run()) } -//go:generate ../../../util/leaktest/add-leaktest.sh *_test.go +//go:generate ../../util/leaktest/add-leaktest.sh *_test.go diff --git a/pkg/ccl/cloudccl/cloudprivilege/BUILD.bazel b/pkg/cloud/cloudprivilege/BUILD.bazel similarity index 95% rename from pkg/ccl/cloudccl/cloudprivilege/BUILD.bazel rename to pkg/cloud/cloudprivilege/BUILD.bazel index c9aa8fc1a2ed..c352ba13d240 100644 --- a/pkg/ccl/cloudccl/cloudprivilege/BUILD.bazel +++ b/pkg/cloud/cloudprivilege/BUILD.bazel @@ -8,10 +8,10 @@ go_test( ], exec_properties = { "dockerNetwork": "standard", - }, + }, # keep deps = [ + "//pkg/backup", "//pkg/base", - "//pkg/ccl", "//pkg/cloud", "//pkg/cloud/impl:cloudimpl", "//pkg/security/securityassets", diff --git a/pkg/ccl/cloudccl/cloudprivilege/main_test.go b/pkg/cloud/cloudprivilege/main_test.go similarity index 86% rename from pkg/ccl/cloudccl/cloudprivilege/main_test.go rename to pkg/cloud/cloudprivilege/main_test.go index ad3b5c077e85..aba53d8e0a67 100644 --- a/pkg/ccl/cloudccl/cloudprivilege/main_test.go +++ b/pkg/cloud/cloudprivilege/main_test.go @@ -10,7 +10,6 @@ import ( "testing" "github.com/cockroachdb/cockroach/pkg/base" - "github.com/cockroachdb/cockroach/pkg/ccl" _ "github.com/cockroachdb/cockroach/pkg/cloud/impl" "github.com/cockroachdb/cockroach/pkg/security/securityassets" "github.com/cockroachdb/cockroach/pkg/security/securitytest" @@ -21,8 +20,6 @@ import ( ) func TestMain(m *testing.M) { - defer ccl.TestingEnableEnterprise()() - securityassets.SetLoader(securitytest.EmbeddedAssets) randutil.SeedForTests() serverutils.InitTestServerFactory(server.TestServerFactory, @@ -31,4 +28,4 @@ func TestMain(m *testing.M) { os.Exit(m.Run()) } -//go:generate ../../../util/leaktest/add-leaktest.sh *_test.go +//go:generate ../../util/leaktest/add-leaktest.sh *_test.go diff --git a/pkg/ccl/cloudccl/cloudprivilege/privileges_test.go b/pkg/cloud/cloudprivilege/privileges_test.go similarity index 97% rename from pkg/ccl/cloudccl/cloudprivilege/privileges_test.go rename to pkg/cloud/cloudprivilege/privileges_test.go index 5a04c10d4c12..3caa423a7b1a 100644 --- a/pkg/ccl/cloudccl/cloudprivilege/privileges_test.go +++ b/pkg/cloud/cloudprivilege/privileges_test.go @@ -10,8 +10,8 @@ import ( "fmt" "testing" + _ "github.com/cockroachdb/cockroach/pkg/backup" // register BACKUP/RESTORE plan hooks. "github.com/cockroachdb/cockroach/pkg/base" - _ "github.com/cockroachdb/cockroach/pkg/ccl" // import CCL to run backup and restore "github.com/cockroachdb/cockroach/pkg/cloud" "github.com/cockroachdb/cockroach/pkg/security/username" "github.com/cockroachdb/cockroach/pkg/testutils" @@ -137,7 +137,7 @@ func TestURIRequiresAdminOrPrivilege(t *testing.T) { t.Run(tc.name+"-via-backup", func(t *testing.T) { _, err := testuser.Exec(fmt.Sprintf(`BACKUP TABLE foo INTO '%s'`, tc.uri)) if tc.isAPrivilegedOperation { - require.True(t, testutils.IsError(err, "only users with the admin role or the EXTERNALIOIMPLICITACCESS system privilege are allowed to access")) + require.True(t, testutils.IsError(err, "only users with the admin role or the EXTERNALIOIMPLICITACCESS system privilege are allowed to access"), "unexpected error: %v", err) } else { require.False(t, testutils.IsError(err, "only users with the admin role or the EXTERNALIOIMPLICITACCESS system privilege are allowed to access")) } diff --git a/pkg/cloud/externalconn/BUILD.bazel b/pkg/cloud/externalconn/BUILD.bazel index b346c96c3236..b15ba9b1dbd8 100644 --- a/pkg/cloud/externalconn/BUILD.bazel +++ b/pkg/cloud/externalconn/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "externalconn", @@ -29,3 +29,39 @@ go_library( "@com_github_lib_pq//oid", ], ) + +go_test( + name = "externalconn_test", + size = "large", + srcs = [ + "datadriven_test.go", + "main_test.go", + ], + data = glob(["testdata/**"]), + exec_properties = { + "dockerNetwork": "standard", + }, + deps = [ + ":externalconn", + "//pkg/backup", + "//pkg/base", + "//pkg/ccl/changefeedccl", + "//pkg/cloud/externalconn/providers", + "//pkg/cloud/externalconn/testutils", + "//pkg/jobs", + "//pkg/roachpb", + "//pkg/security/securityassets", + "//pkg/security/securitytest", + "//pkg/server", + "//pkg/testutils", + "//pkg/testutils/datapathutils", + "//pkg/testutils/serverutils", + "//pkg/testutils/sqlutils", + "//pkg/testutils/testcluster", + "//pkg/util/leaktest", + "//pkg/util/log", + "//pkg/util/randutil", + "@com_github_cockroachdb_datadriven//:datadriven", + "@com_github_stretchr_testify//require", + ], +) diff --git a/pkg/ccl/cloudccl/externalconn/datadriven_test.go b/pkg/cloud/externalconn/datadriven_test.go similarity index 97% rename from pkg/ccl/cloudccl/externalconn/datadriven_test.go rename to pkg/cloud/externalconn/datadriven_test.go index e824bcb40300..07cfcfdbcba3 100644 --- a/pkg/ccl/cloudccl/externalconn/datadriven_test.go +++ b/pkg/cloud/externalconn/datadriven_test.go @@ -63,6 +63,9 @@ func TestDataDriven(t *testing.T) { defer tc.Stopper().Stop(ctx) externalConnTestCluster := ectestutils.NewHandle(t, tc) + externalConnTestCluster.Knobs = base.TestingKnobs{ + ExternalConnection: ecTestingKnobs, + } defer externalConnTestCluster.Cleanup() externalConnTestCluster.InitializeTenant(ctx, roachpb.SystemTenantID) diff --git a/pkg/ccl/cloudccl/externalconn/main_test.go b/pkg/cloud/externalconn/main_test.go similarity index 93% rename from pkg/ccl/cloudccl/externalconn/main_test.go rename to pkg/cloud/externalconn/main_test.go index 935d8652e48e..e8372a7d715e 100644 --- a/pkg/ccl/cloudccl/externalconn/main_test.go +++ b/pkg/cloud/externalconn/main_test.go @@ -27,4 +27,4 @@ func TestMain(m *testing.M) { os.Exit(m.Run()) } -//go:generate ../../../util/leaktest/add-leaktest.sh *_test.go +//go:generate ../../util/leaktest/add-leaktest.sh *_test.go diff --git a/pkg/ccl/cloudccl/externalconn/testdata/create_drop_external_connection b/pkg/cloud/externalconn/testdata/create_drop_external_connection similarity index 100% rename from pkg/ccl/cloudccl/externalconn/testdata/create_drop_external_connection rename to pkg/cloud/externalconn/testdata/create_drop_external_connection diff --git a/pkg/ccl/cloudccl/externalconn/testdata/multi-tenant/create_drop_external_connection b/pkg/cloud/externalconn/testdata/multi-tenant/create_drop_external_connection similarity index 100% rename from pkg/ccl/cloudccl/externalconn/testdata/multi-tenant/create_drop_external_connection rename to pkg/cloud/externalconn/testdata/multi-tenant/create_drop_external_connection diff --git a/pkg/ccl/cloudccl/externalconn/testdata/multi-tenant/privileges_external_connection b/pkg/cloud/externalconn/testdata/multi-tenant/privileges_external_connection similarity index 100% rename from pkg/ccl/cloudccl/externalconn/testdata/multi-tenant/privileges_external_connection rename to pkg/cloud/externalconn/testdata/multi-tenant/privileges_external_connection diff --git a/pkg/ccl/cloudccl/externalconn/testdata/multi-tenant/show_create_external_connections b/pkg/cloud/externalconn/testdata/multi-tenant/show_create_external_connections similarity index 100% rename from pkg/ccl/cloudccl/externalconn/testdata/multi-tenant/show_create_external_connections rename to pkg/cloud/externalconn/testdata/multi-tenant/show_create_external_connections diff --git a/pkg/ccl/cloudccl/externalconn/testdata/multi-tenant/show_external_connections b/pkg/cloud/externalconn/testdata/multi-tenant/show_external_connections similarity index 100% rename from pkg/ccl/cloudccl/externalconn/testdata/multi-tenant/show_external_connections rename to pkg/cloud/externalconn/testdata/multi-tenant/show_external_connections diff --git a/pkg/ccl/cloudccl/externalconn/testdata/privileges_external_connection b/pkg/cloud/externalconn/testdata/privileges_external_connection similarity index 100% rename from pkg/ccl/cloudccl/externalconn/testdata/privileges_external_connection rename to pkg/cloud/externalconn/testdata/privileges_external_connection diff --git a/pkg/ccl/cloudccl/externalconn/testdata/show_create_external_connections b/pkg/cloud/externalconn/testdata/show_create_external_connections similarity index 100% rename from pkg/ccl/cloudccl/externalconn/testdata/show_create_external_connections rename to pkg/cloud/externalconn/testdata/show_create_external_connections diff --git a/pkg/ccl/cloudccl/externalconn/testdata/show_external_connections b/pkg/cloud/externalconn/testdata/show_external_connections similarity index 100% rename from pkg/ccl/cloudccl/externalconn/testdata/show_external_connections rename to pkg/cloud/externalconn/testdata/show_external_connections diff --git a/pkg/cloud/externalconn/testutils/cluster.go b/pkg/cloud/externalconn/testutils/cluster.go index 9e642be3c8d7..0e9162bc0e19 100644 --- a/pkg/cloud/externalconn/testutils/cluster.go +++ b/pkg/cloud/externalconn/testutils/cluster.go @@ -25,6 +25,9 @@ type Handle struct { t *testing.T tc *testcluster.TestCluster ts map[roachpb.TenantID]*Tenant + + // Knobs, if set, are propagated to tenants started via InitializeTenant. + Knobs base.TestingKnobs } // NewHandle returns a new Handle. @@ -73,7 +76,8 @@ func (h *Handle) InitializeTenant(ctx context.Context, tenID roachpb.TenantID) { tenantState.userToDB[username.RootUserName().Normalized()] = tenantState.curDB } else { tenantArgs := base.TestTenantArgs{ - TenantID: tenID, + TenantID: tenID, + TestingKnobs: h.Knobs, } var err error tenantState.ApplicationLayerInterface, err = testServer.TenantController().StartTenant(ctx, tenantArgs) diff --git a/pkg/cloud/gcp/BUILD.bazel b/pkg/cloud/gcp/BUILD.bazel index de511df4a73e..f183e6a90402 100644 --- a/pkg/cloud/gcp/BUILD.bazel +++ b/pkg/cloud/gcp/BUILD.bazel @@ -46,21 +46,32 @@ go_test( name = "gcp_test", srcs = [ "error_test.go", + "gcp_connection_test.go", "gcp_kms_test.go", "gcs_storage_test.go", + "main_test.go", ], embed = [":gcp"], deps = [ + "//pkg/backup", "//pkg/base", "//pkg/cloud", "//pkg/cloud/cloudtestutils", + "//pkg/cloud/externalconn/providers", + "//pkg/cloud/impl:cloudimpl", + "//pkg/security/securityassets", + "//pkg/security/securitytest", "//pkg/security/username", + "//pkg/server", "//pkg/settings/cluster", "//pkg/testutils", + "//pkg/testutils/serverutils", "//pkg/testutils/skip", + "//pkg/testutils/sqlutils", "//pkg/util/ioctx", "//pkg/util/leaktest", "//pkg/util/log", + "//pkg/util/randutil", "//pkg/util/uuid", "@com_github_cockroachdb_errors//:errors", "@com_github_googleapis_gax_go_v2//apierror", diff --git a/pkg/cloud/gcp/error_test.go b/pkg/cloud/gcp/error_test.go index 5b253db41770..f6a7fae246b7 100644 --- a/pkg/cloud/gcp/error_test.go +++ b/pkg/cloud/gcp/error_test.go @@ -8,6 +8,7 @@ package gcp import ( "testing" + "github.com/cockroachdb/cockroach/pkg/util/leaktest" "github.com/cockroachdb/errors" "github.com/googleapis/gax-go/v2/apierror" "github.com/stretchr/testify/assert" @@ -15,6 +16,7 @@ import ( ) func TestErrorBehaviour(t *testing.T) { + defer leaktest.AfterTest(t)() orig := &googleapi.Error{ Code: 403, Message: "ACCESS DENIED. ALL YOUR BASE ARE BELONG TO US", diff --git a/pkg/ccl/cloudccl/gcp/gcp_connection_test.go b/pkg/cloud/gcp/gcp_connection_test.go similarity index 99% rename from pkg/ccl/cloudccl/gcp/gcp_connection_test.go rename to pkg/cloud/gcp/gcp_connection_test.go index 4d46d3f66928..5654b4f057c3 100644 --- a/pkg/ccl/cloudccl/gcp/gcp_connection_test.go +++ b/pkg/cloud/gcp/gcp_connection_test.go @@ -17,7 +17,6 @@ import ( kms "cloud.google.com/go/kms/apiv1" gcs "cloud.google.com/go/storage" "github.com/cockroachdb/cockroach/pkg/base" - _ "github.com/cockroachdb/cockroach/pkg/ccl" "github.com/cockroachdb/cockroach/pkg/cloud" "github.com/cockroachdb/cockroach/pkg/cloud/cloudtestutils" _ "github.com/cockroachdb/cockroach/pkg/cloud/externalconn/providers" // import External Connection providers. diff --git a/pkg/cloud/gcp/gcp_kms_test.go b/pkg/cloud/gcp/gcp_kms_test.go index 38446ac23abf..b67fe9737242 100644 --- a/pkg/cloud/gcp/gcp_kms_test.go +++ b/pkg/cloud/gcp/gcp_kms_test.go @@ -128,6 +128,7 @@ func TestEncryptDecryptGCS(t *testing.T) { } func TestKMSAssumeRoleGCP(t *testing.T) { + defer leaktest.AfterTest(t)() envVars := []string{ "GOOGLE_CREDENTIALS_JSON", "GOOGLE_APPLICATION_CREDENTIALS", @@ -229,6 +230,7 @@ func TestGCSKMSDisallowImplicitCredentials(t *testing.T) { } func TestGCPKMSInaccessibleError(t *testing.T) { + defer leaktest.AfterTest(t)() envVars := []string{ "GOOGLE_CREDENTIALS_JSON", "GOOGLE_APPLICATION_CREDENTIALS", diff --git a/pkg/cloud/gcp/gcs_storage_test.go b/pkg/cloud/gcp/gcs_storage_test.go index 9429b8ebb88e..247febf4c864 100644 --- a/pkg/cloud/gcp/gcs_storage_test.go +++ b/pkg/cloud/gcp/gcs_storage_test.go @@ -148,6 +148,7 @@ func TestPutGoogleCloud(t *testing.T) { } func TestGCSAssumeRole(t *testing.T) { + defer leaktest.AfterTest(t)() user := username.RootUserName() limitedBucket := os.Getenv("GOOGLE_LIMITED_BUCKET") diff --git a/pkg/ccl/cloudccl/gcp/main_test.go b/pkg/cloud/gcp/main_test.go similarity index 84% rename from pkg/ccl/cloudccl/gcp/main_test.go rename to pkg/cloud/gcp/main_test.go index 91f12af2055c..92811f31787a 100644 --- a/pkg/ccl/cloudccl/gcp/main_test.go +++ b/pkg/cloud/gcp/main_test.go @@ -9,8 +9,8 @@ import ( "os" "testing" + _ "github.com/cockroachdb/cockroach/pkg/backup" // register BACKUP/RESTORE plan hooks. "github.com/cockroachdb/cockroach/pkg/base" - "github.com/cockroachdb/cockroach/pkg/ccl" "github.com/cockroachdb/cockroach/pkg/security/securityassets" "github.com/cockroachdb/cockroach/pkg/security/securitytest" "github.com/cockroachdb/cockroach/pkg/server" @@ -19,8 +19,6 @@ import ( ) func TestMain(m *testing.M) { - defer ccl.TestingEnableEnterprise()() - securityassets.SetLoader(securitytest.EmbeddedAssets) randutil.SeedForTests() serverutils.InitTestServerFactory( @@ -30,4 +28,4 @@ func TestMain(m *testing.M) { os.Exit(m.Run()) } -//go:generate ../../../util/leaktest/add-leaktest.sh *_test.go +//go:generate ../../util/leaktest/add-leaktest.sh *_test.go diff --git a/pkg/sql/logictest/testdata/logic_test/show_external_connections b/pkg/sql/logictest/testdata/logic_test/show_external_connections index f4a96195a8ec..d4091030bb18 100644 --- a/pkg/sql/logictest/testdata/logic_test/show_external_connections +++ b/pkg/sql/logictest/testdata/logic_test/show_external_connections @@ -1,6 +1,6 @@ # Here are tests for basic output of SHOW EXTERNAL CONNECTIONS # and various privileges scenarios. Tests for URI redaction for cloud providers -# are located at pkg/ccl/cloudccl/externalconn/testdata +# are located at pkg/cloud/externalconn/testdata statement ok CREATE EXTERNAL CONNECTION foo_conn AS 'nodelocal://1/foo'; diff --git a/pkg/testutils/lint/lint_test.go b/pkg/testutils/lint/lint_test.go index 4a4bdbf575a3..daadba2eb2bc 100644 --- a/pkg/testutils/lint/lint_test.go +++ b/pkg/testutils/lint/lint_test.go @@ -676,7 +676,6 @@ func TestLint(t *testing.T) { // KMS requires AWS credentials from environment variables. ":!backup/backup_test.go", ":!ccl/changefeedccl/helpers_test.go", - ":!ccl/cloudccl", ":!cloud", ":!ccl/workloadccl/fixture_test.go", ":!internal/reporoot/reporoot.go",