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)

Reply via email to