From d0d9b78b3bdaefca3aa3f649845f00fd0cb1a778 Mon Sep 17 00:00:00 2001 From: rahulpinto19 Date: Fri, 30 Jan 2026 06:54:26 +0000 Subject: [PATCH] check before teardown --- tests/oracle/oracle_integration_test.go | 22 ++++++++------ tests/spanner/spanner_integration_test.go | 35 ++++++++++++++++------- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/tests/oracle/oracle_integration_test.go b/tests/oracle/oracle_integration_test.go index 75f5fc00de..934a24d962 100644 --- a/tests/oracle/oracle_integration_test.go +++ b/tests/oracle/oracle_integration_test.go @@ -89,12 +89,18 @@ func TestOracleSimpleToolEndpoints(t *testing.T) { // set up data for param tool createParamTableStmt, insertParamTableStmt, paramToolStmt, idParamToolStmt, nameParamToolStmt, arrayToolStmt, paramTestParams := getOracleParamToolInfo(tableNameParam) - teardownTable1 := setupOracleTable(t, ctx, db, createParamTableStmt, insertParamTableStmt, tableNameParam, paramTestParams) + teardownTable1, err := setupOracleTable(t, ctx, db, createParamTableStmt, insertParamTableStmt, tableNameParam, paramTestParams) + if err != nil { + t.Fatalf("failed to setup Oracle table %s: %v", tableNameParam, err) + } defer teardownTable1(t) // set up data for auth tool createAuthTableStmt, insertAuthTableStmt, authToolStmt, authTestParams := getOracleAuthToolInfo(tableNameAuth) - teardownTable2 := setupOracleTable(t, ctx, db, createAuthTableStmt, insertAuthTableStmt, tableNameAuth, authTestParams) + teardownTable2, err := setupOracleTable(t, ctx, db, createAuthTableStmt, insertAuthTableStmt, tableNameAuth, authTestParams) + if err != nil { + t.Fatalf("failed to setup Oracle table %s: %v", tableNameAuth, err) + } defer teardownTable2(t) // Write config into a file and pass it to command @@ -135,31 +141,31 @@ func TestOracleSimpleToolEndpoints(t *testing.T) { tests.RunToolInvokeWithTemplateParameters(t, tableNameTemplateParam) } -func setupOracleTable(t *testing.T, ctx context.Context, pool *sql.DB, createStatement, insertStatement, tableName string, params []any) func(*testing.T) { +func setupOracleTable(t *testing.T, ctx context.Context, pool *sql.DB, createStatement, insertStatement, tableName string, params []any) (func(*testing.T),error) { err := pool.PingContext(ctx) if err != nil { - t.Fatalf("unable to connect to test database: %s", err) + return nil, fmt.Errorf("unable to connect to test database: %w", err) } // Create table _, err = pool.QueryContext(ctx, createStatement) if err != nil { - t.Fatalf("unable to create test table %s: %s", tableName, err) + return nil, fmt.Errorf("unable to create test table %s: %w", tableName, err) } // Insert test data _, err = pool.QueryContext(ctx, insertStatement, params...) if err != nil { - t.Fatalf("unable to insert test data: %s", err) + return nil, fmt.Errorf("unable to insert test data: %w", err) } return func(t *testing.T) { // tear down test - _, err = pool.ExecContext(ctx, fmt.Sprintf("DROP TABLE %s", tableName)) + _, err = pool.ExecContext(ctx, fmt.Sprintf("DROP TABLE %s CASCADE CONSTRAINTS", tableName)) if err != nil { t.Errorf("Teardown failed: %s", err) } - } + }, nil } func getOracleParamToolInfo(tableName string) (string, string, string, string, string, string, []any) { diff --git a/tests/spanner/spanner_integration_test.go b/tests/spanner/spanner_integration_test.go index 265b84d89e..c1451bf17f 100644 --- a/tests/spanner/spanner_integration_test.go +++ b/tests/spanner/spanner_integration_test.go @@ -115,23 +115,35 @@ func TestSpannerToolEndpoints(t *testing.T) { SpannerInstance, SpannerDatabase, ) - teardownTable1 := setupSpannerTable(t, ctx, adminClient, dataClient, createParamTableStmt, insertParamTableStmt, tableNameParam, dbString, paramTestParams) + teardownTable1,err := setupSpannerTable(t, ctx, adminClient, dataClient, createParamTableStmt, insertParamTableStmt, tableNameParam, dbString, paramTestParams) + if err != nil { + t.Fatalf("failed to setup Spanner table %s: %v", tableNameParam, err) + } defer teardownTable1(t) // set up data for auth tool createAuthTableStmt, insertAuthTableStmt, authToolStmt, authTestParams := getSpannerAuthToolInfo(tableNameAuth) - teardownTable2 := setupSpannerTable(t, ctx, adminClient, dataClient, createAuthTableStmt, insertAuthTableStmt, tableNameAuth, dbString, authTestParams) + teardownTable2,err := setupSpannerTable(t, ctx, adminClient, dataClient, createAuthTableStmt, insertAuthTableStmt, tableNameAuth, dbString, authTestParams) + if err != nil { + t.Fatalf("failed to setup Spanner table %s: %v", tableNameAuth, err) + } defer teardownTable2(t) // set up data for template param tool createStatementTmpl := fmt.Sprintf("CREATE TABLE %s (id INT64, name STRING(MAX), age INT64) PRIMARY KEY (id)", tableNameTemplateParam) - teardownTableTmpl := setupSpannerTable(t, ctx, adminClient, dataClient, createStatementTmpl, "", tableNameTemplateParam, dbString, nil) + teardownTableTmpl,err := setupSpannerTable(t, ctx, adminClient, dataClient, createStatementTmpl, "", tableNameTemplateParam, dbString, nil) + if err != nil { + t.Fatalf("failed to setup Spanner table %s: %v", tableNameTemplateParam, err) + } defer teardownTableTmpl(t) // set up for graph tool nodeTableName := "node_table_" + strings.ReplaceAll(uuid.New().String(), "-", "") createNodeStatementTmpl := fmt.Sprintf("CREATE TABLE %s (id INT64 NOT NULL) PRIMARY KEY (id)", nodeTableName) - teardownNodeTableTmpl := setupSpannerTable(t, ctx, adminClient, dataClient, createNodeStatementTmpl, "", nodeTableName, dbString, nil) + teardownNodeTableTmpl,err := setupSpannerTable(t, ctx, adminClient, dataClient, createNodeStatementTmpl, "", nodeTableName, dbString, nil) + if err != nil { + t.Fatalf("failed to setup Spanner table %s: %v", nodeTableName, err) + } defer teardownNodeTableTmpl(t) edgeTableName := "edge_table_" + strings.ReplaceAll(uuid.New().String(), "-", "") @@ -143,7 +155,10 @@ func TestSpannerToolEndpoints(t *testing.T) { ) PRIMARY KEY (id, target_id), INTERLEAVE IN PARENT %[2]s ON DELETE CASCADE `, edgeTableName, nodeTableName) - teardownEdgeTableTmpl := setupSpannerTable(t, ctx, adminClient, dataClient, createEdgeStatementTmpl, "", edgeTableName, dbString, nil) + teardownEdgeTableTmpl,err := setupSpannerTable(t, ctx, adminClient, dataClient, createEdgeStatementTmpl, "", edgeTableName, dbString, nil) + if err != nil { + t.Fatalf("failed to setup Spanner table %s: %v", edgeTableName, err) + } defer teardownEdgeTableTmpl(t) graphName := "graph_" + strings.ReplaceAll(uuid.New().String(), "-", "") @@ -243,7 +258,7 @@ func getSpannerAuthToolInfo(tableName string) (string, string, string, map[strin // setupSpannerTable creates and inserts data into a table of tool // compatible with spanner-sql tool -func setupSpannerTable(t *testing.T, ctx context.Context, adminClient *database.DatabaseAdminClient, dataClient *spanner.Client, createStatement, insertStatement, tableName, dbString string, params map[string]any) func(*testing.T) { +func setupSpannerTable(t *testing.T, ctx context.Context, adminClient *database.DatabaseAdminClient, dataClient *spanner.Client, createStatement, insertStatement, tableName, dbString string, params map[string]any) (func(*testing.T),error) { // Create table op, err := adminClient.UpdateDatabaseDdl(ctx, &databasepb.UpdateDatabaseDdlRequest{ @@ -251,11 +266,11 @@ func setupSpannerTable(t *testing.T, ctx context.Context, adminClient *database. Statements: []string{createStatement}, }) if err != nil { - t.Fatalf("unable to start create table operation %s: %s", tableName, err) + return nil, fmt.Errorf("unable to start create table operation %s: %w", tableName, err) } err = op.Wait(ctx) if err != nil { - t.Fatalf("unable to create test table %s: %s", tableName, err) + return nil, fmt.Errorf("unable to create test table %s: %w", tableName, err) } // Insert test data @@ -269,7 +284,7 @@ func setupSpannerTable(t *testing.T, ctx context.Context, adminClient *database. return err }) if err != nil { - t.Fatalf("unable to insert test data: %s", err) + return nil, fmt.Errorf("unable to insert test data: %w", err) } } @@ -288,7 +303,7 @@ func setupSpannerTable(t *testing.T, ctx context.Context, adminClient *database. if opErr != nil { t.Errorf("Teardown failed: %s", opErr) } - } + }, nil } // setupSpannerGraph creates a graph and inserts data into it.