go.temporal.io/server@v1.23.0/common/persistence/tests/postgresql_test.go (about) 1 // The MIT License 2 // 3 // Copyright (c) 2020 Temporal Technologies Inc. All rights reserved. 4 // 5 // Copyright (c) 2020 Uber Technologies, Inc. 6 // 7 // Permission is hereby granted, free of charge, to any person obtaining a copy 8 // of this software and associated documentation files (the "Software"), to deal 9 // in the Software without restriction, including without limitation the rights 10 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 // copies of the Software, and to permit persons to whom the Software is 12 // furnished to do so, subject to the following conditions: 13 // 14 // The above copyright notice and this permission notice shall be included in 15 // all copies or substantial portions of the Software. 16 // 17 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 // THE SOFTWARE. 24 25 package tests 26 27 import ( 28 "testing" 29 30 "github.com/stretchr/testify/suite" 31 32 persistencetests "go.temporal.io/server/common/persistence/persistence-tests" 33 "go.temporal.io/server/common/persistence/serialization" 34 "go.temporal.io/server/common/persistence/sql" 35 "go.temporal.io/server/common/persistence/sql/sqlplugin" 36 _ "go.temporal.io/server/common/persistence/sql/sqlplugin/postgresql" // register plugins 37 sqltests "go.temporal.io/server/common/persistence/sql/sqlplugin/tests" 38 "go.temporal.io/server/common/resolver" 39 ) 40 41 type PostgreSQLSuite struct { 42 suite.Suite 43 pluginName string 44 } 45 46 func (p *PostgreSQLSuite) TestPostgreSQLShardStoreSuite() { 47 testData, tearDown := setUpPostgreSQLTest(p.T(), p.pluginName) 48 defer tearDown() 49 50 shardStore, err := testData.Factory.NewShardStore() 51 if err != nil { 52 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 53 } 54 55 s := NewShardSuite( 56 p.T(), 57 shardStore, 58 serialization.NewSerializer(), 59 testData.Logger, 60 ) 61 suite.Run(p.T(), s) 62 } 63 64 func (p *PostgreSQLSuite) TestPostgreSQLExecutionMutableStateStoreSuite() { 65 testData, tearDown := setUpPostgreSQLTest(p.T(), p.pluginName) 66 defer tearDown() 67 68 shardStore, err := testData.Factory.NewShardStore() 69 if err != nil { 70 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 71 } 72 executionStore, err := testData.Factory.NewExecutionStore() 73 if err != nil { 74 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 75 } 76 77 s := NewExecutionMutableStateSuite( 78 p.T(), 79 shardStore, 80 executionStore, 81 serialization.NewSerializer(), 82 testData.Logger, 83 ) 84 suite.Run(p.T(), s) 85 } 86 87 func (p *PostgreSQLSuite) TestPostgreSQLExecutionMutableStateTaskStoreSuite() { 88 testData, tearDown := setUpPostgreSQLTest(p.T(), p.pluginName) 89 defer tearDown() 90 91 shardStore, err := testData.Factory.NewShardStore() 92 if err != nil { 93 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 94 } 95 executionStore, err := testData.Factory.NewExecutionStore() 96 if err != nil { 97 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 98 } 99 100 s := NewExecutionMutableStateTaskSuite( 101 p.T(), 102 shardStore, 103 executionStore, 104 serialization.NewSerializer(), 105 testData.Logger, 106 ) 107 suite.Run(p.T(), s) 108 } 109 110 func (p *PostgreSQLSuite) TestPostgreSQLHistoryStoreSuite() { 111 testData, tearDown := setUpPostgreSQLTest(p.T(), p.pluginName) 112 defer tearDown() 113 114 store, err := testData.Factory.NewExecutionStore() 115 if err != nil { 116 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 117 } 118 119 s := NewHistoryEventsSuite(p.T(), store, testData.Logger) 120 suite.Run(p.T(), s) 121 } 122 123 func (p *PostgreSQLSuite) TestPostgreSQLTaskQueueSuite() { 124 testData, tearDown := setUpPostgreSQLTest(p.T(), p.pluginName) 125 defer tearDown() 126 127 taskQueueStore, err := testData.Factory.NewTaskStore() 128 if err != nil { 129 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 130 } 131 132 s := NewTaskQueueSuite(p.T(), taskQueueStore, testData.Logger) 133 suite.Run(p.T(), s) 134 } 135 136 func (p *PostgreSQLSuite) TestPostgreSQLTaskQueueTaskSuite() { 137 testData, tearDown := setUpPostgreSQLTest(p.T(), p.pluginName) 138 defer tearDown() 139 140 taskQueueStore, err := testData.Factory.NewTaskStore() 141 if err != nil { 142 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 143 } 144 145 s := NewTaskQueueTaskSuite(p.T(), taskQueueStore, testData.Logger) 146 suite.Run(p.T(), s) 147 } 148 149 func (p *PostgreSQLSuite) TestPostgreSQLVisibilityPersistenceSuite() { 150 s := &VisibilityPersistenceSuite{ 151 TestBase: persistencetests.NewTestBaseWithSQL(persistencetests.GetPostgreSQLTestClusterOption()), 152 } 153 suite.Run(p.T(), s) 154 } 155 156 func (p *PostgreSQLSuite) TestPostgreSQL12VisibilityPersistenceSuite() { 157 s := &VisibilityPersistenceSuite{ 158 TestBase: persistencetests.NewTestBaseWithSQL(persistencetests.GetPostgreSQL12TestClusterOption()), 159 } 160 suite.Run(p.T(), s) 161 } 162 163 // TODO: Merge persistence-tests into the tests directory. 164 165 func (p *PostgreSQLSuite) TestPostgreSQLHistoryV2PersistenceSuite() { 166 s := new(persistencetests.HistoryV2PersistenceSuite) 167 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetPostgreSQLTestClusterOption()) 168 s.TestBase.Setup(nil) 169 suite.Run(p.T(), s) 170 } 171 172 func (p *PostgreSQLSuite) TestPostgreSQLMetadataPersistenceSuiteV2() { 173 s := new(persistencetests.MetadataPersistenceSuiteV2) 174 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetPostgreSQLTestClusterOption()) 175 s.TestBase.Setup(nil) 176 suite.Run(p.T(), s) 177 } 178 179 func (p *PostgreSQLSuite) TestPostgreSQLClusterMetadataPersistence() { 180 s := new(persistencetests.ClusterMetadataManagerSuite) 181 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetPostgreSQLTestClusterOption()) 182 s.TestBase.Setup(nil) 183 suite.Run(p.T(), s) 184 } 185 186 // TODO flaky test in buildkite 187 // https://go.temporal.io/server/issues/2877 188 /* 189 FAIL: TestPostgreSQLQueuePersistence/TestNamespaceReplicationQueue (0.26s) 190 queuePersistenceTest.go:102: 191 Error Trace: queuePersistenceTest.go:102 192 Error: Not equal: 193 expected: 99 194 actual : 98 195 Test: TestPostgreSQLQueuePersistence/TestNamespaceReplicationQueue 196 */ 197 // func (p *PostgreSQLSuite) TestPostgreSQLQueuePersistence() { 198 // s := new(persistencetests.QueuePersistenceSuite) 199 // s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetPostgreSQLTestClusterOption()) 200 // s.TestBase.Setup(nil) 201 // suite.Run(p.T(), s) 202 // } 203 204 func (p *PostgreSQLSuite) TestPostgreSQL12HistoryV2PersistenceSuite() { 205 s := new(persistencetests.HistoryV2PersistenceSuite) 206 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetPostgreSQL12TestClusterOption()) 207 s.TestBase.Setup(nil) 208 suite.Run(p.T(), s) 209 } 210 211 func (p *PostgreSQLSuite) TestPostgreSQL12MetadataPersistenceSuiteV2() { 212 s := new(persistencetests.MetadataPersistenceSuiteV2) 213 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetPostgreSQL12TestClusterOption()) 214 s.TestBase.Setup(nil) 215 suite.Run(p.T(), s) 216 } 217 218 func (p *PostgreSQLSuite) TestPostgreSQL12ClusterMetadataPersistence() { 219 s := new(persistencetests.ClusterMetadataManagerSuite) 220 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetPostgreSQL12TestClusterOption()) 221 s.TestBase.Setup(nil) 222 suite.Run(p.T(), s) 223 } 224 225 // SQL store tests 226 227 func (p *PostgreSQLSuite) TestPostgreSQLNamespaceSuite() { 228 cfg := NewPostgreSQLConfig(p.pluginName) 229 SetupPostgreSQLDatabase(cfg) 230 SetupPostgreSQLSchema(cfg) 231 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 232 if err != nil { 233 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 234 } 235 defer func() { 236 _ = store.Close() 237 TearDownPostgreSQLDatabase(cfg) 238 }() 239 240 s := sqltests.NewNamespaceSuite(p.T(), store) 241 suite.Run(p.T(), s) 242 } 243 244 func (p *PostgreSQLSuite) TestPostgreSQLQueueMessageSuite() { 245 cfg := NewPostgreSQLConfig(p.pluginName) 246 SetupPostgreSQLDatabase(cfg) 247 SetupPostgreSQLSchema(cfg) 248 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 249 if err != nil { 250 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 251 } 252 defer func() { 253 _ = store.Close() 254 TearDownPostgreSQLDatabase(cfg) 255 }() 256 257 s := sqltests.NewQueueMessageSuite(p.T(), store) 258 suite.Run(p.T(), s) 259 } 260 261 func (p *PostgreSQLSuite) TestPostgreSQLQueueMetadataSuite() { 262 cfg := NewPostgreSQLConfig(p.pluginName) 263 SetupPostgreSQLDatabase(cfg) 264 SetupPostgreSQLSchema(cfg) 265 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 266 if err != nil { 267 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 268 } 269 defer func() { 270 _ = store.Close() 271 TearDownPostgreSQLDatabase(cfg) 272 }() 273 274 s := sqltests.NewQueueMetadataSuite(p.T(), store) 275 suite.Run(p.T(), s) 276 } 277 278 func (p *PostgreSQLSuite) TestPostgreSQLMatchingTaskSuite() { 279 cfg := NewPostgreSQLConfig(p.pluginName) 280 SetupPostgreSQLDatabase(cfg) 281 SetupPostgreSQLSchema(cfg) 282 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 283 if err != nil { 284 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 285 } 286 defer func() { 287 _ = store.Close() 288 TearDownPostgreSQLDatabase(cfg) 289 }() 290 291 s := sqltests.NewMatchingTaskSuite(p.T(), store) 292 suite.Run(p.T(), s) 293 } 294 295 func (p *PostgreSQLSuite) TestPostgreSQLMatchingTaskQueueSuite() { 296 cfg := NewPostgreSQLConfig(p.pluginName) 297 SetupPostgreSQLDatabase(cfg) 298 SetupPostgreSQLSchema(cfg) 299 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 300 if err != nil { 301 p.T().Fatalf("unable to create PostgreSQL DB: %v", err) 302 } 303 defer func() { 304 _ = store.Close() 305 TearDownPostgreSQLDatabase(cfg) 306 }() 307 308 s := sqltests.NewMatchingTaskQueueSuite(p.T(), store) 309 suite.Run(p.T(), s) 310 } 311 312 func (p *PostgreSQLSuite) TestPostgreSQLHistoryShardSuite() { 313 cfg := NewPostgreSQLConfig(p.pluginName) 314 SetupPostgreSQLDatabase(cfg) 315 SetupPostgreSQLSchema(cfg) 316 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 317 if err != nil { 318 p.T().Fatalf("unable to create MySQL DB: %v", err) 319 } 320 defer func() { 321 _ = store.Close() 322 TearDownPostgreSQLDatabase(cfg) 323 }() 324 325 s := sqltests.NewHistoryShardSuite(p.T(), store) 326 suite.Run(p.T(), s) 327 } 328 329 func (p *PostgreSQLSuite) TestPostgreSQLHistoryNodeSuite() { 330 cfg := NewPostgreSQLConfig(p.pluginName) 331 SetupPostgreSQLDatabase(cfg) 332 SetupPostgreSQLSchema(cfg) 333 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 334 if err != nil { 335 p.T().Fatalf("unable to create MySQL DB: %v", err) 336 } 337 defer func() { 338 _ = store.Close() 339 TearDownPostgreSQLDatabase(cfg) 340 }() 341 342 s := sqltests.NewHistoryNodeSuite(p.T(), store) 343 suite.Run(p.T(), s) 344 } 345 346 func (p *PostgreSQLSuite) TestPostgreSQLHistoryTreeSuite() { 347 cfg := NewPostgreSQLConfig(p.pluginName) 348 SetupPostgreSQLDatabase(cfg) 349 SetupPostgreSQLSchema(cfg) 350 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 351 if err != nil { 352 p.T().Fatalf("unable to create MySQL DB: %v", err) 353 } 354 defer func() { 355 _ = store.Close() 356 TearDownPostgreSQLDatabase(cfg) 357 }() 358 359 s := sqltests.NewHistoryTreeSuite(p.T(), store) 360 suite.Run(p.T(), s) 361 } 362 363 func (p *PostgreSQLSuite) TestPostgreSQLHistoryCurrentExecutionSuite() { 364 cfg := NewPostgreSQLConfig(p.pluginName) 365 SetupPostgreSQLDatabase(cfg) 366 SetupPostgreSQLSchema(cfg) 367 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 368 if err != nil { 369 p.T().Fatalf("unable to create MySQL DB: %v", err) 370 } 371 defer func() { 372 _ = store.Close() 373 TearDownPostgreSQLDatabase(cfg) 374 }() 375 376 s := sqltests.NewHistoryCurrentExecutionSuite(p.T(), store) 377 suite.Run(p.T(), s) 378 } 379 380 func (p *PostgreSQLSuite) TestPostgreSQLHistoryExecutionSuite() { 381 cfg := NewPostgreSQLConfig(p.pluginName) 382 SetupPostgreSQLDatabase(cfg) 383 SetupPostgreSQLSchema(cfg) 384 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 385 if err != nil { 386 p.T().Fatalf("unable to create MySQL DB: %v", err) 387 } 388 defer func() { 389 _ = store.Close() 390 TearDownPostgreSQLDatabase(cfg) 391 }() 392 393 s := sqltests.NewHistoryExecutionSuite(p.T(), store) 394 suite.Run(p.T(), s) 395 } 396 397 func (p *PostgreSQLSuite) TestPostgreSQLHistoryTransferTaskSuite() { 398 cfg := NewPostgreSQLConfig(p.pluginName) 399 SetupPostgreSQLDatabase(cfg) 400 SetupPostgreSQLSchema(cfg) 401 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 402 if err != nil { 403 p.T().Fatalf("unable to create MySQL DB: %v", err) 404 } 405 defer func() { 406 _ = store.Close() 407 TearDownPostgreSQLDatabase(cfg) 408 }() 409 410 s := sqltests.NewHistoryTransferTaskSuite(p.T(), store) 411 suite.Run(p.T(), s) 412 } 413 414 func (p *PostgreSQLSuite) TestPostgreSQLHistoryTimerTaskSuite() { 415 cfg := NewPostgreSQLConfig(p.pluginName) 416 SetupPostgreSQLDatabase(cfg) 417 SetupPostgreSQLSchema(cfg) 418 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 419 if err != nil { 420 p.T().Fatalf("unable to create MySQL DB: %v", err) 421 } 422 defer func() { 423 _ = store.Close() 424 TearDownPostgreSQLDatabase(cfg) 425 }() 426 427 s := sqltests.NewHistoryTimerTaskSuite(p.T(), store) 428 suite.Run(p.T(), s) 429 } 430 431 func (p *PostgreSQLSuite) TestPostgreSQLHistoryReplicationTaskSuite() { 432 cfg := NewPostgreSQLConfig(p.pluginName) 433 SetupPostgreSQLDatabase(cfg) 434 SetupPostgreSQLSchema(cfg) 435 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 436 if err != nil { 437 p.T().Fatalf("unable to create MySQL DB: %v", err) 438 } 439 defer func() { 440 _ = store.Close() 441 TearDownPostgreSQLDatabase(cfg) 442 }() 443 444 s := sqltests.NewHistoryReplicationTaskSuite(p.T(), store) 445 suite.Run(p.T(), s) 446 } 447 448 func (p *PostgreSQLSuite) TestPostgreSQLHistoryVisibilityTaskSuite() { 449 cfg := NewPostgreSQLConfig(p.pluginName) 450 SetupPostgreSQLDatabase(cfg) 451 SetupPostgreSQLSchema(cfg) 452 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 453 if err != nil { 454 p.T().Fatalf("unable to create MySQL DB: %v", err) 455 } 456 defer func() { 457 _ = store.Close() 458 TearDownPostgreSQLDatabase(cfg) 459 }() 460 461 s := sqltests.NewHistoryVisibilityTaskSuite(p.T(), store) 462 suite.Run(p.T(), s) 463 } 464 465 func (p *PostgreSQLSuite) TestPostgreSQLHistoryReplicationDLQTaskSuite() { 466 cfg := NewPostgreSQLConfig(p.pluginName) 467 SetupPostgreSQLDatabase(cfg) 468 SetupPostgreSQLSchema(cfg) 469 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 470 if err != nil { 471 p.T().Fatalf("unable to create MySQL DB: %v", err) 472 } 473 defer func() { 474 _ = store.Close() 475 TearDownPostgreSQLDatabase(cfg) 476 }() 477 478 s := sqltests.NewHistoryReplicationDLQTaskSuite(p.T(), store) 479 suite.Run(p.T(), s) 480 } 481 482 func (p *PostgreSQLSuite) TestPostgreSQLHistoryExecutionBufferSuite() { 483 cfg := NewPostgreSQLConfig(p.pluginName) 484 SetupPostgreSQLDatabase(cfg) 485 SetupPostgreSQLSchema(cfg) 486 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 487 if err != nil { 488 p.T().Fatalf("unable to create MySQL DB: %v", err) 489 } 490 defer func() { 491 _ = store.Close() 492 TearDownPostgreSQLDatabase(cfg) 493 }() 494 495 s := sqltests.NewHistoryExecutionBufferSuite(p.T(), store) 496 suite.Run(p.T(), s) 497 } 498 499 func (p *PostgreSQLSuite) TestPostgreSQLHistoryExecutionActivitySuite() { 500 cfg := NewPostgreSQLConfig(p.pluginName) 501 SetupPostgreSQLDatabase(cfg) 502 SetupPostgreSQLSchema(cfg) 503 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 504 if err != nil { 505 p.T().Fatalf("unable to create MySQL DB: %v", err) 506 } 507 defer func() { 508 _ = store.Close() 509 TearDownPostgreSQLDatabase(cfg) 510 }() 511 512 s := sqltests.NewHistoryExecutionActivitySuite(p.T(), store) 513 suite.Run(p.T(), s) 514 } 515 516 func (p *PostgreSQLSuite) TestPostgreSQLHistoryExecutionChildWorkflowSuite() { 517 cfg := NewPostgreSQLConfig(p.pluginName) 518 SetupPostgreSQLDatabase(cfg) 519 SetupPostgreSQLSchema(cfg) 520 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 521 if err != nil { 522 p.T().Fatalf("unable to create MySQL DB: %v", err) 523 } 524 defer func() { 525 _ = store.Close() 526 TearDownPostgreSQLDatabase(cfg) 527 }() 528 529 s := sqltests.NewHistoryExecutionChildWorkflowSuite(p.T(), store) 530 suite.Run(p.T(), s) 531 } 532 533 func (p *PostgreSQLSuite) TestPostgreSQLHistoryExecutionTimerSuite() { 534 cfg := NewPostgreSQLConfig(p.pluginName) 535 SetupPostgreSQLDatabase(cfg) 536 SetupPostgreSQLSchema(cfg) 537 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 538 if err != nil { 539 p.T().Fatalf("unable to create MySQL DB: %v", err) 540 } 541 defer func() { 542 _ = store.Close() 543 TearDownPostgreSQLDatabase(cfg) 544 }() 545 546 s := sqltests.NewHistoryExecutionTimerSuite(p.T(), store) 547 suite.Run(p.T(), s) 548 } 549 550 func (p *PostgreSQLSuite) TestPostgreSQLHistoryExecutionRequestCancelSuite() { 551 cfg := NewPostgreSQLConfig(p.pluginName) 552 SetupPostgreSQLDatabase(cfg) 553 SetupPostgreSQLSchema(cfg) 554 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 555 if err != nil { 556 p.T().Fatalf("unable to create MySQL DB: %v", err) 557 } 558 defer func() { 559 _ = store.Close() 560 TearDownPostgreSQLDatabase(cfg) 561 }() 562 563 s := sqltests.NewHistoryExecutionRequestCancelSuite(p.T(), store) 564 suite.Run(p.T(), s) 565 } 566 567 func (p *PostgreSQLSuite) TestPostgreSQLHistoryExecutionSignalSuite() { 568 cfg := NewPostgreSQLConfig(p.pluginName) 569 SetupPostgreSQLDatabase(cfg) 570 SetupPostgreSQLSchema(cfg) 571 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 572 if err != nil { 573 p.T().Fatalf("unable to create MySQL DB: %v", err) 574 } 575 defer func() { 576 _ = store.Close() 577 TearDownPostgreSQLDatabase(cfg) 578 }() 579 580 s := sqltests.NewHistoryExecutionSignalSuite(p.T(), store) 581 suite.Run(p.T(), s) 582 } 583 584 func (p *PostgreSQLSuite) TestPostgreSQLHistoryExecutionSignalRequestSuite() { 585 cfg := NewPostgreSQLConfig(p.pluginName) 586 SetupPostgreSQLDatabase(cfg) 587 SetupPostgreSQLSchema(cfg) 588 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 589 if err != nil { 590 p.T().Fatalf("unable to create MySQL DB: %v", err) 591 } 592 defer func() { 593 _ = store.Close() 594 TearDownPostgreSQLDatabase(cfg) 595 }() 596 597 s := sqltests.NewHistoryExecutionSignalRequestSuite(p.T(), store) 598 suite.Run(p.T(), s) 599 } 600 601 func (p *PostgreSQLSuite) TestPostgreSQLVisibilitySuite() { 602 cfg := NewPostgreSQLConfig(p.pluginName) 603 SetupPostgreSQLDatabase(cfg) 604 SetupPostgreSQLSchema(cfg) 605 store, err := sql.NewSQLDB(sqlplugin.DbKindVisibility, cfg, resolver.NewNoopResolver()) 606 if err != nil { 607 p.T().Fatalf("unable to create MySQL DB: %v", err) 608 } 609 defer func() { 610 _ = store.Close() 611 TearDownPostgreSQLDatabase(cfg) 612 }() 613 614 s := sqltests.NewVisibilitySuite(p.T(), store) 615 suite.Run(p.T(), s) 616 } 617 618 func (p *PostgreSQLSuite) TestPostgreSQLClosedConnectionError() { 619 testData, tearDown := setUpPostgreSQLTest(p.T(), p.pluginName) 620 defer tearDown() 621 622 s := newConnectionSuite(p.T(), testData.Factory) 623 suite.Run(p.T(), s) 624 } 625 626 func (p *PostgreSQLSuite) TestPGQueueV2() { 627 testData, tearDown := setUpPostgreSQLTest(p.T(), p.pluginName) 628 p.T().Cleanup(tearDown) 629 RunQueueV2TestSuiteForSQL(p.T(), testData.Factory) 630 } 631 632 func TestPQ(t *testing.T) { 633 s := &PostgreSQLSuite{pluginName: "postgres12"} 634 suite.Run(t, s) 635 } 636 637 func TestPGX(t *testing.T) { 638 s := &PostgreSQLSuite{pluginName: "postgres12_pgx"} 639 suite.Run(t, s) 640 }