go.temporal.io/server@v1.23.0/common/persistence/tests/sqlite_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 "fmt" 29 "os" 30 "path" 31 "testing" 32 33 "github.com/stretchr/testify/assert" 34 "github.com/stretchr/testify/suite" 35 36 "go.temporal.io/server/common/config" 37 "go.temporal.io/server/common/log" 38 "go.temporal.io/server/common/log/tag" 39 "go.temporal.io/server/common/persistence" 40 persistencetests "go.temporal.io/server/common/persistence/persistence-tests" 41 "go.temporal.io/server/common/persistence/serialization" 42 "go.temporal.io/server/common/persistence/sql" 43 "go.temporal.io/server/common/persistence/sql/sqlplugin" 44 _ "go.temporal.io/server/common/persistence/sql/sqlplugin/sqlite" 45 sqltests "go.temporal.io/server/common/persistence/sql/sqlplugin/tests" 46 "go.temporal.io/server/common/resolver" 47 "go.temporal.io/server/environment" 48 ) 49 50 // TODO merge the initialization with existing persistence setup 51 const ( 52 testSQLiteClusterName = "temporal_sqlite_cluster" 53 testSQLiteSchemaDir = "../../../schema/sqlite/v3" // specify if mode is not "memory" 54 ) 55 56 // NewSQLiteMemoryConfig returns a new SQLite config for test 57 func NewSQLiteMemoryConfig() *config.SQL { 58 return &config.SQL{ 59 User: "", 60 Password: "", 61 ConnectAddr: environment.GetLocalhostIP(), 62 ConnectProtocol: "tcp", 63 PluginName: "sqlite", 64 DatabaseName: "default", 65 ConnectAttributes: map[string]string{"mode": "memory", "cache": "private"}, 66 } 67 } 68 69 // NewSQLiteMemoryConfig returns a new SQLite config for test 70 func NewSQLiteFileConfig() *config.SQL { 71 return &config.SQL{ 72 User: "", 73 Password: "", 74 ConnectAddr: environment.GetLocalhostIP(), 75 ConnectProtocol: "tcp", 76 PluginName: "sqlite", 77 DatabaseName: "test_" + persistencetests.GenerateRandomDBName(3), 78 ConnectAttributes: map[string]string{"cache": "private"}, 79 } 80 } 81 82 func SetupSQLiteDatabase(cfg *config.SQL) { 83 db, err := sql.NewSQLAdminDB(sqlplugin.DbKindUnknown, cfg, resolver.NewNoopResolver()) 84 if err != nil { 85 panic(fmt.Sprintf("unable to create SQLite admin DB: %v", err)) 86 } 87 defer func() { _ = db.Close() }() 88 89 err = db.CreateDatabase(cfg.DatabaseName) 90 if err != nil { 91 panic(fmt.Sprintf("unable to create SQLite database: %v", err)) 92 } 93 94 LoadSchema(db, path.Join(testSQLiteSchemaDir, "temporal", "schema.sql")) 95 LoadSchema(db, path.Join(testSQLiteSchemaDir, "visibility", "schema.sql")) 96 } 97 98 func LoadSchema(db sqlplugin.AdminDB, schemaFile string) { 99 statements, err := persistence.LoadAndSplitQuery([]string{schemaFile}) 100 if err != nil { 101 panic(fmt.Sprintf("LoadSchema %+v", tag.Error(err))) 102 } 103 104 for _, stmt := range statements { 105 if err = db.Exec(stmt); err != nil { 106 panic(fmt.Sprintf("LoadSchema %+v", tag.Error(err))) 107 } 108 } 109 } 110 111 func TestSQLiteExecutionMutableStateStoreSuite(t *testing.T) { 112 cfg := NewSQLiteMemoryConfig() 113 logger := log.NewNoopLogger() 114 factory := sql.NewFactory( 115 *cfg, 116 resolver.NewNoopResolver(), 117 testSQLiteClusterName, 118 logger, 119 ) 120 shardStore, err := factory.NewShardStore() 121 if err != nil { 122 t.Fatalf("unable to create SQLite DB: %v", err) 123 } 124 executionStore, err := factory.NewExecutionStore() 125 if err != nil { 126 t.Fatalf("unable to create SQLite DB: %v", err) 127 } 128 defer func() { 129 factory.Close() 130 }() 131 132 s := NewExecutionMutableStateSuite( 133 t, 134 shardStore, 135 executionStore, 136 serialization.NewSerializer(), 137 logger, 138 ) 139 suite.Run(t, s) 140 } 141 142 func TestSQLiteExecutionMutableStateTaskStoreSuite(t *testing.T) { 143 cfg := NewSQLiteMemoryConfig() 144 logger := log.NewNoopLogger() 145 factory := sql.NewFactory( 146 *cfg, 147 resolver.NewNoopResolver(), 148 testSQLiteClusterName, 149 logger, 150 ) 151 shardStore, err := factory.NewShardStore() 152 if err != nil { 153 t.Fatalf("unable to create SQLite DB: %v", err) 154 } 155 executionStore, err := factory.NewExecutionStore() 156 if err != nil { 157 t.Fatalf("unable to create SQLite DB: %v", err) 158 } 159 defer func() { 160 factory.Close() 161 }() 162 163 s := NewExecutionMutableStateTaskSuite( 164 t, 165 shardStore, 166 executionStore, 167 serialization.NewSerializer(), 168 logger, 169 ) 170 suite.Run(t, s) 171 } 172 173 func TestSQLiteHistoryStoreSuite(t *testing.T) { 174 cfg := NewSQLiteMemoryConfig() 175 logger := log.NewNoopLogger() 176 factory := sql.NewFactory( 177 *cfg, 178 resolver.NewNoopResolver(), 179 testSQLiteClusterName, 180 logger, 181 ) 182 store, err := factory.NewExecutionStore() 183 if err != nil { 184 t.Fatalf("unable to create SQLite DB: %v", err) 185 } 186 defer func() { 187 factory.Close() 188 }() 189 190 s := NewHistoryEventsSuite(t, store, logger) 191 suite.Run(t, s) 192 } 193 194 func TestSQLiteTaskQueueSuite(t *testing.T) { 195 cfg := NewSQLiteMemoryConfig() 196 logger := log.NewNoopLogger() 197 factory := sql.NewFactory( 198 *cfg, 199 resolver.NewNoopResolver(), 200 testSQLiteClusterName, 201 logger, 202 ) 203 taskQueueStore, err := factory.NewTaskStore() 204 if err != nil { 205 t.Fatalf("unable to create SQLite DB: %v", err) 206 } 207 defer func() { 208 factory.Close() 209 }() 210 211 s := NewTaskQueueSuite(t, taskQueueStore, logger) 212 suite.Run(t, s) 213 } 214 215 func TestSQLiteTaskQueueTaskSuite(t *testing.T) { 216 cfg := NewSQLiteMemoryConfig() 217 logger := log.NewNoopLogger() 218 factory := sql.NewFactory( 219 *cfg, 220 resolver.NewNoopResolver(), 221 testSQLiteClusterName, 222 logger, 223 ) 224 taskQueueStore, err := factory.NewTaskStore() 225 if err != nil { 226 t.Fatalf("unable to create SQLite DB: %v", err) 227 } 228 defer func() { 229 factory.Close() 230 }() 231 232 s := NewTaskQueueTaskSuite(t, taskQueueStore, logger) 233 suite.Run(t, s) 234 } 235 236 func TestSQLiteFileExecutionMutableStateStoreSuite(t *testing.T) { 237 cfg := NewSQLiteFileConfig() 238 SetupSQLiteDatabase(cfg) 239 defer func() { 240 assert.NoError(t, os.Remove(cfg.DatabaseName)) 241 }() 242 logger := log.NewNoopLogger() 243 factory := sql.NewFactory( 244 *cfg, 245 resolver.NewNoopResolver(), 246 testSQLiteClusterName, 247 logger, 248 ) 249 shardStore, err := factory.NewShardStore() 250 if err != nil { 251 t.Fatalf("unable to create SQLite DB: %v", err) 252 } 253 executionStore, err := factory.NewExecutionStore() 254 if err != nil { 255 t.Fatalf("unable to create SQLite DB: %v", err) 256 } 257 defer func() { 258 factory.Close() 259 }() 260 261 s := NewExecutionMutableStateSuite( 262 t, 263 shardStore, 264 executionStore, 265 serialization.NewSerializer(), 266 logger, 267 ) 268 suite.Run(t, s) 269 } 270 271 func TestSQLiteFileExecutionMutableStateTaskStoreSuite(t *testing.T) { 272 cfg := NewSQLiteFileConfig() 273 SetupSQLiteDatabase(cfg) 274 defer func() { 275 assert.NoError(t, os.Remove(cfg.DatabaseName)) 276 }() 277 logger := log.NewNoopLogger() 278 factory := sql.NewFactory( 279 *cfg, 280 resolver.NewNoopResolver(), 281 testSQLiteClusterName, 282 logger, 283 ) 284 shardStore, err := factory.NewShardStore() 285 if err != nil { 286 t.Fatalf("unable to create SQLite DB: %v", err) 287 } 288 executionStore, err := factory.NewExecutionStore() 289 if err != nil { 290 t.Fatalf("unable to create SQLite DB: %v", err) 291 } 292 defer func() { 293 factory.Close() 294 }() 295 296 s := NewExecutionMutableStateTaskSuite( 297 t, 298 shardStore, 299 executionStore, 300 serialization.NewSerializer(), 301 logger, 302 ) 303 suite.Run(t, s) 304 } 305 306 func TestSQLiteFileHistoryStoreSuite(t *testing.T) { 307 cfg := NewSQLiteFileConfig() 308 SetupSQLiteDatabase(cfg) 309 defer func() { 310 assert.NoError(t, os.Remove(cfg.DatabaseName)) 311 }() 312 logger := log.NewNoopLogger() 313 factory := sql.NewFactory( 314 *cfg, 315 resolver.NewNoopResolver(), 316 testSQLiteClusterName, 317 logger, 318 ) 319 store, err := factory.NewExecutionStore() 320 if err != nil { 321 t.Fatalf("unable to create SQLite DB: %v", err) 322 } 323 defer func() { 324 factory.Close() 325 }() 326 327 s := NewHistoryEventsSuite(t, store, logger) 328 suite.Run(t, s) 329 } 330 331 func TestSQLiteFileTaskQueueSuite(t *testing.T) { 332 cfg := NewSQLiteFileConfig() 333 SetupSQLiteDatabase(cfg) 334 defer func() { 335 assert.NoError(t, os.Remove(cfg.DatabaseName)) 336 }() 337 logger := log.NewNoopLogger() 338 factory := sql.NewFactory( 339 *cfg, 340 resolver.NewNoopResolver(), 341 testSQLiteClusterName, 342 logger, 343 ) 344 taskQueueStore, err := factory.NewTaskStore() 345 if err != nil { 346 t.Fatalf("unable to create SQLite DB: %v", err) 347 } 348 defer func() { 349 factory.Close() 350 }() 351 352 s := NewTaskQueueSuite(t, taskQueueStore, logger) 353 suite.Run(t, s) 354 } 355 356 func TestSQLiteFileTaskQueueTaskSuite(t *testing.T) { 357 cfg := NewSQLiteFileConfig() 358 SetupSQLiteDatabase(cfg) 359 defer func() { 360 assert.NoError(t, os.Remove(cfg.DatabaseName)) 361 }() 362 logger := log.NewNoopLogger() 363 factory := sql.NewFactory( 364 *cfg, 365 resolver.NewNoopResolver(), 366 testSQLiteClusterName, 367 logger, 368 ) 369 taskQueueStore, err := factory.NewTaskStore() 370 if err != nil { 371 t.Fatalf("unable to create SQLite DB: %v", err) 372 } 373 defer func() { 374 factory.Close() 375 }() 376 377 s := NewTaskQueueTaskSuite(t, taskQueueStore, logger) 378 suite.Run(t, s) 379 } 380 381 // TODO: Merge persistence-tests into the tests directory. 382 383 func TestSQLiteVisibilityPersistenceSuite(t *testing.T) { 384 s := new(VisibilityPersistenceSuite) 385 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteMemoryTestClusterOption()) 386 suite.Run(t, s) 387 } 388 389 func TestSQLiteHistoryV2PersistenceSuite(t *testing.T) { 390 s := new(persistencetests.HistoryV2PersistenceSuite) 391 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteMemoryTestClusterOption()) 392 s.TestBase.Setup(nil) 393 suite.Run(t, s) 394 } 395 396 func TestSQLiteMetadataPersistenceSuiteV2(t *testing.T) { 397 s := new(persistencetests.MetadataPersistenceSuiteV2) 398 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteMemoryTestClusterOption()) 399 s.TestBase.Setup(nil) 400 suite.Run(t, s) 401 } 402 403 func TestSQLiteClusterMetadataPersistence(t *testing.T) { 404 s := new(persistencetests.ClusterMetadataManagerSuite) 405 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteMemoryTestClusterOption()) 406 s.TestBase.Setup(nil) 407 suite.Run(t, s) 408 } 409 410 func TestSQLiteQueuePersistence(t *testing.T) { 411 s := new(persistencetests.QueuePersistenceSuite) 412 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteMemoryTestClusterOption()) 413 s.TestBase.Setup(nil) 414 suite.Run(t, s) 415 } 416 417 func TestSQLiteFileHistoryV2PersistenceSuite(t *testing.T) { 418 s := new(persistencetests.HistoryV2PersistenceSuite) 419 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteFileTestClusterOption()) 420 s.TestBase.Setup(nil) 421 suite.Run(t, s) 422 } 423 424 func TestSQLiteFileMetadataPersistenceSuiteV2(t *testing.T) { 425 s := new(persistencetests.MetadataPersistenceSuiteV2) 426 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteFileTestClusterOption()) 427 s.TestBase.Setup(nil) 428 suite.Run(t, s) 429 } 430 431 func TestSQLiteFileClusterMetadataPersistence(t *testing.T) { 432 s := new(persistencetests.ClusterMetadataManagerSuite) 433 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteFileTestClusterOption()) 434 s.TestBase.Setup(nil) 435 suite.Run(t, s) 436 } 437 438 func TestSQLiteFileQueuePersistence(t *testing.T) { 439 s := new(persistencetests.QueuePersistenceSuite) 440 s.TestBase = persistencetests.NewTestBaseWithSQL(persistencetests.GetSQLiteFileTestClusterOption()) 441 s.TestBase.Setup(nil) 442 suite.Run(t, s) 443 } 444 445 // SQL store tests 446 447 func TestSQLiteNamespaceSuite(t *testing.T) { 448 cfg := NewSQLiteMemoryConfig() 449 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 450 if err != nil { 451 t.Fatalf("unable to create SQLite DB: %v", err) 452 } 453 defer func() { 454 _ = store.Close() 455 }() 456 457 s := sqltests.NewNamespaceSuite(t, store) 458 suite.Run(t, s) 459 } 460 461 func TestSQLiteQueueMessageSuite(t *testing.T) { 462 cfg := NewSQLiteMemoryConfig() 463 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 464 if err != nil { 465 t.Fatalf("unable to create SQLite DB: %v", err) 466 } 467 defer func() { 468 _ = store.Close() 469 }() 470 471 s := sqltests.NewQueueMessageSuite(t, store) 472 suite.Run(t, s) 473 } 474 475 func TestSQLiteQueueMetadataSuite(t *testing.T) { 476 cfg := NewSQLiteMemoryConfig() 477 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 478 if err != nil { 479 t.Fatalf("unable to create SQLite DB: %v", err) 480 } 481 defer func() { 482 _ = store.Close() 483 }() 484 485 s := sqltests.NewQueueMetadataSuite(t, store) 486 suite.Run(t, s) 487 } 488 489 func TestSQLiteMatchingTaskSuite(t *testing.T) { 490 cfg := NewSQLiteMemoryConfig() 491 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 492 if err != nil { 493 t.Fatalf("unable to create SQLite DB: %v", err) 494 } 495 defer func() { 496 _ = store.Close() 497 }() 498 499 s := sqltests.NewMatchingTaskSuite(t, store) 500 suite.Run(t, s) 501 } 502 503 func TestSQLiteMatchingTaskQueueSuite(t *testing.T) { 504 cfg := NewSQLiteMemoryConfig() 505 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 506 if err != nil { 507 t.Fatalf("unable to create SQLite DB: %v", err) 508 } 509 defer func() { 510 _ = store.Close() 511 }() 512 513 s := sqltests.NewMatchingTaskQueueSuite(t, store) 514 suite.Run(t, s) 515 } 516 517 func TestSQLiteHistoryShardSuite(t *testing.T) { 518 cfg := NewSQLiteMemoryConfig() 519 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 520 if err != nil { 521 t.Fatalf("unable to create SQLite DB: %v", err) 522 } 523 defer func() { 524 _ = store.Close() 525 }() 526 527 s := sqltests.NewHistoryShardSuite(t, store) 528 suite.Run(t, s) 529 } 530 531 func TestSQLiteHistoryNodeSuite(t *testing.T) { 532 cfg := NewSQLiteMemoryConfig() 533 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 534 if err != nil { 535 t.Fatalf("unable to create SQLite DB: %v", err) 536 } 537 defer func() { 538 _ = store.Close() 539 }() 540 541 s := sqltests.NewHistoryNodeSuite(t, store) 542 suite.Run(t, s) 543 } 544 545 func TestSQLiteHistoryTreeSuite(t *testing.T) { 546 cfg := NewSQLiteMemoryConfig() 547 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 548 if err != nil { 549 t.Fatalf("unable to create SQLite DB: %v", err) 550 } 551 defer func() { 552 _ = store.Close() 553 }() 554 555 s := sqltests.NewHistoryTreeSuite(t, store) 556 suite.Run(t, s) 557 } 558 559 func TestSQLiteHistoryCurrentExecutionSuite(t *testing.T) { 560 cfg := NewSQLiteMemoryConfig() 561 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 562 if err != nil { 563 t.Fatalf("unable to create SQLite DB: %v", err) 564 } 565 defer func() { 566 _ = store.Close() 567 }() 568 569 s := sqltests.NewHistoryCurrentExecutionSuite(t, store) 570 suite.Run(t, s) 571 } 572 573 func TestSQLiteHistoryExecutionSuite(t *testing.T) { 574 cfg := NewSQLiteMemoryConfig() 575 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 576 if err != nil { 577 t.Fatalf("unable to create SQLite DB: %v", err) 578 } 579 defer func() { 580 _ = store.Close() 581 }() 582 583 s := sqltests.NewHistoryExecutionSuite(t, store) 584 suite.Run(t, s) 585 } 586 587 func TestSQLiteHistoryTransferTaskSuite(t *testing.T) { 588 cfg := NewSQLiteMemoryConfig() 589 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 590 if err != nil { 591 t.Fatalf("unable to create SQLite DB: %v", err) 592 } 593 defer func() { 594 _ = store.Close() 595 }() 596 597 s := sqltests.NewHistoryTransferTaskSuite(t, store) 598 suite.Run(t, s) 599 } 600 601 func TestSQLiteHistoryTimerTaskSuite(t *testing.T) { 602 cfg := NewSQLiteMemoryConfig() 603 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 604 if err != nil { 605 t.Fatalf("unable to create SQLite DB: %v", err) 606 } 607 defer func() { 608 _ = store.Close() 609 }() 610 611 s := sqltests.NewHistoryTimerTaskSuite(t, store) 612 suite.Run(t, s) 613 } 614 615 func TestSQLiteHistoryReplicationTaskSuite(t *testing.T) { 616 cfg := NewSQLiteMemoryConfig() 617 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 618 if err != nil { 619 t.Fatalf("unable to create SQLite DB: %v", err) 620 } 621 defer func() { 622 _ = store.Close() 623 }() 624 625 s := sqltests.NewHistoryReplicationTaskSuite(t, store) 626 suite.Run(t, s) 627 } 628 629 func TestSQLiteHistoryVisibilityTaskSuite(t *testing.T) { 630 cfg := NewSQLiteMemoryConfig() 631 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 632 if err != nil { 633 t.Fatalf("unable to create SQLite DB: %v", err) 634 } 635 defer func() { 636 _ = store.Close() 637 }() 638 639 s := sqltests.NewHistoryVisibilityTaskSuite(t, store) 640 suite.Run(t, s) 641 } 642 643 func TestSQLiteHistoryReplicationDLQTaskSuite(t *testing.T) { 644 cfg := NewSQLiteMemoryConfig() 645 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 646 if err != nil { 647 t.Fatalf("unable to create SQLite DB: %v", err) 648 } 649 defer func() { 650 _ = store.Close() 651 }() 652 653 s := sqltests.NewHistoryReplicationDLQTaskSuite(t, store) 654 suite.Run(t, s) 655 } 656 657 func TestSQLiteHistoryExecutionBufferSuite(t *testing.T) { 658 cfg := NewSQLiteMemoryConfig() 659 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 660 if err != nil { 661 t.Fatalf("unable to create SQLite DB: %v", err) 662 } 663 defer func() { 664 _ = store.Close() 665 }() 666 667 s := sqltests.NewHistoryExecutionBufferSuite(t, store) 668 suite.Run(t, s) 669 } 670 671 func TestSQLiteHistoryExecutionActivitySuite(t *testing.T) { 672 cfg := NewSQLiteMemoryConfig() 673 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 674 if err != nil { 675 t.Fatalf("unable to create SQLite DB: %v", err) 676 } 677 defer func() { 678 _ = store.Close() 679 }() 680 681 s := sqltests.NewHistoryExecutionActivitySuite(t, store) 682 suite.Run(t, s) 683 } 684 685 func TestSQLiteHistoryExecutionChildWorkflowSuite(t *testing.T) { 686 cfg := NewSQLiteMemoryConfig() 687 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 688 if err != nil { 689 t.Fatalf("unable to create SQLite DB: %v", err) 690 } 691 defer func() { 692 _ = store.Close() 693 }() 694 695 s := sqltests.NewHistoryExecutionChildWorkflowSuite(t, store) 696 suite.Run(t, s) 697 } 698 699 func TestSQLiteHistoryExecutionTimerSuite(t *testing.T) { 700 cfg := NewSQLiteMemoryConfig() 701 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 702 if err != nil { 703 t.Fatalf("unable to create SQLite DB: %v", err) 704 } 705 defer func() { 706 _ = store.Close() 707 }() 708 709 s := sqltests.NewHistoryExecutionTimerSuite(t, store) 710 suite.Run(t, s) 711 } 712 713 func TestSQLiteHistoryExecutionRequestCancelSuite(t *testing.T) { 714 cfg := NewSQLiteMemoryConfig() 715 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 716 if err != nil { 717 t.Fatalf("unable to create SQLite DB: %v", err) 718 } 719 defer func() { 720 _ = store.Close() 721 }() 722 723 s := sqltests.NewHistoryExecutionRequestCancelSuite(t, store) 724 suite.Run(t, s) 725 } 726 727 func TestSQLiteHistoryExecutionSignalSuite(t *testing.T) { 728 cfg := NewSQLiteMemoryConfig() 729 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 730 if err != nil { 731 t.Fatalf("unable to create SQLite DB: %v", err) 732 } 733 defer func() { 734 _ = store.Close() 735 }() 736 737 s := sqltests.NewHistoryExecutionSignalSuite(t, store) 738 suite.Run(t, s) 739 } 740 741 func TestSQLiteHistoryExecutionSignalRequestSuite(t *testing.T) { 742 cfg := NewSQLiteMemoryConfig() 743 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 744 if err != nil { 745 t.Fatalf("unable to create SQLite DB: %v", err) 746 } 747 defer func() { 748 _ = store.Close() 749 }() 750 751 s := sqltests.NewHistoryExecutionSignalRequestSuite(t, store) 752 suite.Run(t, s) 753 } 754 755 func TestSQLiteVisibilitySuite(t *testing.T) { 756 cfg := NewSQLiteMemoryConfig() 757 store, err := sql.NewSQLDB(sqlplugin.DbKindVisibility, cfg, resolver.NewNoopResolver()) 758 if err != nil { 759 t.Fatalf("unable to create SQLite DB: %v", err) 760 } 761 defer func() { 762 _ = store.Close() 763 }() 764 765 s := sqltests.NewVisibilitySuite(t, store) 766 suite.Run(t, s) 767 } 768 769 func TestSQLiteFileNamespaceSuite(t *testing.T) { 770 cfg := NewSQLiteFileConfig() 771 SetupSQLiteDatabase(cfg) 772 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 773 if err != nil { 774 t.Fatalf("unable to create SQLite DB: %v", err) 775 } 776 defer os.Remove(cfg.DatabaseName) 777 778 s := sqltests.NewNamespaceSuite(t, store) 779 suite.Run(t, s) 780 } 781 782 func TestSQLiteFileQueueMessageSuite(t *testing.T) { 783 cfg := NewSQLiteFileConfig() 784 SetupSQLiteDatabase(cfg) 785 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 786 if err != nil { 787 t.Fatalf("unable to create SQLite DB: %v", err) 788 } 789 defer os.Remove(cfg.DatabaseName) 790 791 s := sqltests.NewQueueMessageSuite(t, store) 792 suite.Run(t, s) 793 } 794 795 func TestSQLiteFileQueueMetadataSuite(t *testing.T) { 796 cfg := NewSQLiteFileConfig() 797 SetupSQLiteDatabase(cfg) 798 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 799 if err != nil { 800 t.Fatalf("unable to create SQLite DB: %v", err) 801 } 802 defer os.Remove(cfg.DatabaseName) 803 804 s := sqltests.NewQueueMetadataSuite(t, store) 805 suite.Run(t, s) 806 } 807 808 func TestSQLiteFileMatchingTaskSuite(t *testing.T) { 809 cfg := NewSQLiteFileConfig() 810 SetupSQLiteDatabase(cfg) 811 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 812 if err != nil { 813 t.Fatalf("unable to create SQLite DB: %v", err) 814 } 815 defer os.Remove(cfg.DatabaseName) 816 817 s := sqltests.NewMatchingTaskSuite(t, store) 818 suite.Run(t, s) 819 } 820 821 func TestSQLiteFileMatchingTaskQueueSuite(t *testing.T) { 822 cfg := NewSQLiteFileConfig() 823 SetupSQLiteDatabase(cfg) 824 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 825 if err != nil { 826 t.Fatalf("unable to create SQLite DB: %v", err) 827 } 828 defer os.Remove(cfg.DatabaseName) 829 830 s := sqltests.NewMatchingTaskQueueSuite(t, store) 831 suite.Run(t, s) 832 } 833 834 func TestSQLiteFileHistoryShardSuite(t *testing.T) { 835 cfg := NewSQLiteFileConfig() 836 SetupSQLiteDatabase(cfg) 837 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 838 if err != nil { 839 t.Fatalf("unable to create SQLite DB: %v", err) 840 } 841 defer os.Remove(cfg.DatabaseName) 842 843 s := sqltests.NewHistoryShardSuite(t, store) 844 suite.Run(t, s) 845 } 846 847 func TestSQLiteFileHistoryNodeSuite(t *testing.T) { 848 cfg := NewSQLiteFileConfig() 849 SetupSQLiteDatabase(cfg) 850 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 851 if err != nil { 852 t.Fatalf("unable to create SQLite DB: %v", err) 853 } 854 defer os.Remove(cfg.DatabaseName) 855 856 s := sqltests.NewHistoryNodeSuite(t, store) 857 suite.Run(t, s) 858 } 859 860 func TestSQLiteFileHistoryTreeSuite(t *testing.T) { 861 cfg := NewSQLiteFileConfig() 862 SetupSQLiteDatabase(cfg) 863 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 864 if err != nil { 865 t.Fatalf("unable to create SQLite DB: %v", err) 866 } 867 defer os.Remove(cfg.DatabaseName) 868 869 s := sqltests.NewHistoryTreeSuite(t, store) 870 suite.Run(t, s) 871 } 872 873 func TestSQLiteFileHistoryCurrentExecutionSuite(t *testing.T) { 874 cfg := NewSQLiteFileConfig() 875 SetupSQLiteDatabase(cfg) 876 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 877 if err != nil { 878 t.Fatalf("unable to create SQLite DB: %v", err) 879 } 880 defer os.Remove(cfg.DatabaseName) 881 882 s := sqltests.NewHistoryCurrentExecutionSuite(t, store) 883 suite.Run(t, s) 884 } 885 886 func TestSQLiteFileHistoryExecutionSuite(t *testing.T) { 887 cfg := NewSQLiteFileConfig() 888 SetupSQLiteDatabase(cfg) 889 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 890 if err != nil { 891 t.Fatalf("unable to create SQLite DB: %v", err) 892 } 893 defer os.Remove(cfg.DatabaseName) 894 895 s := sqltests.NewHistoryExecutionSuite(t, store) 896 suite.Run(t, s) 897 } 898 899 func TestSQLiteFileHistoryTransferTaskSuite(t *testing.T) { 900 cfg := NewSQLiteFileConfig() 901 SetupSQLiteDatabase(cfg) 902 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 903 if err != nil { 904 t.Fatalf("unable to create SQLite DB: %v", err) 905 } 906 defer os.Remove(cfg.DatabaseName) 907 908 s := sqltests.NewHistoryTransferTaskSuite(t, store) 909 suite.Run(t, s) 910 } 911 912 func TestSQLiteFileHistoryTimerTaskSuite(t *testing.T) { 913 cfg := NewSQLiteFileConfig() 914 SetupSQLiteDatabase(cfg) 915 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 916 if err != nil { 917 t.Fatalf("unable to create SQLite DB: %v", err) 918 } 919 defer os.Remove(cfg.DatabaseName) 920 921 s := sqltests.NewHistoryTimerTaskSuite(t, store) 922 suite.Run(t, s) 923 } 924 925 func TestSQLiteFileHistoryReplicationTaskSuite(t *testing.T) { 926 cfg := NewSQLiteFileConfig() 927 SetupSQLiteDatabase(cfg) 928 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 929 if err != nil { 930 t.Fatalf("unable to create SQLite DB: %v", err) 931 } 932 defer os.Remove(cfg.DatabaseName) 933 934 s := sqltests.NewHistoryReplicationTaskSuite(t, store) 935 suite.Run(t, s) 936 } 937 938 func TestSQLiteFileHistoryVisibilityTaskSuite(t *testing.T) { 939 cfg := NewSQLiteFileConfig() 940 SetupSQLiteDatabase(cfg) 941 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 942 if err != nil { 943 t.Fatalf("unable to create SQLite DB: %v", err) 944 } 945 defer os.Remove(cfg.DatabaseName) 946 947 s := sqltests.NewHistoryVisibilityTaskSuite(t, store) 948 suite.Run(t, s) 949 } 950 951 func TestSQLiteFileHistoryReplicationDLQTaskSuite(t *testing.T) { 952 cfg := NewSQLiteFileConfig() 953 SetupSQLiteDatabase(cfg) 954 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 955 if err != nil { 956 t.Fatalf("unable to create SQLite DB: %v", err) 957 } 958 defer os.Remove(cfg.DatabaseName) 959 960 s := sqltests.NewHistoryReplicationDLQTaskSuite(t, store) 961 suite.Run(t, s) 962 } 963 964 func TestSQLiteFileHistoryExecutionBufferSuite(t *testing.T) { 965 cfg := NewSQLiteFileConfig() 966 SetupSQLiteDatabase(cfg) 967 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 968 if err != nil { 969 t.Fatalf("unable to create SQLite DB: %v", err) 970 } 971 defer os.Remove(cfg.DatabaseName) 972 973 s := sqltests.NewHistoryExecutionBufferSuite(t, store) 974 suite.Run(t, s) 975 } 976 977 func TestSQLiteFileHistoryExecutionActivitySuite(t *testing.T) { 978 cfg := NewSQLiteFileConfig() 979 SetupSQLiteDatabase(cfg) 980 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 981 if err != nil { 982 t.Fatalf("unable to create SQLite DB: %v", err) 983 } 984 defer os.Remove(cfg.DatabaseName) 985 986 s := sqltests.NewHistoryExecutionActivitySuite(t, store) 987 suite.Run(t, s) 988 } 989 990 func TestSQLiteFileHistoryExecutionChildWorkflowSuite(t *testing.T) { 991 cfg := NewSQLiteFileConfig() 992 SetupSQLiteDatabase(cfg) 993 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 994 if err != nil { 995 t.Fatalf("unable to create SQLite DB: %v", err) 996 } 997 defer os.Remove(cfg.DatabaseName) 998 999 s := sqltests.NewHistoryExecutionChildWorkflowSuite(t, store) 1000 suite.Run(t, s) 1001 } 1002 1003 func TestSQLiteFileHistoryExecutionTimerSuite(t *testing.T) { 1004 cfg := NewSQLiteFileConfig() 1005 SetupSQLiteDatabase(cfg) 1006 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 1007 if err != nil { 1008 t.Fatalf("unable to create SQLite DB: %v", err) 1009 } 1010 defer os.Remove(cfg.DatabaseName) 1011 1012 s := sqltests.NewHistoryExecutionTimerSuite(t, store) 1013 suite.Run(t, s) 1014 } 1015 1016 func TestSQLiteFileHistoryExecutionRequestCancelSuite(t *testing.T) { 1017 cfg := NewSQLiteFileConfig() 1018 SetupSQLiteDatabase(cfg) 1019 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 1020 if err != nil { 1021 t.Fatalf("unable to create SQLite DB: %v", err) 1022 } 1023 defer os.Remove(cfg.DatabaseName) 1024 1025 s := sqltests.NewHistoryExecutionRequestCancelSuite(t, store) 1026 suite.Run(t, s) 1027 } 1028 1029 func TestSQLiteFileHistoryExecutionSignalSuite(t *testing.T) { 1030 cfg := NewSQLiteFileConfig() 1031 SetupSQLiteDatabase(cfg) 1032 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 1033 if err != nil { 1034 t.Fatalf("unable to create SQLite DB: %v", err) 1035 } 1036 defer os.Remove(cfg.DatabaseName) 1037 1038 s := sqltests.NewHistoryExecutionSignalSuite(t, store) 1039 suite.Run(t, s) 1040 } 1041 1042 func TestSQLiteFileHistoryExecutionSignalRequestSuite(t *testing.T) { 1043 cfg := NewSQLiteFileConfig() 1044 SetupSQLiteDatabase(cfg) 1045 store, err := sql.NewSQLDB(sqlplugin.DbKindMain, cfg, resolver.NewNoopResolver()) 1046 if err != nil { 1047 t.Fatalf("unable to create SQLite DB: %v", err) 1048 } 1049 defer os.Remove(cfg.DatabaseName) 1050 1051 s := sqltests.NewHistoryExecutionSignalRequestSuite(t, store) 1052 suite.Run(t, s) 1053 } 1054 1055 func TestSQLiteFileVisibilitySuite(t *testing.T) { 1056 cfg := NewSQLiteFileConfig() 1057 SetupSQLiteDatabase(cfg) 1058 store, err := sql.NewSQLDB(sqlplugin.DbKindVisibility, cfg, resolver.NewNoopResolver()) 1059 if err != nil { 1060 t.Fatalf("unable to create SQLite DB: %v", err) 1061 } 1062 defer os.Remove(cfg.DatabaseName) 1063 1064 s := sqltests.NewVisibilitySuite(t, store) 1065 suite.Run(t, s) 1066 } 1067 1068 func TestSQLiteQueueV2(t *testing.T) { 1069 cfg := NewSQLiteFileConfig() 1070 SetupSQLiteDatabase(cfg) 1071 logger := log.NewNoopLogger() 1072 factory := sql.NewFactory( 1073 *cfg, 1074 resolver.NewNoopResolver(), 1075 testSQLiteClusterName, 1076 logger, 1077 ) 1078 t.Cleanup(func() { 1079 factory.Close() 1080 assert.NoError(t, os.Remove(cfg.DatabaseName)) 1081 }) 1082 RunQueueV2TestSuiteForSQL(t, factory) 1083 }