allow set collation for mssql test

This commit is contained in:
Lunny Xiao 2023-12-31 20:27:42 +08:00
parent 81c3905773
commit 8410845c50
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A
2 changed files with 4 additions and 1 deletions

View File

@ -25,6 +25,7 @@ TEST_MSSQL_PASSWORD ?= MwantsaSecurePassword1
TEST_MSSQL_DEFAULT_VARCHAR ?= varchar
TEST_MSSQL_DEFAULT_CHAR ?= char
TEST_MSSQL_DO_NVARCHAR_OVERRIDE_TEST ?= true
TEST_MSSQL_COLLATION ?= SQL_Latin1_General_CP1_CS_AS
TEST_MYSQL_HOST ?= mysql:3306
TEST_MYSQL_CHARSET ?= utf8
@ -152,6 +153,7 @@ test-mssql: go-check
-conn_str="server=$(TEST_MSSQL_HOST);user id=$(TEST_MSSQL_USERNAME);password=$(TEST_MSSQL_PASSWORD);database=$(TEST_MSSQL_DBNAME)" \
-default_varchar=$(TEST_MSSQL_DEFAULT_VARCHAR) -default_char=$(TEST_MSSQL_DEFAULT_CHAR) \
-do_nvarchar_override_test=$(TEST_MSSQL_DO_NVARCHAR_OVERRIDE_TEST) \
-collation=$(TEST_MSSQL_COLLATION) \
-coverprofile=mssql.$(TEST_QUOTE_POLICY).coverage.out -covermode=atomic -timeout=20m
.PNONY: test-mssql\#%

View File

@ -39,6 +39,7 @@ var (
quotePolicyStr = flag.String("quote", "always", "quote could be always, none, reversed")
defaultVarchar = flag.String("default_varchar", "varchar", "default varchar type, mssql only, could be varchar or nvarchar, default is varchar")
defaultChar = flag.String("default_char", "char", "default char type, mssql only, could be char or nchar, default is char")
collation = flag.String("collation", "", "default database collation, it's different for different database")
tableMapper names.Mapper
colMapper names.Mapper
)
@ -54,7 +55,7 @@ func createEngine(dbType, connStr string) error {
if err != nil {
return err
}
if _, err = db.Exec("If(db_id(N'xorm_test') IS NULL) BEGIN CREATE DATABASE xorm_test; END;"); err != nil {
if _, err = db.Exec(fmt.Sprintf("If(db_id(N'xorm_test') IS NULL) BEGIN CREATE DATABASE xorm_test COLLATE %s; END;", *collation)); err != nil {
return fmt.Errorf("db.Exec: %v", err)
}
db.Close()