Skip to content

Commit a32665f

Browse files
committed
serverutils: provide SQLConn/SQLConnE in ApplicationLayerInterface
This simplifies test code and prevents common mistakes. Release note: None
1 parent 51aa625 commit a32665f

30 files changed

+102
-125
lines changed

pkg/ccl/backupccl/tenant_backup_nemesis_test.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"github.com/cockroachdb/cockroach/pkg/roachpb"
2323
"github.com/cockroachdb/cockroach/pkg/security/username"
2424
"github.com/cockroachdb/cockroach/pkg/testutils"
25-
"github.com/cockroachdb/cockroach/pkg/testutils/serverutils"
2625
"github.com/cockroachdb/cockroach/pkg/testutils/sqlutils"
2726
"github.com/cockroachdb/cockroach/pkg/util"
2827
"github.com/cockroachdb/cockroach/pkg/util/ctxgroup"
@@ -81,8 +80,7 @@ func TestTenantBackupWithCanceledImport(t *testing.T) {
8180
},
8281
})
8382
require.NoError(t, err)
84-
tenant10Conn, err := serverutils.OpenDBConnE(tenant10.SQLAddr(), "defaultdb", false, tenant10.Stopper())
85-
require.NoError(t, err)
83+
tenant10Conn := tenant10.SQLConn(t, "defaultdb")
8684
tenant10DB := sqlutils.MakeSQLRunner(tenant10Conn)
8785

8886
tenant10DB.Exec(t, "CREATE DATABASE bank")
@@ -110,8 +108,7 @@ func TestTenantBackupWithCanceledImport(t *testing.T) {
110108
})
111109
require.NoError(t, err)
112110

113-
tenant11Conn, err := serverutils.OpenDBConnE(tenant11.SQLAddr(), "bank", false, tenant11.Stopper())
114-
require.NoError(t, err)
111+
tenant11Conn := tenant11.SQLConn(t, "bank")
115112
tenant11DB := sqlutils.MakeSQLRunner(tenant11Conn)
116113
countQuery := fmt.Sprintf(`SELECT count(1) FROM bank."%s"`, tableName)
117114
assertEqualQueries(t, tenant10DB, tenant11DB, countQuery)
@@ -157,9 +154,7 @@ func TestTenantBackupNemesis(t *testing.T) {
157154
},
158155
})
159156
require.NoError(t, err)
160-
tenant10Conn, err := serverutils.OpenDBConnE(
161-
tenant10.SQLAddr(), "defaultdb", false, tenant10.Stopper())
162-
require.NoError(t, err)
157+
tenant10Conn := tenant10.SQLConn(t, "defaultdb")
163158
_, err = tenant10Conn.Exec("CREATE DATABASE bank")
164159
require.NoError(t, err)
165160
_, err = tenant10Conn.Exec("USE bank")
@@ -259,9 +254,7 @@ func TestTenantBackupNemesis(t *testing.T) {
259254
})
260255
require.NoError(t, err)
261256

262-
tenant11Conn, err := serverutils.OpenDBConnE(
263-
tenant11.SQLAddr(), "bank", false, tenant11.Stopper())
264-
require.NoError(t, err)
257+
tenant11Conn := tenant11.SQLConn(t, "bank")
265258

266259
tenant10SQLDB := sqlutils.MakeSQLRunner(tenant10Conn)
267260
tenant11SQLDB := sqlutils.MakeSQLRunner(tenant11Conn)

pkg/ccl/serverccl/admin_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func TestAdminAPIDataDistributionPartitioning(t *testing.T) {
6363
firstServer := testCluster.Server(0)
6464

6565
// Enable zone configs for secondary tenants.
66-
systemSqlDb := serverutils.OpenDBConn(t, firstServer.SQLAddr(), "system", false, firstServer.Stopper())
66+
systemSqlDb := firstServer.SystemLayer().SQLConn(t, "system")
6767
_, err := systemSqlDb.Exec("ALTER TENANT ALL SET CLUSTER SETTING sql.zone_configs.allow_for_secondary_tenant.enabled = true")
6868
require.NoError(t, err)
6969

pkg/ccl/serverccl/server_controller_test.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,7 @@ ALTER TENANT application START SERVICE SHARED`)
103103
continue
104104
}
105105

106-
sqlAddr := tc.Server(i).AdvSQLAddr()
107-
db, err := serverutils.OpenDBConnE(sqlAddr, "cluster:application", false, tc.Stopper())
106+
db, err := tc.Server(i).SystemLayer().SQLConnE("cluster:application")
108107
if err != nil {
109108
return err
110109
}
@@ -194,8 +193,7 @@ func TestServerControllerHTTP(t *testing.T) {
194193
t.Logf("connecting to the test tenant")
195194

196195
// Get a SQL connection to the test tenant.
197-
sqlAddr := s.AdvSQLAddr()
198-
db2, err := serverutils.OpenDBConnE(sqlAddr, "cluster:hello/defaultdb", false, s.Stopper())
196+
db2, err := s.SystemLayer().SQLConnE("cluster:hello/defaultdb")
199197
// Expect no error yet: the connection is opened lazily; an
200198
// error here means the parameters were incorrect.
201199
require.NoError(t, err)
@@ -443,7 +441,7 @@ func TestServerControllerMultiNodeTenantStartup(t *testing.T) {
443441
sqlAddr := tc.Server(serverIdx).AdvSQLAddr()
444442
t.Logf("attempting to use tenant server on node %d (%s)", serverIdx, sqlAddr)
445443
testutils.SucceedsSoon(t, func() error {
446-
tenantDB, err := serverutils.OpenDBConnE(sqlAddr, "cluster:hello", false, tc.Stopper())
444+
tenantDB, err := tc.Server(serverIdx).SystemLayer().SQLConnE("cluster:hello")
447445
if err != nil {
448446
t.Logf("error connecting to tenant server (will retry): %v", err)
449447
return err
@@ -481,8 +479,6 @@ func TestServerStartStop(t *testing.T) {
481479
})
482480
defer s.Stopper().Stop(ctx)
483481

484-
sqlAddr := s.AdvSQLAddr()
485-
486482
// Create our own test tenant with a known name.
487483
_, err := db.Exec("CREATE TENANT hello")
488484
require.NoError(t, err)
@@ -493,7 +489,7 @@ func TestServerStartStop(t *testing.T) {
493489

494490
// Check the liveness.
495491
testutils.SucceedsSoon(t, func() error {
496-
db2, err := serverutils.OpenDBConnE(sqlAddr, "cluster:hello/defaultdb", false, s.Stopper())
492+
db2, err := s.SystemLayer().SQLConnE("cluster:hello/defaultdb")
497493
// Expect no error yet: the connection is opened lazily; an
498494
// error here means the parameters were incorrect.
499495
require.NoError(t, err)
@@ -517,7 +513,7 @@ func TestServerStartStop(t *testing.T) {
517513

518514
// Verify that the service is indeed stopped.
519515
testutils.SucceedsSoon(t, func() error {
520-
db2, err := serverutils.OpenDBConnE(sqlAddr, "cluster:hello/defaultdb", false, s.Stopper())
516+
db2, err := s.SystemLayer().SQLConnE("cluster:hello/defaultdb")
521517
// Expect no error yet: the connection is opened lazily; an
522518
// error here means the parameters were incorrect.
523519
require.NoError(t, err)

pkg/ccl/serverccl/shared_process_tenant_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,10 @@ func TestSharedProcessTenantNoSpanLimit(t *testing.T) {
4040
_, err = db.Exec("ALTER TENANT ALL SET CLUSTER SETTING spanconfig.tenant_limit = 1000")
4141
require.NoError(t, err)
4242

43-
sqlAddr := tc.Server(0).AdvSQLAddr()
4443
var tenantDB *gosql.DB
4544
testutils.SucceedsSoon(t, func() error {
4645
var err error
47-
tenantDB, err = serverutils.OpenDBConnE(sqlAddr, "cluster:hello", false, tc.Stopper())
46+
tenantDB, err = tc.Server(0).SystemLayer().SQLConnE("cluster:hello")
4847
if err != nil {
4948
return err
5049
}

pkg/ccl/streamingccl/replicationtestutils/testutils.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,7 @@ func (c *TenantStreamingClusters) init() {
150150
func (c *TenantStreamingClusters) StartDestTenant(ctx context.Context) func() error {
151151
c.DestSysSQL.Exec(c.T, `ALTER TENANT $1 START SERVICE SHARED`, c.Args.DestTenantName)
152152

153-
destTenantConn, err := serverutils.OpenDBConnE(
154-
c.DestCluster.Server(0).SQLAddr(), "cluster:"+string(c.Args.DestTenantName)+"/",
155-
false, /* insecure */
156-
c.DestCluster.Server(0).Stopper())
157-
require.NoError(c.T, err)
153+
destTenantConn := c.DestCluster.Server(0).SystemLayer().SQLConn(c.T, "cluster:"+string(c.Args.DestTenantName)+"/defaultdb")
158154

159155
c.DestTenantConn = destTenantConn
160156
c.DestTenantSQL = sqlutils.MakeSQLRunner(destTenantConn)

pkg/cli/clisqlshell/describe_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import (
1515
"testing"
1616

1717
"github.com/cockroachdb/cockroach/pkg/cli"
18-
"github.com/cockroachdb/cockroach/pkg/testutils/serverutils"
1918
"github.com/cockroachdb/cockroach/pkg/util/leaktest"
2019
"github.com/cockroachdb/datadriven"
2120
)
@@ -39,8 +38,7 @@ func TestDescribe(t *testing.T) {
3938
c := cli.NewCLITest(cli.TestCLIParams{T: t})
4039
defer c.Cleanup()
4140

42-
db := serverutils.OpenDBConn(
43-
t, c.TestServer.AdvSQLAddr(), "defaultdb", false /* insecure */, c.TestServer.Stopper())
41+
db := c.TestServer.SQLConn(t, "defaultdb")
4442

4543
var commonArgs []string
4644

pkg/configprofiles/datadriven_test.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import (
1919
"github.com/cockroachdb/cockroach/pkg/base"
2020
"github.com/cockroachdb/cockroach/pkg/ccl"
2121
"github.com/cockroachdb/cockroach/pkg/configprofiles"
22-
"github.com/cockroachdb/cockroach/pkg/server"
2322
"github.com/cockroachdb/cockroach/pkg/server/autoconfig/acprovider"
2423
"github.com/cockroachdb/cockroach/pkg/testutils"
2524
"github.com/cockroachdb/cockroach/pkg/testutils/serverutils"
@@ -78,8 +77,7 @@ func TestDataDriven(t *testing.T) {
7877
// We need to force the connection to the system tenant,
7978
// because at least one of the config profiles changes the
8079
// default tenant.
81-
sysTenantDB := serverutils.OpenDBConn(t, s.SQLAddr(), "cluster:system/defaultdb",
82-
true /* insecure */, s.Stopper())
80+
sysTenantDB := s.SystemLayer().SQLConn(t, "defaultdb")
8381
db = sqlutils.MakeSQLRunner(sysTenantDB)
8482
res.WriteString("server started\n")
8583

@@ -119,9 +117,8 @@ AND status = 'succeeded'`).Scan(&numTasksCompleted)
119117
if !alreadyStarted {
120118
t.Fatalf("%s: must use profile before sql", d.Pos)
121119
}
122-
sqlAddr := s.(*server.TestServer).SQLAddr()
123120
testutils.SucceedsSoon(t, func() error {
124-
goDB := serverutils.OpenDBConn(t, sqlAddr, "cluster:"+d.Input+"/defaultdb", true /* insecure */, s.Stopper())
121+
goDB := s.SystemLayer().SQLConn(t, "cluster:"+d.Input+"/defaultdb")
125122
return goDB.Ping()
126123
})
127124
return "ok"

pkg/kv/kvserver/gc/gc_int_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ func TestEndToEndGC(t *testing.T) {
104104
})
105105
defer s.Stopper().Stop(ctx)
106106

107-
statusServer := s.StatusServer().(serverpb.StatusServer)
108-
systemSqlDb := serverutils.OpenDBConn(t, s.SQLAddr(), "system", false, s.Stopper())
107+
statusServer := s.SystemLayer().StatusServer().(serverpb.StatusServer)
108+
systemSqlDb := s.SystemLayer().SQLConn(t, "system")
109109

110110
execOrFatal := func(t *testing.T, db *gosql.DB, stmt string, args ...interface{}) {
111111
t.Helper()

pkg/server/application_api/contention_test.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ func TestStatusAPIContentionEvents(t *testing.T) {
5353
server1Conn := sqlutils.MakeSQLRunner(testCluster.ServerConn(0))
5454
server2Conn := sqlutils.MakeSQLRunner(testCluster.ServerConn(1))
5555

56-
contentionCountBefore := testCluster.Server(1).SQLServer().(*sql.Server).
56+
contentionCountBefore := testCluster.Server(1).ApplicationLayer().SQLServer().(*sql.Server).
5757
Metrics.EngineMetrics.SQLContendedTxns.Count()
5858

5959
sqlutils.CreateTable(
@@ -133,7 +133,7 @@ SET TRACING=off;
133133
AND app_name = 'contentionTest'
134134
`, [][]string{{"1"}})
135135

136-
contentionCountNow := testCluster.Server(1).SQLServer().(*sql.Server).
136+
contentionCountNow := testCluster.Server(1).ApplicationLayer().SQLServer().(*sql.Server).
137137
Metrics.EngineMetrics.SQLContendedTxns.Count()
138138

139139
require.Greaterf(t, contentionCountNow, contentionCountBefore,
@@ -159,8 +159,7 @@ func TestTransactionContentionEvents(t *testing.T) {
159159
sqlutils.ToRowFn(sqlutils.RowIdxFn),
160160
)
161161

162-
conn2 :=
163-
serverutils.OpenDBConn(t, s.AdvSQLAddr(), "", false /* insecure */, s.Stopper())
162+
conn2 := s.ApplicationLayer().SQLConn(t, "")
164163
defer func() {
165164
require.NoError(t, conn2.Close())
166165
}()
@@ -216,7 +215,7 @@ func TestTransactionContentionEvents(t *testing.T) {
216215
sqlConn1.CheckQueryResults(t, "SELECT * FROM test",
217216
[][]string{{"1000"}})
218217

219-
txnIDCache := s.SQLServer().(*sql.Server).GetTxnIDCache()
218+
txnIDCache := s.ApplicationLayer().SQLServer().(*sql.Server).GetTxnIDCache()
220219

221220
// Since contention event store's resolver only retries once in the case of
222221
// missing txn fingerprint ID for a given txnID, we ensure that the txnIDCache
@@ -245,7 +244,7 @@ func TestTransactionContentionEvents(t *testing.T) {
245244
})
246245

247246
testutils.SucceedsWithin(t, func() error {
248-
err := s.ExecutorConfig().(sql.ExecutorConfig).ContentionRegistry.FlushEventsForTest(ctx)
247+
err := s.ApplicationLayer().ExecutorConfig().(sql.ExecutorConfig).ContentionRegistry.FlushEventsForTest(ctx)
249248
require.NoError(t, err)
250249

251250
notEmpty := sqlConn1.QueryStr(t, `
@@ -358,7 +357,7 @@ func TestTransactionContentionEvents(t *testing.T) {
358357
// Check we have proper permission control in SQL CLI. We use internal
359358
// executor here since we can easily override the username without opening
360359
// new SQL sessions.
361-
row, err := s.InternalExecutor().(*sql.InternalExecutor).QueryRowEx(
360+
row, err := s.ApplicationLayer().InternalExecutor().(*sql.InternalExecutor).QueryRowEx(
362361
ctx,
363362
"test-contending-key-redaction",
364363
nil, /* txn */

pkg/server/server_controller_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@ func TestSQLErrorUponInvalidTenant(t *testing.T) {
7474
})
7575
defer s.Stopper().Stop(ctx)
7676

77-
sqlAddr := s.AdvSQLAddr()
78-
db, err := serverutils.OpenDBConnE(sqlAddr, "cluster:nonexistent", false, s.Stopper())
77+
db, err := s.SystemLayer().SQLConnE("cluster:nonexistent")
7978
// Expect no error yet: the connection is opened lazily; an
8079
// error here means the parameters were incorrect.
8180
require.NoError(t, err)

0 commit comments

Comments
 (0)