diff --git a/common/persistence/persistence-tests/persistence_test_base.go b/common/persistence/persistence-tests/persistence_test_base.go index 96a1cb4bc79..e868ac5be3e 100644 --- a/common/persistence/persistence-tests/persistence_test_base.go +++ b/common/persistence/persistence-tests/persistence_test_base.go @@ -4,11 +4,11 @@ import ( "cmp" "context" "fmt" - "math/rand" "strings" "sync/atomic" "time" + "github.com/google/uuid" "github.com/stretchr/testify/suite" "go.opentelemetry.io/otel/trace" persistencespb "go.temporal.io/server/api/persistence/v1" @@ -129,7 +129,7 @@ func NewTestBaseWithCassandra(options *TestBaseOptions) *TestBase { func NewTestClusterForCassandra(options *TestBaseOptions, logger log.Logger) *cassandra.TestCluster { if options.DBName == "" { - options.DBName = "test_" + GenerateRandomDBName(3) + options.DBName = GenerateRandomDBName() } testCluster := cassandra.NewTestCluster(options.DBName, options.DBUsername, options.DBPassword, options.DBHost, options.DBPort, options.SchemaDir, options.FaultInjection, logger) return testCluster @@ -436,23 +436,10 @@ func (s *TestBase) RangeDeleteMessagesFromNamespaceDLQ( return s.NamespaceReplicationQueue.RangeDeleteMessagesFromDLQ(ctx, firstMessageID, lastMessageID) } -func randString(length int) string { - const lowercaseSet = "abcdefghijklmnopqrstuvwxyz" - b := make([]byte, length) - for i := range b { - b[i] = lowercaseSet[rand.Int63()%int64(len(lowercaseSet))] - } - return string(b) -} - -// GenerateRandomDBName helper -// Format: MMDDHHMMSS_abc -func GenerateRandomDBName(n int) string { - var prefix strings.Builder - prefix.WriteString(time.Now().UTC().Format("0102150405")) - prefix.WriteRune('_') - prefix.WriteString(randString(n)) - return prefix.String() +func GenerateRandomDBName() string { + uuidPart := strings.ReplaceAll(uuid.NewString(), "-", "") + // Keep generated DB names short enough for Cassandra keyspaces after XDC tests append cluster suffixes. + return "test_" + uuidPart[:24] } func timeComparator(t1, t2 time.Time, timeTolerance time.Duration) bool { diff --git a/common/persistence/persistence-tests/setup.go b/common/persistence/persistence-tests/setup.go index bdec40fc11e..58fe2061a52 100644 --- a/common/persistence/persistence-tests/setup.go +++ b/common/persistence/persistence-tests/setup.go @@ -54,7 +54,7 @@ func GetTestClusterOption(storeType, driver string) *TestBaseOptions { // GetCassandraTestClusterOption returns test options func GetCassandraTestClusterOption() *TestBaseOptions { return &TestBaseOptions{ - DBName: "test_" + GenerateRandomDBName(3), + DBName: GenerateRandomDBName(), DBHost: environment.GetCassandraAddress(), DBPort: environment.GetCassandraPort(), SchemaDir: testCassandraSchemaDir, @@ -66,7 +66,7 @@ func GetCassandraTestClusterOption() *TestBaseOptions { func GetMySQLTestClusterOption() *TestBaseOptions { return &TestBaseOptions{ SQLDBPluginName: mysql.PluginName, - DBName: "test_" + GenerateRandomDBName(3), + DBName: GenerateRandomDBName(), DBUsername: testMySQLUser, DBPassword: testMySQLPassword, DBHost: environment.GetMySQLAddress(), @@ -94,7 +94,7 @@ func GetPostgreSQLTestClusterOption( } return &TestBaseOptions{ SQLDBPluginName: pluginName, - DBName: "test_" + GenerateRandomDBName(3), + DBName: GenerateRandomDBName(), DBUsername: testPostgreSQLUser, DBPassword: testPostgreSQLPassword, DBHost: environment.GetPostgreSQLAddress(), @@ -109,7 +109,7 @@ func GetPostgreSQLTestClusterOption( func GetSQLiteFileTestClusterOption() *TestBaseOptions { return &TestBaseOptions{ SQLDBPluginName: sqlite.PluginName, - DBName: filepath.Join(os.TempDir(), "test_"+GenerateRandomDBName(3)), // put files in temp to avoid cluttering the project + DBName: filepath.Join(os.TempDir(), GenerateRandomDBName()), // put files in temp to avoid cluttering the project DBUsername: testSQLiteUser, DBPassword: testSQLitePassword, DBHost: environment.GetLocalhostIP(), @@ -129,7 +129,7 @@ func GetSQLiteFileTestClusterOption() *TestBaseOptions { func GetSQLiteMemoryTestClusterOption() *TestBaseOptions { return &TestBaseOptions{ SQLDBPluginName: sqlite.PluginName, - DBName: "test_" + GenerateRandomDBName(3), + DBName: GenerateRandomDBName(), DBUsername: testSQLiteUser, DBPassword: testSQLitePassword, DBHost: environment.GetLocalhostIP(), diff --git a/common/persistence/tests/sqlite_test.go b/common/persistence/tests/sqlite_test.go index 102b6980612..f5173ad91e7 100644 --- a/common/persistence/tests/sqlite_test.go +++ b/common/persistence/tests/sqlite_test.go @@ -53,7 +53,7 @@ func NewSQLiteFileConfig() *config.SQL { ConnectAddr: environment.GetLocalhostIP(), ConnectProtocol: "tcp", PluginName: "sqlite", - DatabaseName: "test_" + persistencetests.GenerateRandomDBName(3), + DatabaseName: persistencetests.GenerateRandomDBName(), ConnectAttributes: map[string]string{"cache": "private"}, } } diff --git a/tools/sql/clitest/version_tests.go b/tools/sql/clitest/version_tests.go index d55f1afe927..e719ad05927 100644 --- a/tools/sql/clitest/version_tests.go +++ b/tools/sql/clitest/version_tests.go @@ -53,8 +53,8 @@ func (s *VersionTestSuite) SetupTest() { // TestVerifyCompatibleVersion test func (s *VersionTestSuite) TestVerifyCompatibleVersion() { - database := "temporal_ver_test_" + persistencetests.GenerateRandomDBName(3) - visDatabase := "temporal_vis_ver_test_" + persistencetests.GenerateRandomDBName(3) + database := persistencetests.GenerateRandomDBName() + visDatabase := persistencetests.GenerateRandomDBName() defer s.createDatabase(database)() defer s.createDatabase(visDatabase)()