Skip to content

Commit 5eb9072

Browse files
committed
Tests cleanup: close rows when done to avoid resource leak during testing
1 parent c45f530 commit 5eb9072

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

driver_test.go

+19-1
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ func TestEmptyQuery(t *testing.T) {
212212
runTests(t, dsn, func(dbt *DBTest) {
213213
// just a comment, no query
214214
rows := dbt.mustQuery("--")
215+
defer rows.Close()
215216
// will hang before #255
216217
if rows.Next() {
217218
dbt.Errorf("next on rows must be false")
@@ -248,6 +249,7 @@ func TestCRUD(t *testing.T) {
248249
if id != 0 {
249250
dbt.Fatalf("expected InsertId 0, got %d", id)
250251
}
252+
rows.Close()
251253

252254
// Read
253255
rows = dbt.mustQuery("SELECT value FROM test")
@@ -263,6 +265,7 @@ func TestCRUD(t *testing.T) {
263265
} else {
264266
dbt.Error("no data")
265267
}
268+
rows.Close()
266269

267270
// Update
268271
res = dbt.mustExec("UPDATE test SET value = ? WHERE value = ?", false, true)
@@ -288,6 +291,7 @@ func TestCRUD(t *testing.T) {
288291
} else {
289292
dbt.Error("no data")
290293
}
294+
rows.Close()
291295

292296
// Delete
293297
res = dbt.mustExec("DELETE FROM test WHERE value = ?", false)
@@ -339,6 +343,7 @@ func TestMultiQuery(t *testing.T) {
339343
// Read
340344
var out int
341345
rows := dbt.mustQuery("SELECT value FROM test WHERE id=1;")
346+
defer rows.Close()
342347
if rows.Next() {
343348
rows.Scan(&out)
344349
if 5 != out {
@@ -369,6 +374,7 @@ func TestInt(t *testing.T) {
369374
dbt.mustExec("INSERT INTO test VALUES (?)", in)
370375

371376
rows = dbt.mustQuery("SELECT value FROM test")
377+
defer rows.Close()
372378
if rows.Next() {
373379
rows.Scan(&out)
374380
if in != out {
@@ -388,6 +394,7 @@ func TestInt(t *testing.T) {
388394
dbt.mustExec("INSERT INTO test VALUES (?)", in)
389395

390396
rows = dbt.mustQuery("SELECT value FROM test")
397+
defer rows.Close()
391398
if rows.Next() {
392399
rows.Scan(&out)
393400
if in != out {
@@ -412,6 +419,7 @@ func TestFloat32(t *testing.T) {
412419
dbt.mustExec("CREATE TABLE test (value " + v + ")")
413420
dbt.mustExec("INSERT INTO test VALUES (?)", in)
414421
rows = dbt.mustQuery("SELECT value FROM test")
422+
defer rows.Close()
415423
if rows.Next() {
416424
rows.Scan(&out)
417425
if in != out {
@@ -435,6 +443,7 @@ func TestFloat64(t *testing.T) {
435443
dbt.mustExec("CREATE TABLE test (value " + v + ")")
436444
dbt.mustExec("INSERT INTO test VALUES (42.23)")
437445
rows = dbt.mustQuery("SELECT value FROM test")
446+
defer rows.Close()
438447
if rows.Next() {
439448
rows.Scan(&out)
440449
if expected != out {
@@ -458,6 +467,7 @@ func TestFloat64Placeholder(t *testing.T) {
458467
dbt.mustExec("CREATE TABLE test (id int, value " + v + ")")
459468
dbt.mustExec("INSERT INTO test VALUES (1, 42.23)")
460469
rows = dbt.mustQuery("SELECT value FROM test WHERE id = ?", 1)
470+
defer rows.Close()
461471
if rows.Next() {
462472
rows.Scan(&out)
463473
if expected != out {
@@ -484,6 +494,7 @@ func TestString(t *testing.T) {
484494
dbt.mustExec("INSERT INTO test VALUES (?)", in)
485495

486496
rows = dbt.mustQuery("SELECT value FROM test")
497+
defer rows.Close()
487498
if rows.Next() {
488499
rows.Scan(&out)
489500
if in != out {
@@ -524,6 +535,7 @@ func TestRawBytes(t *testing.T) {
524535
v1 := []byte("aaa")
525536
v2 := []byte("bbb")
526537
rows := dbt.mustQuery("SELECT ?, ?", v1, v2)
538+
defer rows.Close()
527539
if rows.Next() {
528540
var o1, o2 sql.RawBytes
529541
if err := rows.Scan(&o1, &o2); err != nil {
@@ -564,6 +576,7 @@ func TestValuer(t *testing.T) {
564576
dbt.mustExec("CREATE TABLE test (value VARCHAR(255)) CHARACTER SET utf8")
565577
dbt.mustExec("INSERT INTO test VALUES (?)", in)
566578
rows = dbt.mustQuery("SELECT value FROM test")
579+
defer rows.Close()
567580
if rows.Next() {
568581
rows.Scan(&out)
569582
if in.value != out {
@@ -884,6 +897,7 @@ func TestTimestampMicros(t *testing.T) {
884897
dbt.mustExec("INSERT INTO test SET value0=?, value1=?, value6=?", f0, f1, f6)
885898
var res0, res1, res6 string
886899
rows := dbt.mustQuery("SELECT * FROM test")
900+
defer rows.Close()
887901
if !rows.Next() {
888902
dbt.Errorf("test contained no selectable values")
889903
}
@@ -1042,6 +1056,7 @@ func TestNULL(t *testing.T) {
10421056

10431057
var out interface{}
10441058
rows := dbt.mustQuery("SELECT * FROM test")
1059+
defer rows.Close()
10451060
if rows.Next() {
10461061
rows.Scan(&out)
10471062
if out != nil {
@@ -1466,7 +1481,6 @@ func TestCollation(t *testing.T) {
14661481
func TestColumnsWithAlias(t *testing.T) {
14671482
runTests(t, dsn+"&columnsWithAlias=true", func(dbt *DBTest) {
14681483
rows := dbt.mustQuery("SELECT 1 AS A")
1469-
defer rows.Close()
14701484
cols, _ := rows.Columns()
14711485
if len(cols) != 1 {
14721486
t.Fatalf("expected 1 column, got %d", len(cols))
@@ -1484,6 +1498,7 @@ func TestColumnsWithAlias(t *testing.T) {
14841498
if cols[0] != "A.one" {
14851499
t.Fatalf("expected column name \"A.one\", got \"%s\"", cols[0])
14861500
}
1501+
rows.Close()
14871502
})
14881503
}
14891504

@@ -1520,6 +1535,7 @@ func TestTimezoneConversion(t *testing.T) {
15201535

15211536
// Retrieve time from DB
15221537
rows := dbt.mustQuery("SELECT ts FROM test")
1538+
defer rows.Close()
15231539
if !rows.Next() {
15241540
dbt.Fatal("did not get any rows out")
15251541
}
@@ -2017,6 +2033,7 @@ func TestInterruptBySignal(t *testing.T) {
20172033
dbt.Errorf("expected val to be 42")
20182034
}
20192035
}
2036+
rows.Close()
20202037

20212038
// binary protocol
20222039
rows, err = dbt.db.Query("CALL test_signal(?)", 42)
@@ -2030,6 +2047,7 @@ func TestInterruptBySignal(t *testing.T) {
20302047
dbt.Errorf("expected val to be 42")
20312048
}
20322049
}
2050+
rows.Close()
20332051
})
20342052
}
20352053

0 commit comments

Comments
 (0)