2014-01-25 02:07:11 +00:00
package tests
2013-12-20 06:53:40 +00:00
2013-12-20 07:55:34 +00:00
//
// +build windows
2013-12-20 06:53:40 +00:00
import (
2013-12-26 10:23:40 +00:00
"database/sql"
2013-12-20 06:53:40 +00:00
"testing"
2013-12-20 07:55:34 +00:00
_ "github.com/lunny/godbc"
2014-01-23 03:09:48 +00:00
"github.com/lunny/xorm"
2014-01-25 02:07:11 +00:00
"github.com/lunny/xorm/caches"
2013-12-20 06:53:40 +00:00
)
2013-12-26 10:23:40 +00:00
const mssqlConnStr = "driver={SQL Server};Server=192.168.20.135;Database=xorm_test; uid=sa; pwd=1234;"
2013-12-20 06:53:40 +00:00
2014-01-23 03:09:48 +00:00
func newMssqlEngine ( ) ( * xorm . Engine , error ) {
return xorm . NewEngine ( "odbc" , mssqlConnStr )
2013-12-20 06:53:40 +00:00
}
func TestMssql ( t * testing . T ) {
engine , err := newMssqlEngine ( )
defer engine . Close ( )
if err != nil {
t . Error ( err )
return
}
engine . ShowSQL = showTestSql
engine . ShowErr = showTestSql
engine . ShowWarn = showTestSql
engine . ShowDebug = showTestSql
testAll ( engine , t )
testAll2 ( engine , t )
}
func TestMssqlWithCache ( t * testing . T ) {
engine , err := newMssqlEngine ( )
defer engine . Close ( )
if err != nil {
t . Error ( err )
return
}
2014-01-25 02:07:11 +00:00
engine . SetDefaultCacher ( xorm . NewLRUCacher ( caches . NewMemoryStore ( ) , 1000 ) )
2013-12-20 06:53:40 +00:00
engine . ShowSQL = showTestSql
engine . ShowErr = showTestSql
engine . ShowWarn = showTestSql
engine . ShowDebug = showTestSql
testAll ( engine , t )
testAll2 ( engine , t )
}
2013-12-26 10:23:40 +00:00
func newMssqlDriverDB ( ) ( * sql . DB , error ) {
return sql . Open ( "odbc" , mssqlConnStr )
}
const (
createTableMssql = ` IF NOT EXISTS ( SELECT [ name ] FROM sys . tables WHERE [ name ] = ' big_struct ' ) CREATE TABLE
"big_struct" ( "id" BIGINT PRIMARY KEY IDENTITY NOT NULL , "name" VARCHAR ( 255 ) NULL , "title" VARCHAR ( 255 ) NULL ,
"age" VARCHAR ( 255 ) NULL , "alias" VARCHAR ( 255 ) NULL , "nick_name" VARCHAR ( 255 ) NULL ) ;
`
dropTableMssql = "IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'big_struct') and OBJECTPROPERTY(id, N'IsUserTable') = 1) DROP TABLE IF EXISTS `big_struct`;"
)
func BenchmarkMssqlDriverInsert ( t * testing . B ) {
doBenchDriver ( newMssqlDriverDB , createTableMssql , dropTableMssql ,
doBenchDriverInsert , t )
}
func BenchmarkMssqlDriverFind ( t * testing . B ) {
doBenchDriver ( newMssqlDriverDB , createTableMssql , dropTableMssql ,
doBenchDriverFind , t )
}
func BenchmarkMssqlNoCacheInsert ( t * testing . B ) {
engine , err := newMssqlEngine ( )
defer engine . Close ( )
if err != nil {
t . Error ( err )
return
}
//engine.ShowSQL = true
doBenchInsert ( engine , t )
}
func BenchmarkMssqlNoCacheFind ( t * testing . B ) {
2013-12-20 06:53:40 +00:00
engine , err := newMssqlEngine ( )
defer engine . Close ( )
if err != nil {
t . Error ( err )
return
}
//engine.ShowSQL = true
doBenchFind ( engine , t )
}
2013-12-26 10:23:40 +00:00
func BenchmarkMssqlNoCacheFindPtr ( t * testing . B ) {
engine , err := newMssqlEngine ( )
defer engine . Close ( )
if err != nil {
t . Error ( err )
return
}
//engine.ShowSQL = true
doBenchFindPtr ( engine , t )
}
func BenchmarkMssqlCacheInsert ( t * testing . B ) {
engine , err := newMssqlEngine ( )
defer engine . Close ( )
if err != nil {
t . Error ( err )
return
}
2014-01-25 02:07:11 +00:00
engine . SetDefaultCacher ( xorm . NewLRUCacher ( caches . NewMemoryStore ( ) , 1000 ) )
2013-12-26 10:23:40 +00:00
doBenchInsert ( engine , t )
}
func BenchmarkMssqlCacheFind ( t * testing . B ) {
2013-12-20 06:53:40 +00:00
engine , err := newMssqlEngine ( )
defer engine . Close ( )
if err != nil {
t . Error ( err )
return
}
2014-01-25 02:07:11 +00:00
engine . SetDefaultCacher ( xorm . NewLRUCacher ( caches . NewMemoryStore ( ) , 1000 ) )
2013-12-26 10:23:40 +00:00
2013-12-20 06:53:40 +00:00
doBenchFind ( engine , t )
}
2013-12-26 10:23:40 +00:00
func BenchmarkMssqlCacheFindPtr ( t * testing . B ) {
engine , err := newMssqlEngine ( )
defer engine . Close ( )
if err != nil {
t . Error ( err )
return
}
2014-01-25 02:07:11 +00:00
engine . SetDefaultCacher ( xorm . NewLRUCacher ( caches . NewMemoryStore ( ) , 1000 ) )
2013-12-26 10:23:40 +00:00
doBenchFindPtr ( engine , t )
}