This is an automated email from the ASF dual-hosted git repository.
zeroshade pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-go.git
The following commit(s) were added to refs/heads/main by this push:
new b35023bb test(flightsql): isolate fixture setup timeout (#1332)
b35023bb is described below
commit b35023bba102cb08b69c51733970e5710cd8e6f2
Author: Matt Topol <[email protected]>
AuthorDate: Mon Sep 21 10:57:56 2026 -0700
test(flightsql): isolate fixture setup timeout (#1332)
## What changed
- add an `execFixture` helper with an explicit one-minute setup deadline
- use it for all ten large Flight SQL row fixture inserts
- preserve the driver's five-second default timeout and the cancellation
tests' existing query deadlines
## Why
The ASan/no-ASM job in
https://github.com/apache/arrow-go/actions/runs/35436626598/job/106171165623?pr=1328
failed while inserting the 6,000-row test fixture, before the
cancellation behavior under test began. Context-free `db.Exec` inherited
the suite's five-second driver timeout, and the instrumented insert
exceeded that deadline. A sibling cancellation test failed at the same
setup boundary in another matrix job.
Giving fixture construction its own bounded context separates setup cost
from the behavior timeout being tested without changing production
driver behavior.
## Verification
```text
go test -asan -short -tags assert,test,noasm
./arrow/flight/flightsql/driver -run
'^TestSqliteBackend/TestRowsInterruptionByContext(ManualCancellation|Timeout)(Stmt)?$'
-count=25
ok github.com/apache/arrow-go/v18/arrow/flight/flightsql/driver 250.547s
go test -asan -short -tags assert,test,noasm
./arrow/flight/flightsql/driver -run '^TestSqliteBackend/TestRows' -count=10
ok github.com/apache/arrow-go/v18/arrow/flight/flightsql/driver 191.764s
go test -asan -short -tags assert,test,noasm ./arrow/flight/flightsql/driver
ok github.com/apache/arrow-go/v18/arrow/flight/flightsql/driver 20.363s
```
---
arrow/flight/flightsql/driver/driver_test.go | 41 ++++++++++++++--------------
1 file changed, 21 insertions(+), 20 deletions(-)
diff --git a/arrow/flight/flightsql/driver/driver_test.go
b/arrow/flight/flightsql/driver/driver_test.go
index 425fd8fd..bfa9c34d 100644
--- a/arrow/flight/flightsql/driver/driver_test.go
+++ b/arrow/flight/flightsql/driver/driver_test.go
@@ -109,6 +109,17 @@ func (s *SqlTestSuite) SetupSuite() {
require.Contains(s.T(), s.Statements, "placeholder query")
}
+func execFixture(t *testing.T, db *sql.DB, query string) sql.Result {
+ t.Helper()
+
+ ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
+ defer cancel()
+
+ result, err := db.ExecContext(ctx, query)
+ require.NoError(t, err)
+ return result
+}
+
func (s *SqlTestSuite) TestOpenClose() {
t := s.T()
@@ -451,8 +462,7 @@ func (s *SqlTestSuite) TestRowsManualPrematureClose() {
insertQuery := strings.TrimSuffix(sb.String(), ",")
- rs, err := db.Exec(insertQuery)
- require.NoError(t, err)
+ rs := execFixture(t, db, insertQuery)
insertedRows, err := rs.RowsAffected()
require.NoError(t, err)
@@ -536,8 +546,7 @@ func (s *SqlTestSuite) TestRowsNormalExhaustion() {
insertQuery := strings.TrimSuffix(sb.String(), ",")
- rs, err := db.Exec(insertQuery)
- require.NoError(t, err)
+ rs := execFixture(t, db, insertQuery)
insertedRows, err := rs.RowsAffected()
require.NoError(t, err)
@@ -628,8 +637,7 @@ func (s *SqlTestSuite)
TestRowsPrematureCloseDuringNextLoop() {
insertQuery := strings.TrimSuffix(sb.String(), ",")
- rs, err := db.Exec(insertQuery)
- require.NoError(t, err)
+ rs := execFixture(t, db, insertQuery)
insertedRows, err := rs.RowsAffected()
require.NoError(t, err)
@@ -722,8 +730,7 @@ func (s *SqlTestSuite)
TestRowsInterruptionByContextManualCancellation() {
insertQuery := strings.TrimSuffix(sb.String(), ",")
- rs, err := db.Exec(insertQuery)
- require.NoError(t, err)
+ rs := execFixture(t, db, insertQuery)
insertedRows, err := rs.RowsAffected()
require.NoError(t, err)
@@ -810,8 +817,7 @@ func (s *SqlTestSuite)
TestRowsInterruptionByContextTimeout() {
insertQuery := strings.TrimSuffix(sb.String(), ",")
- rs, err := db.Exec(insertQuery)
- require.NoError(t, err)
+ rs := execFixture(t, db, insertQuery)
insertedRows, err := rs.RowsAffected()
require.NoError(t, err)
@@ -902,8 +908,7 @@ func (s *SqlTestSuite) TestRowsManualPrematureCloseStmt() {
insertQuery := strings.TrimSuffix(sb.String(), ",")
- rs, err := db.Exec(insertQuery)
- require.NoError(t, err)
+ rs := execFixture(t, db, insertQuery)
insertedRows, err := rs.RowsAffected()
require.NoError(t, err)
@@ -993,8 +998,7 @@ func (s *SqlTestSuite) TestRowsNormalExhaustionStmt() {
insertQuery := strings.TrimSuffix(sb.String(), ",")
- rs, err := db.Exec(insertQuery)
- require.NoError(t, err)
+ rs := execFixture(t, db, insertQuery)
insertedRows, err := rs.RowsAffected()
require.NoError(t, err)
@@ -1088,8 +1092,7 @@ func (s *SqlTestSuite)
TestRowsPrematureCloseDuringNextLoopStmt() {
insertQuery := strings.TrimSuffix(sb.String(), ",")
- rs, err := db.Exec(insertQuery)
- require.NoError(t, err)
+ rs := execFixture(t, db, insertQuery)
insertedRows, err := rs.RowsAffected()
require.NoError(t, err)
@@ -1188,8 +1191,7 @@ func (s *SqlTestSuite)
TestRowsInterruptionByContextManualCancellationStmt() {
insertQuery := strings.TrimSuffix(sb.String(), ",")
- rs, err := db.Exec(insertQuery)
- require.NoError(t, err)
+ rs := execFixture(t, db, insertQuery)
insertedRows, err := rs.RowsAffected()
require.NoError(t, err)
@@ -1279,8 +1281,7 @@ func (s *SqlTestSuite)
TestRowsInterruptionByContextTimeoutStmt() {
insertQuery := strings.TrimSuffix(sb.String(), ",")
- rs, err := db.Exec(insertQuery)
- require.NoError(t, err)
+ rs := execFixture(t, db, insertQuery)
insertedRows, err := rs.RowsAffected()
require.NoError(t, err)